From fddc2253d7e22d19925698f3b6abfd69530cc620 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 10:48:44 -0800 Subject: [PATCH 001/211] fixed checker and added a test case --- src/compiler/checker.ts | 11 ++++++++++- .../cases/compiler/differentTypesWithSameName.ts | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 tests/cases/compiler/differentTypesWithSameName.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f8c4caa9630..d835a444d3a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3508,7 +3508,16 @@ module ts { } if (reportErrors) { headMessage = headMessage || Diagnostics.Type_0_is_not_assignable_to_type_1; - reportError(headMessage, typeToString(source), typeToString(target)); + var sourceType = typeToString(source); + var targetType = typeToString(target); + if (sourceType !== targetType) { + reportError(headMessage, sourceType, targetType); + } else { + // If the types are incompatible but have the same name, use the qualified names to give + // a more insightful error message + reportError(headMessage, getFullyQualifiedName(source.symbol), getFullyQualifiedName(target.symbol)); + } + //reportError(headMessage, typeToString(source), typeToString(target)); } return Ternary.False; } diff --git a/tests/cases/compiler/differentTypesWithSameName.ts b/tests/cases/compiler/differentTypesWithSameName.ts new file mode 100644 index 00000000000..2b40e23c642 --- /dev/null +++ b/tests/cases/compiler/differentTypesWithSameName.ts @@ -0,0 +1,16 @@ +module m { + export class variable{ + s: string; + } + export function doSomething(v: m.variable) { + + } +} + +class variable { + t: number; +} + + +var v: variable = new variable(); +m.doSomething(v); \ No newline at end of file From 82fcaa852c4a09481aee5a8aaa566dea22e2ecee Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 10:50:07 -0800 Subject: [PATCH 002/211] added baselines for new test case --- .../differentTypesWithSameName.errors.txt | 22 +++++++++++ .../reference/differentTypesWithSameName.js | 38 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 tests/baselines/reference/differentTypesWithSameName.errors.txt create mode 100644 tests/baselines/reference/differentTypesWithSameName.js diff --git a/tests/baselines/reference/differentTypesWithSameName.errors.txt b/tests/baselines/reference/differentTypesWithSameName.errors.txt new file mode 100644 index 00000000000..c451fcab1fc --- /dev/null +++ b/tests/baselines/reference/differentTypesWithSameName.errors.txt @@ -0,0 +1,22 @@ +tests/cases/compiler/differentTypesWithSameName.ts(16,15): error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. + + +==== tests/cases/compiler/differentTypesWithSameName.ts (1 errors) ==== + module m { + export class variable{ + s: string; + } + export function doSomething(v: m.variable) { + + } + } + + class variable { + t: number; + } + + + var v: variable = new variable(); + m.doSomething(v); + ~ +!!! error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. \ No newline at end of file diff --git a/tests/baselines/reference/differentTypesWithSameName.js b/tests/baselines/reference/differentTypesWithSameName.js new file mode 100644 index 00000000000..7ee0b6bf027 --- /dev/null +++ b/tests/baselines/reference/differentTypesWithSameName.js @@ -0,0 +1,38 @@ +//// [differentTypesWithSameName.ts] +module m { + export class variable{ + s: string; + } + export function doSomething(v: m.variable) { + + } +} + +class variable { + t: number; +} + + +var v: variable = new variable(); +m.doSomething(v); + +//// [differentTypesWithSameName.js] +var m; +(function (m) { + var variable = (function () { + function variable() { + } + return variable; + })(); + m.variable = variable; + function doSomething(v) { + } + m.doSomething = doSomething; +})(m || (m = {})); +var variable = (function () { + function variable() { + } + return variable; +})(); +var v = new variable(); +m.doSomething(v); From 07d3c204d5b691db84b5b53272fa9a5453754f5b Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 11:06:56 -0800 Subject: [PATCH 003/211] updating baseines --- .../reference/clodulesDerivedClasses.errors.txt | 4 ++-- ...ypeWithAnnotationAndInvalidInitializer.errors.txt | 12 ++++++------ tests/baselines/reference/qualify.errors.txt | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/baselines/reference/clodulesDerivedClasses.errors.txt b/tests/baselines/reference/clodulesDerivedClasses.errors.txt index 1753f6051bd..c4f1e1ac42e 100644 --- a/tests/baselines/reference/clodulesDerivedClasses.errors.txt +++ b/tests/baselines/reference/clodulesDerivedClasses.errors.txt @@ -1,6 +1,6 @@ tests/cases/compiler/clodulesDerivedClasses.ts(9,7): error TS2417: Class static side 'typeof Path' incorrectly extends base class static side 'typeof Shape'. Types of property 'Utils' are incompatible. - Type 'typeof Utils' is not assignable to type 'typeof Utils'. + Type 'Path.Utils' is not assignable to type 'Shape.Utils'. Property 'convert' is missing in type 'typeof Utils'. @@ -17,7 +17,7 @@ tests/cases/compiler/clodulesDerivedClasses.ts(9,7): error TS2417: Class static ~~~~ !!! error TS2417: Class static side 'typeof Path' incorrectly extends base class static side 'typeof Shape'. !!! error TS2417: Types of property 'Utils' are incompatible. -!!! error TS2417: Type 'typeof Utils' is not assignable to type 'typeof Utils'. +!!! error TS2417: Type 'Path.Utils' is not assignable to type 'Shape.Utils'. !!! error TS2417: Property 'convert' is missing in type 'typeof Utils'. name: string; diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt index 4ebb93b10a7..1219067ce17 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt @@ -25,10 +25,10 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd Type 'string' is not assignable to type 'number'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(50,5): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. Types of property 'A' are incompatible. - Type 'typeof A' is not assignable to type 'typeof A'. - Type 'A' is not assignable to type 'A'. + Type 'N.A' is not assignable to type 'M.A'. + Type 'N.A' is not assignable to type 'M.A'. Property 'name' is missing in type 'A'. -tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2322: Type 'A' is not assignable to type 'A'. +tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2322: Type 'N.A' is not assignable to type 'M.A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(52,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. Type 'boolean' is not assignable to type 'string'. @@ -124,12 +124,12 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd ~~~~~~~ !!! error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. !!! error TS2322: Types of property 'A' are incompatible. -!!! error TS2322: Type 'typeof A' is not assignable to type 'typeof A'. -!!! error TS2322: Type 'A' is not assignable to type 'A'. +!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. +!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. !!! error TS2322: Property 'name' is missing in type 'A'. var aClassInModule: M.A = new N.A(); ~~~~~~~~~~~~~~ -!!! error TS2322: Type 'A' is not assignable to type 'A'. +!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. var aFunctionInModule: typeof M.F2 = F2; ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. diff --git a/tests/baselines/reference/qualify.errors.txt b/tests/baselines/reference/qualify.errors.txt index a2f59733fae..c7679a0a0f8 100644 --- a/tests/baselines/reference/qualify.errors.txt +++ b/tests/baselines/reference/qualify.errors.txt @@ -10,7 +10,7 @@ tests/cases/compiler/qualify.ts(47,13): error TS2322: Type 'I4' is not assignabl tests/cases/compiler/qualify.ts(48,13): error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. tests/cases/compiler/qualify.ts(49,13): error TS2322: Type 'I4' is not assignable to type '{ k: I3; }'. Property 'k' is missing in type 'I4'. -tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable to type 'I'. +tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable to type 'T.I'. Property 'p' is missing in type 'I'. @@ -93,7 +93,7 @@ tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable var y:I; var x:T.I=y; ~ -!!! error TS2322: Type 'I' is not assignable to type 'I'. +!!! error TS2322: Type 'I' is not assignable to type 'T.I'. !!! error TS2322: Property 'p' is missing in type 'I'. \ No newline at end of file From 5838900b19662f37ba04d1c460f8b858ec2bafa5 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 11:08:22 -0800 Subject: [PATCH 004/211] remove commented out code --- src/compiler/checker.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d835a444d3a..b5b34686b83 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3482,7 +3482,7 @@ module ts { } } } - else if (source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.TypeParameter) { + else if (source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.TypeParameter) {getFullyQualifiedName if (result = typeParameterRelatedTo(source, target, reportErrors)) { return result; } @@ -3517,7 +3517,6 @@ module ts { // a more insightful error message reportError(headMessage, getFullyQualifiedName(source.symbol), getFullyQualifiedName(target.symbol)); } - //reportError(headMessage, typeToString(source), typeToString(target)); } return Ternary.False; } From 3b55a0cca444ef363fc13082f86f6cb593b2014d Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 11:10:02 -0800 Subject: [PATCH 005/211] removed errant text --- 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 b5b34686b83..07f1728ffae 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3482,7 +3482,7 @@ module ts { } } } - else if (source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.TypeParameter) {getFullyQualifiedName + else if (source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.TypeParameter) { if (result = typeParameterRelatedTo(source, target, reportErrors)) { return result; } From 8808a692e5b8f1da68a1e4c00f8014b9440d4ffe Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Fri, 2 Jan 2015 11:04:00 -0800 Subject: [PATCH 006/211] rewrote the fix to use a new type format flag and fixed the baselines I broke --- src/compiler/checker.ts | 24 +++++++++---------- src/compiler/types.ts | 1 + .../clodulesDerivedClasses.errors.txt | 4 ++-- ...AnnotationAndInvalidInitializer.errors.txt | 4 ++-- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 07f1728ffae..9052baaab77 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1033,7 +1033,7 @@ module ts { * Enclosing declaration is optional when we don't want to get qualified name in the enclosing declaration scope * Meaning needs to be specified if the enclosing declaration is given */ - function buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void { + function buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags, typeFlags?: TypeFormatFlags): void { var parentSymbol: Symbol; function appendParentTypeArgumentsAndSymbolName(symbol: Symbol): void { if (parentSymbol) { @@ -1096,9 +1096,11 @@ module ts { } // Get qualified name - if (enclosingDeclaration && + if ((enclosingDeclaration && // TypeParameters do not need qualification - !(symbol.flags & SymbolFlags.TypeParameter)) { + !(symbol.flags & SymbolFlags.TypeParameter)) + // unless we use a format flag specifying that we want it + || TypeFormatFlags.UseFullyQualifiedType & typeFlags) { walkSymbol(symbol, meaning); return; @@ -1122,7 +1124,7 @@ module ts { writeTypeReference(type, flags); } else if (type.flags & (TypeFlags.Class | TypeFlags.Interface | TypeFlags.Enum | TypeFlags.TypeParameter)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, undefined, flags); } else if (type.flags & TypeFlags.Tuple) { writeTupleType(type); @@ -1193,17 +1195,17 @@ module ts { function writeAnonymousType(type: ObjectType, flags: TypeFormatFlags) { // Always use 'typeof T' for type of class, enum, and module objects if (type.symbol && type.symbol.flags & (SymbolFlags.Class | SymbolFlags.Enum | SymbolFlags.ValueModule)) { - writeTypeofSymbol(type); + writeTypeofSymbol(type, flags); } // Use 'typeof T' for types of functions and methods that circularly reference themselves else if (shouldWriteTypeOfFunctionSymbol()) { - writeTypeofSymbol(type); + writeTypeofSymbol(type, flags); } else if (typeStack && contains(typeStack, type)) { // If type is an anonymous type literal in a type alias declaration, use type alias name var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, undefined, flags); } else { // Recursive usage, use any @@ -1237,10 +1239,10 @@ module ts { } } - function writeTypeofSymbol(type: ObjectType) { + function writeTypeofSymbol(type: ObjectType, flags?: TypeFormatFlags) { writeKeyword(writer, SyntaxKind.TypeOfKeyword); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, undefined, flags); } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { @@ -3513,9 +3515,7 @@ module ts { if (sourceType !== targetType) { reportError(headMessage, sourceType, targetType); } else { - // If the types are incompatible but have the same name, use the qualified names to give - // a more insightful error message - reportError(headMessage, getFullyQualifiedName(source.symbol), getFullyQualifiedName(target.symbol)); + reportError(headMessage, typeToString(source, undefined, TypeFormatFlags.UseFullyQualifiedType), typeToString(target, undefined, TypeFormatFlags.UseFullyQualifiedType)); } } return Ternary.False; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 60ed8352b9a..ff15b3a9e1e 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1074,6 +1074,7 @@ module ts { WriteOwnNameForAnyLike = 0x00000010, // Write symbol's own name instead of 'any' for any like types (eg. unknown, __resolving__ etc) WriteTypeArgumentsOfSignature = 0x00000020, // Write the type arguments instead of type parameters of the signature InElementType = 0x00000040, // Writing an array or union element type + UseFullyQualifiedType = 0x00000080, // Write out the fully qualified type name (eg. Module.Type, instead of Type) } export const enum SymbolFormatFlags { diff --git a/tests/baselines/reference/clodulesDerivedClasses.errors.txt b/tests/baselines/reference/clodulesDerivedClasses.errors.txt index c4f1e1ac42e..c3866c9e4be 100644 --- a/tests/baselines/reference/clodulesDerivedClasses.errors.txt +++ b/tests/baselines/reference/clodulesDerivedClasses.errors.txt @@ -1,6 +1,6 @@ tests/cases/compiler/clodulesDerivedClasses.ts(9,7): error TS2417: Class static side 'typeof Path' incorrectly extends base class static side 'typeof Shape'. Types of property 'Utils' are incompatible. - Type 'Path.Utils' is not assignable to type 'Shape.Utils'. + Type 'typeof Path.Utils' is not assignable to type 'typeof Shape.Utils'. Property 'convert' is missing in type 'typeof Utils'. @@ -17,7 +17,7 @@ tests/cases/compiler/clodulesDerivedClasses.ts(9,7): error TS2417: Class static ~~~~ !!! error TS2417: Class static side 'typeof Path' incorrectly extends base class static side 'typeof Shape'. !!! error TS2417: Types of property 'Utils' are incompatible. -!!! error TS2417: Type 'Path.Utils' is not assignable to type 'Shape.Utils'. +!!! error TS2417: Type 'typeof Path.Utils' is not assignable to type 'typeof Shape.Utils'. !!! error TS2417: Property 'convert' is missing in type 'typeof Utils'. name: string; diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt index 1219067ce17..12478442472 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt @@ -25,7 +25,7 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd Type 'string' is not assignable to type 'number'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(50,5): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. Types of property 'A' are incompatible. - Type 'N.A' is not assignable to type 'M.A'. + Type 'typeof N.A' is not assignable to type 'typeof M.A'. Type 'N.A' is not assignable to type 'M.A'. Property 'name' is missing in type 'A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2322: Type 'N.A' is not assignable to type 'M.A'. @@ -124,7 +124,7 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd ~~~~~~~ !!! error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. !!! error TS2322: Types of property 'A' are incompatible. -!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. +!!! error TS2322: Type 'typeof N.A' is not assignable to type 'typeof M.A'. !!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. !!! error TS2322: Property 'name' is missing in type 'A'. var aClassInModule: M.A = new N.A(); From f39a25b659cadfa5cd281185990adf06469610ae Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Mon, 5 Jan 2015 08:31:04 -0800 Subject: [PATCH 007/211] made some changes based cr feedback --- src/compiler/checker.ts | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9052baaab77..e79aa6e8fb4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1095,13 +1095,11 @@ module ts { } } - // Get qualified name - if ((enclosingDeclaration && - // TypeParameters do not need qualification - !(symbol.flags & SymbolFlags.TypeParameter)) - // unless we use a format flag specifying that we want it - || TypeFormatFlags.UseFullyQualifiedType & typeFlags) { - + // Get qualified name if there is an enclosing declaration and it is not a + // type parameter or we have a flag telling us to + var needFullyQualifiedName = (enclosingDeclaration && !(symbol.flags & SymbolFlags.TypeParameter)); + var useFullyQualifiedFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; + if (needFullyQualifiedName || useFullyQualifiedFlag) { walkSymbol(symbol, meaning); return; } @@ -1124,7 +1122,7 @@ module ts { writeTypeReference(type, flags); } else if (type.flags & (TypeFlags.Class | TypeFlags.Interface | TypeFlags.Enum | TypeFlags.TypeParameter)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, undefined, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ undefined, flags); } else if (type.flags & TypeFlags.Tuple) { writeTupleType(type); @@ -1205,7 +1203,7 @@ module ts { // If type is an anonymous type literal in a type alias declaration, use type alias name var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, undefined, flags); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ undefined, flags); } else { // Recursive usage, use any @@ -1242,7 +1240,7 @@ module ts { function writeTypeofSymbol(type: ObjectType, flags?: TypeFormatFlags) { writeKeyword(writer, SyntaxKind.TypeOfKeyword); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, undefined, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, /*flags*/ undefined, flags); } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { @@ -3512,11 +3510,11 @@ module ts { headMessage = headMessage || Diagnostics.Type_0_is_not_assignable_to_type_1; var sourceType = typeToString(source); var targetType = typeToString(target); - if (sourceType !== targetType) { - reportError(headMessage, sourceType, targetType); - } else { - reportError(headMessage, typeToString(source, undefined, TypeFormatFlags.UseFullyQualifiedType), typeToString(target, undefined, TypeFormatFlags.UseFullyQualifiedType)); + if (sourceType === targetType) { + sourceType = typeToString(source, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType); + targetType = typeToString(target, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType); } + reportError(headMessage, sourceType, targetType); } return Ternary.False; } From 436baafc7207e272964d6b221564095c742b9e73 Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 6 Jan 2015 18:00:59 -0800 Subject: [PATCH 008/211] Add default target in compiler option of project runner --- src/harness/projectsRunner.ts | 5 +++-- .../project/noDefaultLib/amd/noDefaultLib.errors.txt | 2 ++ .../project/noDefaultLib/node/noDefaultLib.errors.txt | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 52467fdffd6..4bb9969d8bc 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -164,7 +164,8 @@ class ProjectRunner extends RunnerBase { mapRoot: testCase.resolveMapRoot && testCase.mapRoot ? ts.sys.resolvePath(testCase.mapRoot) : testCase.mapRoot, sourceRoot: testCase.resolveSourceRoot && testCase.sourceRoot ? ts.sys.resolvePath(testCase.sourceRoot) : testCase.sourceRoot, module: moduleKind, - noResolve: testCase.noResolve + noResolve: testCase.noResolve, + target: ts.ScriptTarget.ES6 }; } @@ -186,7 +187,7 @@ class ProjectRunner extends RunnerBase { function createCompilerHost(): ts.CompilerHost { return { getSourceFile, - getDefaultLibFilename: options => options.target === ts.ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts", + getDefaultLibFilename: options => Harness.Compiler.defaultLibFileName, writeFile, getCurrentDirectory, getCanonicalFileName: Harness.Compiler.getCanonicalFileName, diff --git a/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt b/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt index 5541c8d7c19..a18186f558d 100644 --- a/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt +++ b/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt @@ -1,3 +1,4 @@ +error TS2318: Cannot find global type 'TemplateStringsArray'. error TS2318: Cannot find global type 'String'. error TS2318: Cannot find global type 'RegExp'. error TS2318: Cannot find global type 'Object'. @@ -9,6 +10,7 @@ error TS2318: Cannot find global type 'Array'. test.ts(3,8): error TS2304: Cannot find name 'Array'. +!!! error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'String'. !!! error TS2318: Cannot find global type 'RegExp'. !!! error TS2318: Cannot find global type 'Object'. diff --git a/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt b/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt index 5541c8d7c19..a18186f558d 100644 --- a/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt +++ b/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt @@ -1,3 +1,4 @@ +error TS2318: Cannot find global type 'TemplateStringsArray'. error TS2318: Cannot find global type 'String'. error TS2318: Cannot find global type 'RegExp'. error TS2318: Cannot find global type 'Object'. @@ -9,6 +10,7 @@ error TS2318: Cannot find global type 'Array'. test.ts(3,8): error TS2304: Cannot find name 'Array'. +!!! error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'String'. !!! error TS2318: Cannot find global type 'RegExp'. !!! error TS2318: Cannot find global type 'Object'. From b0ea40164ce3595d9dd61305dd021c282d48c433 Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 6 Jan 2015 18:18:37 -0800 Subject: [PATCH 009/211] Emit Arrow function natively in ES6 --- src/compiler/emitter.ts | 16 +++++++++- src/harness/projectsRunner.ts | 2 +- .../reference/constDeclarations-scopes.js | 4 +-- .../constDeclarations-validContexts.js | 4 +-- .../reference/letDeclarations-scopes.js | 4 +-- .../letDeclarations-validContexts.js | 4 +-- .../reference/project/prologueEmit/amd/out.js | 2 +- .../project/prologueEmit/node/out.js | 2 +- ...TemplateStringsTypeArgumentInferenceES6.js | 30 +++++++++---------- ...plateStringsWithOverloadResolution3_ES6.js | 4 +-- .../templateStringInArrowFunctionES6.js | 2 +- ...plateStringWithEmbeddedArrowFunctionES6.js | 2 +- 12 files changed, 45 insertions(+), 31 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 237f3ab509a..6a8216f7a30 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3219,7 +3219,15 @@ module ts { // Methods will emit the comments as part of emitting method declaration emitLeadingComments(node); } - write("function "); + + if (node.kind !== SyntaxKind.ArrowFunction) { + write("function "); + } + else if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target < ScriptTarget.ES6) { + // When targeting ES6, emit arrow function natively in ES6 by omitting function keyword and using fat arrow instead + write("function "); + } + if (node.kind === SyntaxKind.FunctionDeclaration || (node.kind === SyntaxKind.FunctionExpression && node.name)) { emit(node.name); } @@ -3258,6 +3266,12 @@ module ts { tempVariables = undefined; tempParameters = undefined; emitSignatureParameters(node); + + // When targeting ES6, emit arrow function natively in ES6 + if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6) { + write(" => "); + } + write(" {"); scopeEmitStart(node); increaseIndent(); diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 4bb9969d8bc..cbef1a2e718 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -165,7 +165,7 @@ class ProjectRunner extends RunnerBase { sourceRoot: testCase.resolveSourceRoot && testCase.sourceRoot ? ts.sys.resolvePath(testCase.sourceRoot) : testCase.sourceRoot, module: moduleKind, noResolve: testCase.noResolve, - target: ts.ScriptTarget.ES6 + target: ts.ScriptTarget.Latest }; } diff --git a/tests/baselines/reference/constDeclarations-scopes.js b/tests/baselines/reference/constDeclarations-scopes.js index aa1d59aee81..1250adcbc47 100644 --- a/tests/baselines/reference/constDeclarations-scopes.js +++ b/tests/baselines/reference/constDeclarations-scopes.js @@ -220,7 +220,7 @@ function F() { const c = 0; n = c; } -var F2 = function () { +var F2 = () => { const c = 0; n = c; }; @@ -269,7 +269,7 @@ var o = { const c = 0; n = c; }, - f2: function () { + f2: () => { const c = 0; n = c; } diff --git a/tests/baselines/reference/constDeclarations-validContexts.js b/tests/baselines/reference/constDeclarations-validContexts.js index 8be43633d70..42c13728d86 100644 --- a/tests/baselines/reference/constDeclarations-validContexts.js +++ b/tests/baselines/reference/constDeclarations-validContexts.js @@ -183,7 +183,7 @@ const c18 = 0; function F() { const c19 = 0; } -var F2 = function () { +var F2 = () => { const c20 = 0; }; var F3 = function () { @@ -223,7 +223,7 @@ var o = { f() { const c28 = 0; }, - f2: function () { + f2: () => { const c29 = 0; } }; diff --git a/tests/baselines/reference/letDeclarations-scopes.js b/tests/baselines/reference/letDeclarations-scopes.js index d0f70693d7c..4398aade539 100644 --- a/tests/baselines/reference/letDeclarations-scopes.js +++ b/tests/baselines/reference/letDeclarations-scopes.js @@ -236,7 +236,7 @@ function F() { let l = 0; n = l; } -var F2 = function () { +var F2 = () => { let l = 0; n = l; }; @@ -286,7 +286,7 @@ var o = { let l = 0; n = l; }, - f2: function () { + f2: () => { let l = 0; n = l; } diff --git a/tests/baselines/reference/letDeclarations-validContexts.js b/tests/baselines/reference/letDeclarations-validContexts.js index fe9ed903bf5..01c76c024e6 100644 --- a/tests/baselines/reference/letDeclarations-validContexts.js +++ b/tests/baselines/reference/letDeclarations-validContexts.js @@ -203,7 +203,7 @@ let l18 = 0; function F() { let l19 = 0; } -var F2 = function () { +var F2 = () => { let l20 = 0; }; var F3 = function () { @@ -243,7 +243,7 @@ var o = { f() { let l28 = 0; }, - f2: function () { + f2: () => { let l29 = 0; } }; diff --git a/tests/baselines/reference/project/prologueEmit/amd/out.js b/tests/baselines/reference/project/prologueEmit/amd/out.js index b19a07f6490..56a81d99acf 100644 --- a/tests/baselines/reference/project/prologueEmit/amd/out.js +++ b/tests/baselines/reference/project/prologueEmit/amd/out.js @@ -1,6 +1,6 @@ var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(function () { return _this.window; }); +(() => { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/baselines/reference/project/prologueEmit/node/out.js b/tests/baselines/reference/project/prologueEmit/node/out.js index b19a07f6490..56a81d99acf 100644 --- a/tests/baselines/reference/project/prologueEmit/node/out.js +++ b/tests/baselines/reference/project/prologueEmit/node/out.js @@ -1,6 +1,6 @@ var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(function () { return _this.window; }); +(() => { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js index b88eadfd80b..2e30b756823 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js @@ -111,40 +111,40 @@ someGenerics1b `${3}`; // Generic tag with argument of function type whose parameter is of type parameter type function someGenerics2a(strs, n) { } -someGenerics2a `${function (n) { return n; }}`; +someGenerics2a `${(n) => { return n; }}`; function someGenerics2b(strs, n) { } -someGenerics2b `${function (n, x) { return n; }}`; +someGenerics2b `${(n, x) => { return n; }}`; // Generic tag with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter function someGenerics3(strs, producer) { } -someGenerics3 `${function () { return ''; }}`; -someGenerics3 `${function () { return undefined; }}`; -someGenerics3 `${function () { return 3; }}`; +someGenerics3 `${() => { return ''; }}`; +someGenerics3 `${() => { return undefined; }}`; +someGenerics3 `${() => { return 3; }}`; // 2 parameter generic tag with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(strs, n, f) { } -someGenerics4 `${4}${function () { return null; }}`; -someGenerics4 `${''}${function () { return 3; }}`; +someGenerics4 `${4}${() => { return null; }}`; +someGenerics4 `${''}${() => { return 3; }}`; someGenerics4 `${null}${null}`; // 2 parameter generic tag with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(strs, n, f) { } -someGenerics5 `${4} ${function () { return null; }}`; -someGenerics5 `${''}${function () { return 3; }}`; +someGenerics5 `${4} ${() => { return null; }}`; +someGenerics5 `${''}${() => { return 3; }}`; someGenerics5 `${null}${null}`; // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs, a, b, c) { } -someGenerics6 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; -someGenerics6 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; -someGenerics6 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with multiple arguments of function types that each have parameters of different generic type function someGenerics7(strs, a, b, c) { } -someGenerics7 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; -someGenerics7 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; -someGenerics7 `${function (n) { return n; }}${function (n) { return n; }}${function (n) { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with argument of generic function type function someGenerics8(strs, n) { return n; diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js index 48af9403a79..99363d21de9 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js @@ -118,5 +118,5 @@ fn4 `${null}${true}`; function fn5() { return undefined; } -fn5 `${function (n) { return n.toFixed(); }}`; // will error; 'n' should have type 'string'. -fn5 `${function (n) { return n.substr(0); }}`; +fn5 `${(n) => { return n.toFixed(); }}`; // will error; 'n' should have type 'string'. +fn5 `${(n) => { return n.substr(0); }}`; diff --git a/tests/baselines/reference/templateStringInArrowFunctionES6.js b/tests/baselines/reference/templateStringInArrowFunctionES6.js index 633b96e9da4..2cb33efe5d6 100644 --- a/tests/baselines/reference/templateStringInArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringInArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = x => `abc${ x }def`; //// [templateStringInArrowFunctionES6.js] -var x = function (x) { return `abc${x}def`; }; +var x = (x) => { return `abc${x}def`; }; diff --git a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js index f6f068aaa37..9789c68047f 100644 --- a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = `abc${ x => x }def`; //// [templateStringWithEmbeddedArrowFunctionES6.js] -var x = `abc${function (x) { return x; }}def`; +var x = `abc${(x) => { return x; }}def`; From 7d0fc6225610a1038a8d1712c52590981ce3b714 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 7 Jan 2015 11:54:12 -0800 Subject: [PATCH 010/211] Emit this binding natively in es6 --- src/compiler/checker.ts | 6 +++++- src/compiler/emitter.ts | 24 +++++++++++++++++------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f8c4caa9630..7a4d808e023 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4824,7 +4824,11 @@ module ts { // Now skip arrow functions to get the "real" owner of 'this'. if (container.kind === SyntaxKind.ArrowFunction) { container = getThisContainer(container, /* includeArrowFunctions */ false); - needToCaptureLexicalThis = true; + + // When targeting es6, arrow function lexically bind "this" so we do not need to do the work of binding "this" in emitted code + if (compilerOptions.target < ScriptTarget.ES6) { + needToCaptureLexicalThis = true; + } } switch (container.kind) { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 6a8216f7a30..2e8502c8859 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3210,6 +3210,13 @@ module ts { emitTrailingComments(node); } + function isES6ArrowFunction(node: FunctionLikeDeclaration): boolean { + if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6) { + return true; + } + return false; + } + function emitFunctionDeclaration(node: FunctionLikeDeclaration) { if (nodeIsMissing(node.body)) { return emitPinnedOrTripleSlashComments(node); @@ -3220,11 +3227,9 @@ module ts { emitLeadingComments(node); } - if (node.kind !== SyntaxKind.ArrowFunction) { - write("function "); - } - else if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target < ScriptTarget.ES6) { - // When targeting ES6, emit arrow function natively in ES6 by omitting function keyword and using fat arrow instead + // For targeting below es6, emit functions-like declaration including arrow function using function keyword. + // When targeting ES6, emit arrow function natively in ES6 by omitting function keyword and using fat arrow instead + if (!isES6ArrowFunction(node)) { write("function "); } @@ -3268,7 +3273,7 @@ module ts { emitSignatureParameters(node); // When targeting ES6, emit arrow function natively in ES6 - if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6) { + if (isES6ArrowFunction(node)) { write(" => "); } @@ -3283,7 +3288,12 @@ module ts { startIndex = emitDirectivePrologues((node.body).statements, /*startWithNewLine*/ true); } var outPos = writer.getTextPos(); - emitCaptureThisForNodeIfNecessary(node); + + // In ES6, fat arrow function lexically binds this value. Therefore, when targeting es6, we can omit capturing of "this" in the fat arrow function + if (!isES6ArrowFunction(node)) { + emitCaptureThisForNodeIfNecessary(node); + } + emitDefaultValueAssignments(node); emitRestParameter(node); if (node.body.kind !== SyntaxKind.Block && outPos === writer.getTextPos()) { From 52a6ba69a18d92ebae65e2680d22c516efa7a8d0 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Thu, 8 Jan 2015 13:42:01 -0800 Subject: [PATCH 011/211] changed logic based on CR feedback to not get fully qualified for typeparemeters even if typeformatflag is present --- src/compiler/checker.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e79aa6e8fb4..239d9138ea2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1095,11 +1095,11 @@ module ts { } } - // Get qualified name if there is an enclosing declaration and it is not a - // type parameter or we have a flag telling us to - var needFullyQualifiedName = (enclosingDeclaration && !(symbol.flags & SymbolFlags.TypeParameter)); - var useFullyQualifiedFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; - if (needFullyQualifiedName || useFullyQualifiedFlag) { + // Get qualified name if the symbol is not a type parameter + // and we have an enclosing declaration or a typeformat flag + var typeParameter = (symbol.flags & SymbolFlags.TypeParameter); + var typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; + if (!typeParameter && (enclosingDeclaration || typeFormatFlag)) { walkSymbol(symbol, meaning); return; } From 308f13fb9b53e9e0e1c243cdfe4c00834647c8fe Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 9 Jan 2015 12:21:30 -0800 Subject: [PATCH 012/211] infrastructure for builder item in completion list --- src/services/services.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 1618fb6e276..abe12b00128 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1078,6 +1078,7 @@ module ts { export interface CompletionInfo { isMemberCompletion: boolean; + isBuilder: boolean; entries: CompletionEntry[]; } @@ -2266,6 +2267,7 @@ module ts { // Right of dot member completion list var symbols: Symbol[] = []; var isMemberCompletion = true; + var isBuilder = false; if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName || node.kind === SyntaxKind.PropertyAccessExpression) { var symbol = typeInfoResolver.getSymbolAtLocation(node); @@ -2318,6 +2320,7 @@ module ts { else { // Get scope members isMemberCompletion = false; + isBuilder = true; /// TODO filter meaning based on the current context var symbolMeanings = SymbolFlags.Type | SymbolFlags.Value | SymbolFlags.Namespace | SymbolFlags.Import; @@ -2335,6 +2338,7 @@ module ts { return { isMemberCompletion, + isBuilder, entries: activeCompletionSession.entries }; @@ -2356,7 +2360,7 @@ module ts { function isCompletionListBlocker(previousToken: Node): boolean { var start = new Date().getTime(); var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || - isIdentifierDefinitionLocation(previousToken) || + // isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); host.log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); return result; From 85c5b3d30bb6693d3b922a3fbc73d82342a146f6 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Fri, 9 Jan 2015 14:55:06 -0800 Subject: [PATCH 013/211] This fixes #1505 by not showing completionlist when defining a property. --- src/services/services.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index abe12b00128..438bb0163f8 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2360,7 +2360,7 @@ module ts { function isCompletionListBlocker(previousToken: Node): boolean { var start = new Date().getTime(); var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || - // isIdentifierDefinitionLocation(previousToken) || + isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); host.log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); return result; @@ -2450,7 +2450,7 @@ module ts { case SyntaxKind.PrivateKeyword: case SyntaxKind.StaticKeyword: case SyntaxKind.DotDotDotToken: - return containingNodeKind === SyntaxKind.Parameter; + return containingNodeKind === SyntaxKind.Parameter || containingNodeKind === SyntaxKind.PropertyDeclaration; case SyntaxKind.ClassKeyword: case SyntaxKind.ModuleKeyword: From cb48a5e110713ab1d7c53e5207720d467a05c11d Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 7 Jan 2015 11:54:22 -0800 Subject: [PATCH 014/211] Add testcases --- .../baselines/reference/emitArrowFunction.js | 29 ++++++++++++ .../reference/emitArrowFunction.types | 39 ++++++++++++++++ .../reference/emitArrowFunctionES6.js | 25 +++++++++++ .../reference/emitArrowFunctionES6.types | 39 ++++++++++++++++ .../emitArrowFunctionThisCapturing.js | 30 +++++++++++++ .../emitArrowFunctionThisCapturing.types | 44 +++++++++++++++++++ .../emitArrowFunctionThisCapturingES6.js | 29 ++++++++++++ .../emitArrowFunctionThisCapturingES6.types | 44 +++++++++++++++++++ .../reference/project/prologueEmit/amd/out.js | 3 +- .../project/prologueEmit/node/out.js | 3 +- .../es6/arrowFunction/emitArrowFunction.ts | 8 ++++ .../es6/arrowFunction/emitArrowFunctionES6.ts | 8 ++++ .../emitArrowFunctionThisCapturing.ts | 14 ++++++ .../emitArrowFunctionThisCapturingES6.ts | 14 ++++++ 14 files changed, 325 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/emitArrowFunction.js create mode 100644 tests/baselines/reference/emitArrowFunction.types create mode 100644 tests/baselines/reference/emitArrowFunctionES6.js create mode 100644 tests/baselines/reference/emitArrowFunctionES6.types create mode 100644 tests/baselines/reference/emitArrowFunctionThisCapturing.js create mode 100644 tests/baselines/reference/emitArrowFunctionThisCapturing.types create mode 100644 tests/baselines/reference/emitArrowFunctionThisCapturingES6.js create mode 100644 tests/baselines/reference/emitArrowFunctionThisCapturingES6.types create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts diff --git a/tests/baselines/reference/emitArrowFunction.js b/tests/baselines/reference/emitArrowFunction.js new file mode 100644 index 00000000000..1c00a7579b6 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunction.js @@ -0,0 +1,29 @@ +//// [emitArrowFunction.ts] +var f1 = () => { } +var f2 = (x: string, y: string) => { } +var f3 = (x: string, y: number, ...rest) => { } +var f4 = (x: string, y: number, z = 10) => { } +function foo(func: () => boolean) { } +foo(() => true); +foo(() => { return false; }); + +//// [emitArrowFunction.js] +var f1 = function () { +}; +var f2 = function (x, y) { +}; +var f3 = function (x, y) { + var rest = []; + for (var _i = 2; _i < arguments.length; _i++) { + rest[_i - 2] = arguments[_i]; + } +}; +var f4 = function (x, y, z) { + if (z === void 0) { z = 10; } +}; +function foo(func) { +} +foo(function () { return true; }); +foo(function () { + return false; +}); diff --git a/tests/baselines/reference/emitArrowFunction.types b/tests/baselines/reference/emitArrowFunction.types new file mode 100644 index 00000000000..030ed0cde60 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunction.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts === +var f1 = () => { } +>f1 : () => void +>() => { } : () => void + +var f2 = (x: string, y: string) => { } +>f2 : (x: string, y: string) => void +>(x: string, y: string) => { } : (x: string, y: string) => void +>x : string +>y : string + +var f3 = (x: string, y: number, ...rest) => { } +>f3 : (x: string, y: number, ...rest: any[]) => void +>(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void +>x : string +>y : number +>rest : any[] + +var f4 = (x: string, y: number, z = 10) => { } +>f4 : (x: string, y: number, z?: number) => void +>(x: string, y: number, z = 10) => { } : (x: string, y: number, z?: number) => void +>x : string +>y : number +>z : number + +function foo(func: () => boolean) { } +>foo : (func: () => boolean) => void +>func : () => boolean + +foo(() => true); +>foo(() => true) : void +>foo : (func: () => boolean) => void +>() => true : () => boolean + +foo(() => { return false; }); +>foo(() => { return false; }) : void +>foo : (func: () => boolean) => void +>() => { return false; } : () => boolean + diff --git a/tests/baselines/reference/emitArrowFunctionES6.js b/tests/baselines/reference/emitArrowFunctionES6.js new file mode 100644 index 00000000000..2f054c97f32 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionES6.js @@ -0,0 +1,25 @@ +//// [emitArrowFunctionES6.ts] +var f1 = () => { } +var f2 = (x: string, y: string) => { } +var f3 = (x: string, y: number, ...rest) => { } +var f4 = (x: string, y: number, z=10) => { } +function foo(func: () => boolean) { } +foo(() => true); +foo(() => { return false; }); + + +//// [emitArrowFunctionES6.js] +var f1 = () => { +}; +var f2 = (x, y) => { +}; +var f3 = (x, y, ...rest) => { +}; +var f4 = (x, y, z = 10) => { +}; +function foo(func) { +} +foo(() => { return true; }); +foo(() => { + return false; +}); diff --git a/tests/baselines/reference/emitArrowFunctionES6.types b/tests/baselines/reference/emitArrowFunctionES6.types new file mode 100644 index 00000000000..1f0c1941bdb --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionES6.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts === +var f1 = () => { } +>f1 : () => void +>() => { } : () => void + +var f2 = (x: string, y: string) => { } +>f2 : (x: string, y: string) => void +>(x: string, y: string) => { } : (x: string, y: string) => void +>x : string +>y : string + +var f3 = (x: string, y: number, ...rest) => { } +>f3 : (x: string, y: number, ...rest: any[]) => void +>(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void +>x : string +>y : number +>rest : any[] + +var f4 = (x: string, y: number, z=10) => { } +>f4 : (x: string, y: number, z?: number) => void +>(x: string, y: number, z=10) => { } : (x: string, y: number, z?: number) => void +>x : string +>y : number +>z : number + +function foo(func: () => boolean) { } +>foo : (func: () => boolean) => void +>func : () => boolean + +foo(() => true); +>foo(() => true) : void +>foo : (func: () => boolean) => void +>() => true : () => boolean + +foo(() => { return false; }); +>foo(() => { return false; }) : void +>foo : (func: () => boolean) => void +>() => { return false; } : () => boolean + diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturing.js b/tests/baselines/reference/emitArrowFunctionThisCapturing.js new file mode 100644 index 00000000000..25d9f7f100b --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturing.js @@ -0,0 +1,30 @@ +//// [emitArrowFunctionThisCapturing.ts] +var f1 = () => { + this.age = 10 +}; + +var f2 = (x: string) => { + this.name = x +} + +function foo(func: () => boolean) { } +foo(() => { + this.age = 100; + return true; +}); + + +//// [emitArrowFunctionThisCapturing.js] +var _this = this; +var f1 = function () { + _this.age = 10; +}; +var f2 = function (x) { + _this.name = x; +}; +function foo(func) { +} +foo(function () { + _this.age = 100; + return true; +}); diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturing.types b/tests/baselines/reference/emitArrowFunctionThisCapturing.types new file mode 100644 index 00000000000..433f38e5ecc --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturing.types @@ -0,0 +1,44 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts === +var f1 = () => { +>f1 : () => void +>() => { this.age = 10} : () => void + + this.age = 10 +>this.age = 10 : number +>this.age : any +>this : any +>age : any + +}; + +var f2 = (x: string) => { +>f2 : (x: string) => void +>(x: string) => { this.name = x} : (x: string) => void +>x : string + + this.name = x +>this.name = x : string +>this.name : any +>this : any +>name : any +>x : string +} + +function foo(func: () => boolean) { } +>foo : (func: () => boolean) => void +>func : () => boolean + +foo(() => { +>foo(() => { this.age = 100; return true;}) : void +>foo : (func: () => boolean) => void +>() => { this.age = 100; return true;} : () => boolean + + this.age = 100; +>this.age = 100 : number +>this.age : any +>this : any +>age : any + + return true; +}); + diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js new file mode 100644 index 00000000000..f8c4426ed55 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js @@ -0,0 +1,29 @@ +//// [emitArrowFunctionThisCapturingES6.ts] +var f1 = () => { + this.age = 10 +}; + +var f2 = (x: string) => { + this.name = x +} + +function foo(func: () => boolean){ } +foo(() => { + this.age = 100; + return true; +}); + + +//// [emitArrowFunctionThisCapturingES6.js] +var f1 = () => { + this.age = 10; +}; +var f2 = (x) => { + this.name = x; +}; +function foo(func) { +} +foo(() => { + this.age = 100; + return true; +}); diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types new file mode 100644 index 00000000000..989130ef280 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types @@ -0,0 +1,44 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts === +var f1 = () => { +>f1 : () => void +>() => { this.age = 10} : () => void + + this.age = 10 +>this.age = 10 : number +>this.age : any +>this : any +>age : any + +}; + +var f2 = (x: string) => { +>f2 : (x: string) => void +>(x: string) => { this.name = x} : (x: string) => void +>x : string + + this.name = x +>this.name = x : string +>this.name : any +>this : any +>name : any +>x : string +} + +function foo(func: () => boolean){ } +>foo : (func: () => boolean) => void +>func : () => boolean + +foo(() => { +>foo(() => { this.age = 100; return true;}) : void +>foo : (func: () => boolean) => void +>() => { this.age = 100; return true;} : () => boolean + + this.age = 100; +>this.age = 100 : number +>this.age : any +>this : any +>age : any + + return true; +}); + diff --git a/tests/baselines/reference/project/prologueEmit/amd/out.js b/tests/baselines/reference/project/prologueEmit/amd/out.js index 56a81d99acf..635493592a4 100644 --- a/tests/baselines/reference/project/prologueEmit/amd/out.js +++ b/tests/baselines/reference/project/prologueEmit/amd/out.js @@ -1,6 +1,5 @@ -var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(() => { return _this.window; }); +(() => { return this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/baselines/reference/project/prologueEmit/node/out.js b/tests/baselines/reference/project/prologueEmit/node/out.js index 56a81d99acf..635493592a4 100644 --- a/tests/baselines/reference/project/prologueEmit/node/out.js +++ b/tests/baselines/reference/project/prologueEmit/node/out.js @@ -1,6 +1,5 @@ -var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(() => { return _this.window; }); +(() => { return this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts new file mode 100644 index 00000000000..cace55c05fb --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts @@ -0,0 +1,8 @@ +// @target:es5 +var f1 = () => { } +var f2 = (x: string, y: string) => { } +var f3 = (x: string, y: number, ...rest) => { } +var f4 = (x: string, y: number, z = 10) => { } +function foo(func: () => boolean) { } +foo(() => true); +foo(() => { return false; }); \ No newline at end of file diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts new file mode 100644 index 00000000000..d56d07c6c4e --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts @@ -0,0 +1,8 @@ +// @target:es6 +var f1 = () => { } +var f2 = (x: string, y: string) => { } +var f3 = (x: string, y: number, ...rest) => { } +var f4 = (x: string, y: number, z=10) => { } +function foo(func: () => boolean) { } +foo(() => true); +foo(() => { return false; }); diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts new file mode 100644 index 00000000000..e098874fc55 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts @@ -0,0 +1,14 @@ +// @target:es5 +var f1 = () => { + this.age = 10 +}; + +var f2 = (x: string) => { + this.name = x +} + +function foo(func: () => boolean) { } +foo(() => { + this.age = 100; + return true; +}); diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts new file mode 100644 index 00000000000..64d816dc2c6 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts @@ -0,0 +1,14 @@ +// @target:es6 +var f1 = () => { + this.age = 10 +}; + +var f2 = (x: string) => { + this.name = x +} + +function foo(func: () => boolean){ } +foo(() => { + this.age = 100; + return true; +}); From ce794e8b099f3a96cc3635a4f4046b019c0c0358 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Mon, 12 Jan 2015 07:45:49 -0800 Subject: [PATCH 015/211] more cr feedback: rename undefined flags param to None --- src/compiler/checker.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 239d9138ea2..0e8435fd484 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1096,7 +1096,7 @@ module ts { } // Get qualified name if the symbol is not a type parameter - // and we have an enclosing declaration or a typeformat flag + // and we spe var typeParameter = (symbol.flags & SymbolFlags.TypeParameter); var typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; if (!typeParameter && (enclosingDeclaration || typeFormatFlag)) { @@ -1122,7 +1122,7 @@ module ts { writeTypeReference(type, flags); } else if (type.flags & (TypeFlags.Class | TypeFlags.Interface | TypeFlags.Enum | TypeFlags.TypeParameter)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ undefined, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ None, flags); } else if (type.flags & TypeFlags.Tuple) { writeTupleType(type); @@ -1203,7 +1203,7 @@ module ts { // If type is an anonymous type literal in a type alias declaration, use type alias name var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ undefined, flags); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ None, flags); } else { // Recursive usage, use any @@ -1240,7 +1240,7 @@ module ts { function writeTypeofSymbol(type: ObjectType, flags?: TypeFormatFlags) { writeKeyword(writer, SyntaxKind.TypeOfKeyword); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, /*flags*/ undefined, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, /*flags*/ None, flags); } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { From 118b7a984a642fc038d7e48bff8fd1174f10af91 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 13 Jan 2015 09:51:47 -0800 Subject: [PATCH 016/211] remove unnecessary call sourceFile.getSourceFile() --- src/services/services.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 1618fb6e276..09a002d774b 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1956,8 +1956,7 @@ module ts { function createCompilerHost(): CompilerHost { return { getSourceFile: (filename, languageVersion) => { - var sourceFile = getSourceFile(filename); - return sourceFile && sourceFile.getSourceFile(); + return getSourceFile(filename); }, getCancellationToken: () => cancellationToken, getCanonicalFileName: (filename) => useCaseSensitivefilenames ? filename : filename.toLowerCase(), From 54bf7adddb5592145b4a75db2430240952081c3f Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 13 Jan 2015 16:55:50 -0800 Subject: [PATCH 017/211] Add test case for completionlist when adding properties to a class. --- ...dentifierDefinitionLocations_properties.ts | 32 +++++++++++++++++++ ...fierDefinitionLocations_varDeclarations.ts | 1 - 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts new file mode 100644 index 00000000000..f38e9920b82 --- /dev/null +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts @@ -0,0 +1,32 @@ +/// + +////var aa = 1; + +////class A1 { +//// public /*property1*/ +////} + +////class A2 { +//// public a/*property2*/ +////} + +////class A3 { +//// private /*property3*/ +////} + +////class A4 { +//// private a/*property4*/ +////} + +////class A5 { +//// public static /*property5*/ +////} + +////class A6 { +//// public static a/*property6*/ +////} + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_varDeclarations.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_varDeclarations.ts index 346a102faa8..2e85364ce3c 100644 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_varDeclarations.ts +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_varDeclarations.ts @@ -11,7 +11,6 @@ ////var a2, a/*varName4*/ -debugger; test.markers().forEach((m) => { goTo.position(m.position, m.fileName); verify.completionListIsEmpty(); From 30fa715c2c768d36fbf200e0bb701a452ce6386c Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Wed, 14 Jan 2015 22:52:07 +0100 Subject: [PATCH 018/211] Remove src\services\compiler\diagnostics.ts It contains the Logger interface but src\services\services.ts is the one which is used (also has more methods) --- src/services/compiler/diagnostics.ts | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 src/services/compiler/diagnostics.ts diff --git a/src/services/compiler/diagnostics.ts b/src/services/compiler/diagnostics.ts deleted file mode 100644 index 5114f83f9e5..00000000000 --- a/src/services/compiler/diagnostics.ts +++ /dev/null @@ -1,27 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/// - -module TypeScript { - export interface Logger { - log(s: string): void; - } - - export class NullLogger implements Logger { - public log(s: string): void { - } - } -} \ No newline at end of file From e69573b4798a96eb09fe894a59e7cf5270ae2b6e Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Wed, 14 Jan 2015 23:06:46 +0100 Subject: [PATCH 019/211] compiler\tsc.ts isn't used DiagnosticCode.Specify_module_code_generation_0_or_1 doesn't even exist and it doesn't understand es6 --- src/services/compiler/tsc.ts | 736 ----------------------------------- 1 file changed, 736 deletions(-) delete mode 100644 src/services/compiler/tsc.ts diff --git a/src/services/compiler/tsc.ts b/src/services/compiler/tsc.ts deleted file mode 100644 index acd4fb40e6a..00000000000 --- a/src/services/compiler/tsc.ts +++ /dev/null @@ -1,736 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/// -/// -/// - -module TypeScript { - class SourceFile { - constructor(public scriptSnapshot: IScriptSnapshot, public byteOrderMark: ByteOrderMark) { - } - } - - class DiagnosticsLogger implements ILogger { - constructor(public ioHost: IEnvironment) { - } - public information(): boolean { return false; } - public debug(): boolean { return false; } - public warning(): boolean { return false; } - public error(): boolean { return false; } - public fatal(): boolean { return false; } - public log(s: string): void { - this.ioHost.standardOut.WriteLine(s); - } - } - - export class BatchCompiler implements IReferenceResolverHost { - public compilerVersion = "1.0.1.0"; - private inputFiles: string[] = []; - private compilationSettings: ImmutableCompilationSettings; - private resolvedFiles: IResolvedFile[] = []; - private fileNameToSourceFile = new StringHashTable(); - private hasErrors: boolean = false; - private logger: ILogger = null; - - constructor(private ioHost: IEnvironment) { - } - - // Begin batch compilation - public batchCompile() { - // Parse command line options - if (this.parseOptions()) { - var start = new Date().getTime(); - - if (this.compilationSettings.gatherDiagnostics()) { - this.logger = new DiagnosticsLogger(this.ioHost); - } else { - this.logger = new NullLogger(); - } - - if (this.compilationSettings.watch()) { - // Watch will cause the program to stick around as long as the files exist - this.watchFiles(); - return; - } - - // Resolve the compilation environemnt - this.resolve(); - - this.compile(); - - if (this.compilationSettings.gatherDiagnostics()) { - this.logger.log(""); - this.logger.log("File resolution time: " + TypeScript.fileResolutionTime); - this.logger.log(" file read: " + TypeScript.fileResolutionIOTime); - this.logger.log(" scan imports: " + TypeScript.fileResolutionScanImportsTime); - this.logger.log(" import search: " + TypeScript.fileResolutionImportFileSearchTime); - this.logger.log(" get lib.d.ts: " + TypeScript.fileResolutionGetDefaultLibraryTime); - - this.logger.log("SyntaxTree parse time: " + TypeScript.syntaxTreeParseTime); - this.logger.log("Syntax Diagnostics time: " + TypeScript.syntaxDiagnosticsTime); - this.logger.log("Create declarations time: " + TypeScript.createDeclarationsTime); - this.logger.log(""); - this.logger.log("Type check time: " + TypeScript.typeCheckTime); - this.logger.log(""); - this.logger.log("Emit time: " + TypeScript.emitTime); - this.logger.log("Declaration emit time: " + TypeScript.declarationEmitTime); - - this.logger.log("Total number of symbols created: " + TypeScript.pullSymbolID); - this.logger.log("Specialized types created: " + TypeScript.nSpecializationsCreated); - this.logger.log("Specialized signatures created: " + TypeScript.nSpecializedSignaturesCreated); - - this.logger.log(" IsExternallyVisibleTime: " + TypeScript.declarationEmitIsExternallyVisibleTime); - this.logger.log(" TypeSignatureTime: " + TypeScript.declarationEmitTypeSignatureTime); - this.logger.log(" GetBoundDeclTypeTime: " + TypeScript.declarationEmitGetBoundDeclTypeTime); - this.logger.log(" IsOverloadedCallSignatureTime: " + TypeScript.declarationEmitIsOverloadedCallSignatureTime); - this.logger.log(" FunctionDeclarationGetSymbolTime: " + TypeScript.declarationEmitFunctionDeclarationGetSymbolTime); - this.logger.log(" GetBaseTypeTime: " + TypeScript.declarationEmitGetBaseTypeTime); - this.logger.log(" GetAccessorFunctionTime: " + TypeScript.declarationEmitGetAccessorFunctionTime); - this.logger.log(" GetTypeParameterSymbolTime: " + TypeScript.declarationEmitGetTypeParameterSymbolTime); - this.logger.log(" GetImportDeclarationSymbolTime: " + TypeScript.declarationEmitGetImportDeclarationSymbolTime); - - this.logger.log("Emit write file time: " + TypeScript.emitWriteFileTime); - - this.logger.log("Compiler resolve path time: " + TypeScript.compilerResolvePathTime); - this.logger.log("Compiler directory name time: " + TypeScript.compilerDirectoryNameTime); - this.logger.log("Compiler directory exists time: " + TypeScript.compilerDirectoryExistsTime); - this.logger.log("Compiler file exists time: " + TypeScript.compilerFileExistsTime); - - this.logger.log("IO host resolve path time: " + TypeScript.ioHostResolvePathTime); - this.logger.log("IO host directory name time: " + TypeScript.ioHostDirectoryNameTime); - this.logger.log("IO host create directory structure time: " + TypeScript.ioHostCreateDirectoryStructureTime); - this.logger.log("IO host write file time: " + TypeScript.ioHostWriteFileTime); - - this.logger.log("Node make directory time: " + TypeScript.nodeMakeDirectoryTime); - this.logger.log("Node writeFileSync time: " + TypeScript.nodeWriteFileSyncTime); - this.logger.log("Node createBuffer time: " + TypeScript.nodeCreateBufferTime); - - this.logger.log("Total time: " + (new Date().getTime() - start)); - } - } - - // Exit with the appropriate error code - this.ioHost.quit(this.hasErrors ? 1 : 0); - } - - private resolve() { - // Resolve file dependencies, if requested - var includeDefaultLibrary = !this.compilationSettings.noLib(); - var resolvedFiles: IResolvedFile[] = []; - - var start = new Date().getTime(); - - if (!this.compilationSettings.noResolve()) { - // Resolve references - var resolutionResults = ReferenceResolver.resolve(this.inputFiles, this, this.compilationSettings.useCaseSensitiveFileResolution()); - resolvedFiles = resolutionResults.resolvedFiles; - - // Only include the library if useDefaultLib is set to true and did not see any 'no-default-lib' comments - includeDefaultLibrary = !this.compilationSettings.noLib() && !resolutionResults.seenNoDefaultLibTag; - - // Populate any diagnostic messages generated during resolution - resolutionResults.diagnostics.forEach(d => this.addDiagnostic(d)); - } - else { - for (var i = 0, n = this.inputFiles.length; i < n; i++) { - var inputFile = this.inputFiles[i]; - var referencedFiles: string[] = []; - var importedFiles: string[] = []; - - // If declaration files are going to be emitted, preprocess the file contents and add in referenced files as well - if (this.compilationSettings.generateDeclarationFiles()) { - var references = getReferencedFiles(inputFile, this.getScriptSnapshot(inputFile)); - for (var j = 0; j < references.length; j++) { - referencedFiles.push(references[j].path); - } - - inputFile = this.resolvePath(inputFile); - } - - resolvedFiles.push({ - path: inputFile, - referencedFiles: referencedFiles, - importedFiles: importedFiles - }); - } - } - - var defaultLibStart = new Date().getTime(); - if (includeDefaultLibrary) { - var libraryResolvedFile: IResolvedFile = { - path: this.getDefaultLibraryFilePath(), - referencedFiles: [], - importedFiles: [] - }; - - // Prepend the library to the resolved list - resolvedFiles = [libraryResolvedFile].concat(resolvedFiles); - } - TypeScript.fileResolutionGetDefaultLibraryTime += new Date().getTime() - defaultLibStart; - - this.resolvedFiles = resolvedFiles; - - TypeScript.fileResolutionTime = new Date().getTime() - start; - } - - // Returns true if compilation failed from some reason. - private compile(): void { - var compiler = new TypeScriptCompiler(this.logger, this.compilationSettings); - - this.resolvedFiles.forEach(resolvedFile => { - var sourceFile = this.getSourceFile(resolvedFile.path); - compiler.addFile(resolvedFile.path, sourceFile.scriptSnapshot, sourceFile.byteOrderMark, /*version:*/ 0, /*isOpen:*/ false, resolvedFile.referencedFiles); - }); - - for (var it = compiler.compile((path: string) => this.resolvePath(path)); it.moveNext();) { - var result = it.current(); - - result.diagnostics.forEach(d => this.addDiagnostic(d)); - if (!this.tryWriteOutputFiles(result.outputFiles)) { - return; - } - } - } - - // Parse command line options - private parseOptions() { - var opts = new OptionsParser(this.ioHost, this.compilerVersion); - - var mutableSettings = new CompilationSettings(); - opts.option('out', { - usage: { - locCode: DiagnosticCode.Concatenate_and_emit_output_to_single_file, - args: null - }, - type: DiagnosticCode.file2, - set: (str) => { - mutableSettings.outFileOption = str; - } - }); - - opts.option('outDir', { - usage: { - locCode: DiagnosticCode.Redirect_output_structure_to_the_directory, - args: null - }, - type: DiagnosticCode.DIRECTORY, - set: (str) => { - mutableSettings.outDirOption = str; - } - }); - - opts.flag('sourcemap', { - usage: { - locCode: DiagnosticCode.Generates_corresponding_0_file, - args: ['.map'] - }, - set: () => { - mutableSettings.mapSourceFiles = true; - } - }); - - opts.option('mapRoot', { - usage: { - locCode: DiagnosticCode.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations, - args: null - }, - type: DiagnosticCode.LOCATION, - set: (str) => { - mutableSettings.mapRoot = str; - } - }); - - opts.option('sourceRoot', { - usage: { - locCode: DiagnosticCode.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations, - args: null - }, - type: DiagnosticCode.LOCATION, - set: (str) => { - mutableSettings.sourceRoot = str; - } - }); - - opts.flag('declaration', { - usage: { - locCode: DiagnosticCode.Generates_corresponding_0_file, - args: ['.d.ts'] - }, - set: () => { - mutableSettings.generateDeclarationFiles = true; - } - }, 'd'); - - if (this.ioHost.watchFile) { - opts.flag('watch', { - usage: { - locCode: DiagnosticCode.Watch_input_files, - args: null - }, - set: () => { - mutableSettings.watch = true; - } - }, 'w'); - } - - opts.flag('propagateEnumConstants', { - experimental: true, - set: () => { mutableSettings.propagateEnumConstants = true; } - }); - - opts.flag('removeComments', { - usage: { - locCode: DiagnosticCode.Do_not_emit_comments_to_output, - args: null - }, - set: () => { - mutableSettings.removeComments = true; - } - }); - - opts.flag('noResolve', { - experimental: true, - usage: { - locCode: DiagnosticCode.Skip_resolution_and_preprocessing, - args: null - }, - set: () => { - mutableSettings.noResolve = true; - } - }); - - opts.flag('noLib', { - experimental: true, - set: () => { - mutableSettings.noLib = true; - } - }); - - opts.flag('diagnostics', { - experimental: true, - set: () => { - mutableSettings.gatherDiagnostics = true; - } - }); - - opts.option('target', { - usage: { - locCode: DiagnosticCode.Specify_ECMAScript_target_version_0_default_or_1, - args: ['ES3', 'ES5'] - }, - type: DiagnosticCode.VERSION, - set: (type) => { - type = type.toLowerCase(); - - if (type === 'es3') { - mutableSettings.codeGenTarget = LanguageVersion.EcmaScript3; - } - else if (type === 'es5') { - mutableSettings.codeGenTarget = LanguageVersion.EcmaScript5; - } - else { - this.addDiagnostic( - new Diagnostic(null, null, 0, 0, DiagnosticCode.Argument_for_0_option_must_be_1_or_2, ["target", "ES3", "ES5"])); - } - } - }, 't'); - - opts.option('module', { - usage: { - locCode: DiagnosticCode.Specify_module_code_generation_0_or_1, - args: ['commonjs', 'amd'] - }, - type: DiagnosticCode.KIND, - set: (type) => { - type = type.toLowerCase(); - - if (type === 'commonjs') { - mutableSettings.moduleGenTarget = ModuleGenTarget.Synchronous; - } - else if (type === 'amd') { - mutableSettings.moduleGenTarget = ModuleGenTarget.Asynchronous; - } - else { - this.addDiagnostic( - new Diagnostic(null, null, 0, 0, DiagnosticCode.Argument_for_0_option_must_be_1_or_2, ["module", "commonjs", "amd"])); - } - } - }, 'm'); - - var needsHelp = false; - opts.flag('help', { - usage: { - locCode: DiagnosticCode.Print_this_message, - args: null - }, - set: () => { - needsHelp = true; - } - }, 'h'); - - opts.flag('useCaseSensitiveFileResolution', { - experimental: true, - set: () => { - mutableSettings.useCaseSensitiveFileResolution = true; - } - }); - var shouldPrintVersionOnly = false; - opts.flag('version', { - usage: { - locCode: DiagnosticCode.Print_the_compiler_s_version_0, - args: [this.compilerVersion] - }, - set: () => { - shouldPrintVersionOnly = true; - } - }, 'v'); - - var locale: string = null; - opts.option('locale', { - experimental: true, - usage: { - locCode: DiagnosticCode.Specify_locale_for_errors_and_messages_For_example_0_or_1, - args: ['en', 'ja-jp'] - }, - type: DiagnosticCode.STRING, - set: (value) => { - locale = value; - } - }); - - opts.flag('noImplicitAny', { - usage: { - locCode: DiagnosticCode.Raise_error_on_expressions_and_declarations_with_an_implied_any_type, - args: null - }, - set: () => { - mutableSettings.noImplicitAny = true; - } - }); - - if (Environment.supportsCodePage()) { - opts.option('codepage', { - usage: { - locCode: DiagnosticCode.Specify_the_codepage_to_use_when_opening_source_files, - args: null - }, - type: DiagnosticCode.NUMBER, - set: (arg) => { - mutableSettings.codepage = parseInt(arg, 10); - } - }); - } - - opts.parse(this.ioHost.arguments); - - this.compilationSettings = ImmutableCompilationSettings.fromCompilationSettings(mutableSettings); - - if (locale) { - if (!this.setLocale(locale)) { - return false; - } - } - - this.inputFiles.push.apply(this.inputFiles, opts.unnamed); - - if (shouldPrintVersionOnly) { - opts.printVersion(); - return false; - } - // If no source files provided to compiler - print usage information - else if (this.inputFiles.length === 0 || needsHelp) { - opts.printUsage(); - return false; - } - - return !this.hasErrors; - } - - private setLocale(locale: string): boolean { - var matchResult = /^([a-z]+)([_\-]([a-z]+))?$/.exec(locale.toLowerCase()); - if (!matchResult) { - this.addDiagnostic(new Diagnostic(null, null, 0, 0, DiagnosticCode.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, ['en', 'ja-jp'])); - return false; - } - - var language = matchResult[1]; - var territory = matchResult[3]; - - // First try the entire locale, then fall back to just language if that's all we have. - if (!this.setLanguageAndTerritory(language, territory) && - !this.setLanguageAndTerritory(language, null)) { - - this.addDiagnostic(new Diagnostic(null, null, 0, 0, DiagnosticCode.Unsupported_locale_0, [locale])); - return false; - } - - return true; - } - - private setLanguageAndTerritory(language: string, territory: string): boolean { - - var compilerFilePath = this.ioHost.executingFilePath(); - var containingDirectoryPath = this.ioHost.directoryName(compilerFilePath); - - var filePath = IOUtils.combine(containingDirectoryPath, language); - if (territory) { - filePath = filePath + "-" + territory; - } - - filePath = this.resolvePath(IOUtils.combine(filePath, "diagnosticMessages.generated.json")); - - if (!this.fileExists(filePath)) { - return false; - } - - var fileContents = this.ioHost.readFile(filePath, this.compilationSettings.codepage()); - TypeScript.LocalizedDiagnosticMessages = JSON.parse(fileContents.contents); - return true; - } - - // Handle -watch switch - private watchFiles() { - if (!this.ioHost.watchFile) { - this.addDiagnostic( - new Diagnostic(null, null, 0, 0, DiagnosticCode.Current_host_does_not_support_0_option, ['-w[atch]'])); - return; - } - - var lastResolvedFileSet: string[] = [] - var watchers: { [x: string]: IFileWatcher; } = {}; - var firstTime = true; - - var addWatcher = (fileName: string) => { - if (!watchers[fileName]) { - var watcher = this.ioHost.watchFile(fileName, onWatchedFileChange); - watchers[fileName] = watcher; - } - }; - - var removeWatcher = (fileName: string) => { - if (watchers[fileName]) { - watchers[fileName].close(); - delete watchers[fileName]; - } - }; - - var onWatchedFileChange = () => { - // Clean errors for previous compilation - this.hasErrors = false; - - // Clear out any source file data we've cached. - this.fileNameToSourceFile = new StringHashTable(); - - // Resolve file dependencies, if requested - this.resolve(); - - // Check if any new files were added to the environment as a result of the file change - var oldFiles = lastResolvedFileSet; - var newFiles = this.resolvedFiles.map(resolvedFile => resolvedFile.path).sort(); - - var i = 0, j = 0; - while (i < oldFiles.length && j < newFiles.length) { - - var compareResult = oldFiles[i].localeCompare(newFiles[j]); - if (compareResult === 0) { - // No change here - i++; - j++; - } - else if (compareResult < 0) { - // Entry in old list does not exist in the new one, it was removed - removeWatcher(oldFiles[i]); - i++; - } - else { - // Entry in new list does exist in the new one, it was added - addWatcher(newFiles[j]); - j++; - } - } - - // All remaining unmatched items in the old list have been removed - for (var k = i; k < oldFiles.length; k++) { - removeWatcher(oldFiles[k]); - } - - // All remaing unmatched items in the new list have been added - for (k = j; k < newFiles.length; k++) { - addWatcher(newFiles[k]); - } - - // Update the state - lastResolvedFileSet = newFiles; - - // Print header - if (!firstTime) { - var fileNames = ""; - for (var k = 0; k < lastResolvedFileSet.length; k++) { - fileNames += Environment.newLine + " " + lastResolvedFileSet[k]; - } - this.ioHost.standardError.WriteLine(getLocalizedText(DiagnosticCode.NL_Recompiling_0, [fileNames])); - } - else { - firstTime = false; - } - - // Trigger a new compilation - this.compile(); - }; - - // Switch to using stdout for all error messages - this.ioHost.standardOut = this.ioHost.standardOut; - - onWatchedFileChange(); - } - - private getSourceFile(fileName: string): SourceFile { - var sourceFile: SourceFile = this.fileNameToSourceFile.lookup(fileName); - if (!sourceFile) { - // Attempt to read the file - var fileInformation: FileInformation; - - try { - fileInformation = this.ioHost.readFile(fileName, this.compilationSettings.codepage()); - } - catch (e) { - this.addDiagnostic(new Diagnostic(null, null, 0, 0, DiagnosticCode.Cannot_read_file_0_1, [fileName, e.message])); - fileInformation = new FileInformation("", ByteOrderMark.None); - } - - var snapshot = ScriptSnapshot.fromString(fileInformation.contents); - var sourceFile = new SourceFile(snapshot, fileInformation.byteOrderMark); - this.fileNameToSourceFile.add(fileName, sourceFile); - } - - return sourceFile; - } - - private getDefaultLibraryFilePath(): string { - var compilerFilePath = this.ioHost.executingFilePath(); - var containingDirectoryPath = this.ioHost.directoryName(compilerFilePath); - var libraryFilePath = this.resolvePath(IOUtils.combine(containingDirectoryPath, "lib.d.ts")); - - return libraryFilePath; - } - - /// IReferenceResolverHost methods - getScriptSnapshot(fileName: string): IScriptSnapshot { - return this.getSourceFile(fileName).scriptSnapshot; - } - - resolveRelativePath(path: string, directory: string): string { - var unQuotedPath = stripStartAndEndQuotes(path); - var normalizedPath: string; - - if (isRooted(unQuotedPath) || !directory) { - normalizedPath = unQuotedPath; - } else { - normalizedPath = IOUtils.combine(directory, unQuotedPath); - } - - // get the absolute path - normalizedPath = this.resolvePath(normalizedPath); - - // Switch to forward slashes - normalizedPath = switchToForwardSlashes(normalizedPath); - - return normalizedPath; - } - - private fileExistsCache = createIntrinsicsObject(); - - fileExists(path: string): boolean { - var exists = this.fileExistsCache[path]; - if (exists === undefined) { - var start = new Date().getTime(); - exists = this.ioHost.fileExists(path); - this.fileExistsCache[path] = exists; - TypeScript.compilerFileExistsTime += new Date().getTime() - start; - } - - return exists; - } - - getParentDirectory(path: string): string { - var start = new Date().getTime(); - var result = this.ioHost.directoryName(path); - TypeScript.compilerDirectoryNameTime += new Date().getTime() - start; - - return result; - } - - - private addDiagnostic(diagnostic: Diagnostic): void { - var diagnosticInfo = diagnostic.info(); - if (diagnosticInfo.category === DiagnosticCategory.Error) { - this.hasErrors = true; - } - - this.ioHost.standardError.Write(TypeScriptCompiler.getFullDiagnosticText(diagnostic, path => this.resolvePath(path))); - } - - private tryWriteOutputFiles(outputFiles: OutputFile[]): boolean { - for (var i = 0, n = outputFiles.length; i < n; i++) { - var outputFile = outputFiles[i]; - - try { - this.writeFile(outputFile.name, outputFile.text, outputFile.writeByteOrderMark); - } - catch (e) { - this.addDiagnostic( - new Diagnostic(outputFile.name, null, 0, 0, DiagnosticCode.Emit_Error_0, [e.message])); - return false; - } - } - - return true; - } - - writeFile(fileName: string, contents: string, writeByteOrderMark: boolean): void { - var start = new Date().getTime(); - IOUtils.writeFileAndFolderStructure(this.ioHost, fileName, contents, writeByteOrderMark); - TypeScript.emitWriteFileTime += new Date().getTime() - start; - } - - directoryExists(path: string): boolean { - var start = new Date().getTime(); - var result = this.ioHost.directoryExists(path); - TypeScript.compilerDirectoryExistsTime += new Date().getTime() - start; - return result; - } - - // For performance reasons we cache the results of resolvePath. This avoids costly lookup - // on the disk once we've already resolved a path once. - private resolvePathCache = createIntrinsicsObject(); - - resolvePath(path: string): string { - var cachedValue = this.resolvePathCache[path]; - if (!cachedValue) { - var start = new Date().getTime(); - cachedValue = this.ioHost.absolutePath(path); - this.resolvePathCache[path] = cachedValue; - TypeScript.compilerResolvePathTime += new Date().getTime() - start; - } - - return cachedValue; - } - } - - // Start the batch compilation using the current hosts IO - var batch = new TypeScript.BatchCompiler(Environment); - batch.batchCompile(); -} From 186c04cebc2043961bd85f7961d7ddf847b248fb Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Wed, 14 Jan 2015 23:07:10 +0100 Subject: [PATCH 020/211] Remove now unused diagnostics keys --- src/services/resources/diagnosticCode.generated.ts | 7 ------- src/services/syntax/SyntaxGenerator.d.ts | 7 ------- 2 files changed, 14 deletions(-) diff --git a/src/services/resources/diagnosticCode.generated.ts b/src/services/resources/diagnosticCode.generated.ts index 86509fdd63b..1a0ac12e165 100644 --- a/src/services/resources/diagnosticCode.generated.ts +++ b/src/services/resources/diagnosticCode.generated.ts @@ -402,19 +402,13 @@ module TypeScript { 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", @@ -431,7 +425,6 @@ module TypeScript { 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.", diff --git a/src/services/syntax/SyntaxGenerator.d.ts b/src/services/syntax/SyntaxGenerator.d.ts index d01d227b786..783ecb436ed 100644 --- a/src/services/syntax/SyntaxGenerator.d.ts +++ b/src/services/syntax/SyntaxGenerator.d.ts @@ -383,19 +383,13 @@ declare module TypeScript { Option_0_specified_without_1: string; codepage_option_not_supported_on_current_platform: string; Concatenate_and_emit_output_to_single_file: string; - Generates_corresponding_0_file: string; Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: string; Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: string; Watch_input_files: string; Redirect_output_structure_to_the_directory: string; Do_not_emit_comments_to_output: string; - Skip_resolution_and_preprocessing: string; - Specify_ECMAScript_target_version_0_default_or_1: string; - Specify_module_code_generation_0_or_1: string; Print_this_message: string; - Print_the_compiler_s_version_0: string; Allow_use_of_deprecated_0_keyword_when_referencing_an_external_module: string; - Specify_locale_for_errors_and_messages_For_example_0_or_1: string; Syntax_0: string; options: string; file1: string; @@ -412,7 +406,6 @@ declare module TypeScript { LOCATION: string; DIRECTORY: string; NUMBER: string; - Specify_the_codepage_to_use_when_opening_source_files: string; Additional_locations: string; This_version_of_the_Javascript_runtime_does_not_support_the_0_function: string; Unknown_rule: string; From b4bab03353843d7904d7c22d2d1cb3b22e2391df Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Wed, 14 Jan 2015 23:09:48 +0100 Subject: [PATCH 021/211] Removed services/compiler/optionsParser.ts Code is also defined here: src\compiler\tsc.ts --- src/services/compiler/optionsParser.ts | 266 ------------------------- 1 file changed, 266 deletions(-) delete mode 100644 src/services/compiler/optionsParser.ts diff --git a/src/services/compiler/optionsParser.ts b/src/services/compiler/optionsParser.ts deleted file mode 100644 index 6c2a15813d5..00000000000 --- a/src/services/compiler/optionsParser.ts +++ /dev/null @@ -1,266 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/// - -module TypeScript { - export interface IOptions { - name?: string; - flag?: boolean; - short?: string; - usage?: { - locCode: string; // DiagnosticCode - args: string[] - }; - set?: (s: string) => void; - type?: string; // DiagnosticCode - experimental?: boolean; - } - - export class OptionsParser { - private DEFAULT_SHORT_FLAG = "-"; - private DEFAULT_LONG_FLAG = "--"; - - private printedVersion: boolean = false; - - // Find the option record for the given string. Returns null if not found. - private findOption(arg: string) { - var upperCaseArg = arg && arg.toUpperCase(); - - for (var i = 0; i < this.options.length; i++) { - var current = this.options[i]; - - if (upperCaseArg === (current.short && current.short.toUpperCase()) || - upperCaseArg === (current.name && current.name.toUpperCase())) { - return current; - } - } - - return null; - } - - public unnamed: string[] = []; - - public options: IOptions[] = []; - - constructor(public host: IEnvironment, public version: string) { - } - - public printUsage() { - this.printVersion(); - - var optionsWord = getLocalizedText(DiagnosticCode.options, null); - var fileWord = getLocalizedText(DiagnosticCode.file1, null); - var tscSyntax = "tsc [" + optionsWord + "] [" + fileWord + " ..]"; - var syntaxHelp = getLocalizedText(DiagnosticCode.Syntax_0, [tscSyntax]); - this.host.standardOut.WriteLine(syntaxHelp); - this.host.standardOut.WriteLine(""); - this.host.standardOut.WriteLine(getLocalizedText(DiagnosticCode.Examples, null) + " tsc hello.ts"); - this.host.standardOut.WriteLine(" tsc --out foo.js foo.ts"); - this.host.standardOut.WriteLine(" tsc @args.txt"); - this.host.standardOut.WriteLine(""); - this.host.standardOut.WriteLine(getLocalizedText(DiagnosticCode.Options, null)); - - var output: string[][] = []; - var maxLength = 0; - var i = 0; - - this.options = this.options.sort(function (a, b) { - var aName = a.name.toLowerCase(); - var bName = b.name.toLowerCase(); - - if (aName > bName) { - return 1; - } else if (aName < bName) { - return -1; - } else { - return 0; - } - }); - - // Build up output array - for (i = 0; i < this.options.length; i++) { - var option = this.options[i]; - - if (option.experimental) { - continue; - } - - if (!option.usage) { - break; - } - - var usageString = " "; - var type = option.type ? (" " + TypeScript.getLocalizedText(option.type, null)) : ""; - - if (option.short) { - usageString += this.DEFAULT_SHORT_FLAG + option.short + type + ", "; - } - - usageString += this.DEFAULT_LONG_FLAG + option.name + type; - - output.push([usageString, TypeScript.getLocalizedText(option.usage.locCode, option.usage.args)]); - - if (usageString.length > maxLength) { - maxLength = usageString.length; - } - } - - var fileDescription = getLocalizedText(DiagnosticCode.Insert_command_line_options_and_files_from_a_file, null); - output.push([" @<" + fileWord + ">", fileDescription]); - - // Print padded output - for (i = 0; i < output.length; i++) { - this.host.standardOut.WriteLine(output[i][0] + (new Array(maxLength - output[i][0].length + 3)).join(" ") + output[i][1]); - } - } - - public printVersion() { - if (!this.printedVersion) { - this.host.standardOut.WriteLine(getLocalizedText(DiagnosticCode.Version_0, [this.version])); - this.printedVersion = true; - } - } - - public option(name: string, config: IOptions, short?: string) { - if (!config) { - config = short; - short = null; - } - - config.name = name; - config.short = short; - config.flag = false; - - this.options.push(config); - } - - public flag(name: string, config: IOptions, short?: string) { - if (!config) { - config = short; - short = null; - } - - config.name = name; - config.short = short; - config.flag = true; - - this.options.push(config); - } - - // Parse an arguments string - public parseString(argString: string) { - var position = 0; - var tokens = argString.match(/\s+|"|[^\s"]+/g); - - function peek() { - return tokens[position]; - } - - function consume() { - return tokens[position++]; - } - - function consumeQuotedString() { - var value = ''; - consume(); // skip opening quote. - - var token = peek(); - - while (token && token !== '"') { - consume(); - - value += token; - - token = peek(); - } - - consume(); // skip ending quote; - - return value; - } - - var args: string[] = []; - var currentArg = ''; - - while (position < tokens.length) { - var token = peek(); - - if (token === '"') { - currentArg += consumeQuotedString(); - } else if (token.match(/\s/)) { - if (currentArg.length > 0) { - args.push(currentArg); - currentArg = ''; - } - - consume(); - } else { - consume(); - currentArg += token; - } - } - - if (currentArg.length > 0) { - args.push(currentArg); - } - - this.parse(args); - } - - // Parse arguments as they come from the platform: split into arguments. - public parse(args: string[]) { - var position = 0; - - function consume() { - return args[position++]; - } - - while (position < args.length) { - var current = consume(); - var match = current.match(/^(--?|@)(.*)/); - var value: any = null; - - if (match) { - if (match[1] === '@') { - this.parseString(this.host.readFile(match[2], null).contents); - } else { - var arg = match[2]; - var option = this.findOption(arg); - - if (option === null) { - this.host.standardOut.WriteLine(getDiagnosticMessage(DiagnosticCode.Unknown_compiler_option_0, [arg])); - this.host.standardOut.WriteLine(getLocalizedText(DiagnosticCode.Use_the_0_flag_to_see_options, ["--help"])); - } else { - if (!option.flag) { - value = consume(); - if (value === undefined) { - // No value provided - this.host.standardOut.WriteLine(getDiagnosticMessage(DiagnosticCode.Option_0_specified_without_1, [arg, getLocalizedText(option.type, null)])); - this.host.standardOut.WriteLine(getLocalizedText(DiagnosticCode.Use_the_0_flag_to_see_options, ["--help"])); - continue; - } - } - - option.set(value); - } - } - } else { - this.unnamed.push(current); - } - } - } - } -} \ No newline at end of file From 868cbb6d76d6d365c93f8d1513ffc3d018f29f83 Mon Sep 17 00:00:00 2001 From: Dick van den Brink Date: Wed, 14 Jan 2015 23:15:05 +0100 Subject: [PATCH 022/211] Removed services/compiler/emitter.ts This one is replaced by src/compiler/emitter.ts --- src/services/compiler/emitter.ts | 3797 ------------------------------ 1 file changed, 3797 deletions(-) delete mode 100644 src/services/compiler/emitter.ts diff --git a/src/services/compiler/emitter.ts b/src/services/compiler/emitter.ts deleted file mode 100644 index 8de5e64dbba..00000000000 --- a/src/services/compiler/emitter.ts +++ /dev/null @@ -1,3797 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/// - -module TypeScript { - export enum EmitContainer { - Prog, - Module, - DynamicModule, - Class, - Constructor, - Function, - Args, - Interface, - } - - export class EmitState { - public column: number; - public line: number; - public container: EmitContainer; - - constructor() { - this.column = 0; - this.line = 0; - this.container = EmitContainer.Prog; - } - } - - export class EmitOptions { - private _diagnostic: Diagnostic = null; - - private _settings: ImmutableCompilationSettings = null; - private _commonDirectoryPath = ""; - private _sharedOutputFile = ""; - private _sourceRootDirectory = ""; - private _sourceMapRootDirectory = ""; - private _outputDirectory = ""; - - public diagnostic(): Diagnostic { return this._diagnostic; } - - public commonDirectoryPath() { return this._commonDirectoryPath; } - public sharedOutputFile() { return this._sharedOutputFile; } - public sourceRootDirectory() { return this._sourceRootDirectory; } - public sourceMapRootDirectory() { return this._sourceMapRootDirectory; } - public outputDirectory() { return this._outputDirectory; } - - public compilationSettings() { return this._settings; } - - constructor(compiler: TypeScriptCompiler, public resolvePath: (path: string) => string) { - var settings = compiler.compilationSettings(); - this._settings = settings; - - // If the document is an external module, then report if the the user has not - // provided the right command line option. - if (settings.moduleGenTarget() === ModuleGenTarget.Unspecified) { - var fileNames = compiler.fileNames(); - for (var i = 0, n = fileNames.length; i < n; i++) { - var document = compiler.getDocument(fileNames[i]); - if (!document.isDeclareFile() && document.syntaxTree().isExternalModule()) { - var errorSpan = externalModuleIndicatorSpan(document.syntaxTree()); - this._diagnostic = new Diagnostic(document.fileName, document.lineMap(), errorSpan.start(), errorSpan.length(), - DiagnosticCode.Cannot_compile_external_modules_unless_the_module_flag_is_provided); - - return; - } - } - } - - if (!settings.mapSourceFiles()) { - // Error to specify --mapRoot or --sourceRoot without mapSourceFiles - if (settings.mapRoot()) { - if (settings.sourceRoot()) { - this._diagnostic = new Diagnostic(null, null, 0, 0, DiagnosticCode.Options_mapRoot_and_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option, null); - return; - } - else { - this._diagnostic = new Diagnostic(null, null, 0, 0, DiagnosticCode.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option, null); - return; - } - } - else if (settings.sourceRoot()) { - this._diagnostic = new Diagnostic(null, null, 0, 0, DiagnosticCode.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option, null); - return; - } - } - - this._sourceMapRootDirectory = convertToDirectoryPath(switchToForwardSlashes(settings.mapRoot())); - this._sourceRootDirectory = convertToDirectoryPath(switchToForwardSlashes(settings.sourceRoot())); - - if (settings.outFileOption() || - settings.outDirOption() || - settings.mapRoot() || - settings.sourceRoot()) { - - if (settings.outFileOption()) { - this._sharedOutputFile = switchToForwardSlashes(resolvePath(settings.outFileOption())); - } - - if (settings.outDirOption()) { - this._outputDirectory = convertToDirectoryPath(switchToForwardSlashes(resolvePath(settings.outDirOption()))); - } - - // Parse the directory structure - if (this._outputDirectory || this._sourceMapRootDirectory || this.sourceRootDirectory) { - this.determineCommonDirectoryPath(compiler); - } - } - } - - private determineCommonDirectoryPath(compiler: TypeScriptCompiler): void { - var commonComponents: string[] = []; - var commonComponentsLength = -1; - - var fileNames = compiler.fileNames(); - for (var i = 0, len = fileNames.length; i < len; i++) { - var fileName = fileNames[i]; - var document = compiler.getDocument(fileNames[i]); - var sourceUnit = document.sourceUnit(); - - if (!document.isDeclareFile()) { - var fileComponents = filePathComponents(fileName); - if (commonComponentsLength === -1) { - // First time at finding common path - // So common path = directory of file - commonComponents = fileComponents; - commonComponentsLength = commonComponents.length; - } - else { - var updatedPath = false; - for (var j = 0; j < commonComponentsLength && j < fileComponents.length; j++) { - if (commonComponents[j] !== fileComponents[j]) { - // The new components = 0 ... j -1 - commonComponentsLength = j; - updatedPath = true; - - if (j === 0) { - var isDynamicModuleCompilation = ArrayUtilities.any(fileNames, fileName => { - document = compiler.getDocument(fileName); - return !document.isDeclareFile() && document.syntaxTree().isExternalModule(); - }); - - if (this._outputDirectory || // there is --outDir specified - this._sourceRootDirectory || // there is --sourceRoot specified - (this._sourceMapRootDirectory && // there is --map Specified and there would be multiple js files generated - (!this._sharedOutputFile || isDynamicModuleCompilation))) { - // Its error to not have common path - this._diagnostic = new Diagnostic(null, null, 0, 0, DiagnosticCode.Cannot_find_the_common_subdirectory_path_for_the_input_files, null); - return; - } - - return; - } - - break; - } - } - - // If the fileComponent path completely matched and less than already found update the length - if (!updatedPath && fileComponents.length < commonComponentsLength) { - commonComponentsLength = fileComponents.length; - } - } - } - } - - this._commonDirectoryPath = commonComponents.slice(0, commonComponentsLength).join("/") + "/"; - } - } - - export class Indenter { - static indentStep: number = 4; - static indentStepString: string = " "; - static indentStrings: string[] = []; - public indentAmt: number = 0; - - public increaseIndent() { - this.indentAmt += Indenter.indentStep; - } - - public decreaseIndent() { - this.indentAmt -= Indenter.indentStep; - } - - public getIndent() { - var indentString = Indenter.indentStrings[this.indentAmt]; - if (indentString === undefined) { - indentString = ""; - for (var i = 0; i < this.indentAmt; i = i + Indenter.indentStep) { - indentString += Indenter.indentStepString; - } - Indenter.indentStrings[this.indentAmt] = indentString; - } - return indentString; - } - } - - export function lastParameterIsRest(parameters: ParameterSyntax[]): boolean { - return parameters.length > 0 && (parameters[parameters.length - 1]).dotDotDotToken !== null; - } - - export class Emitter { - public globalThisCapturePrologueEmitted = false; - public extendsPrologueEmitted = false; - public thisClassNode: ClassDeclarationSyntax = null; - public inArrowFunction: boolean = false; - public moduleName = ""; - public emitState = new EmitState(); - public indenter = new Indenter(); - public sourceMapper: SourceMapper = null; - public captureThisStmtString = "var _this = this;"; - private currentVariableDeclaration: VariableDeclarationSyntax; - private declStack: PullDecl[] = []; - private exportAssignment: ExportAssignmentSyntax = null; - private inWithBlock = false; - - public document: Document = null; - - // If we choose to detach comments from an element (for example, the Copyright comments), - // then keep track of that element so that we don't emit all on the comments on it when - // we visit it. - private detachedCommentsElement: ISyntaxElement = null; - - constructor(public emittingFileName: string, - public outfile: TextWriter, - public emitOptions: EmitOptions, - private semanticInfoChain: SemanticInfoChain) { - } - - private pushDecl(decl: PullDecl) { - if (decl) { - this.declStack[this.declStack.length] = decl; - } - } - - private popDecl(decl: PullDecl) { - if (decl) { - this.declStack.length--; - } - } - - private getEnclosingDecl() { - var declStackLen = this.declStack.length; - var enclosingDecl = declStackLen > 0 ? this.declStack[declStackLen - 1] : null; - return enclosingDecl; - } - - public setExportAssignment(exportAssignment: ExportAssignmentSyntax) { - this.exportAssignment = exportAssignment; - } - - public getExportAssignment() { - return this.exportAssignment; - } - - public setDocument(document: Document) { - this.document = document; - } - - public shouldEmitImportDeclaration(importDeclAST: ImportDeclarationSyntax) { - var isExternalModuleReference = importDeclAST.moduleReference.kind() === SyntaxKind.ExternalModuleReference; - var importDecl = this.semanticInfoChain.getDeclForAST(importDeclAST); - var isExported = hasFlag(importDecl.flags, PullElementFlags.Exported); - var isAmdCodeGen = this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous; - - // 1) Any internal reference needs to check if the emit can happen - // 2) External module reference with export modifier always needs to be emitted - // 3) commonjs needs the var declaration for the import declaration - if (isExternalModuleReference && !isExported && isAmdCodeGen) { - return false; - } - - var importSymbol = importDecl.getSymbol(this.semanticInfoChain); - if (importSymbol.isUsedAsValue()) { - return true; - } - - if (importDeclAST.moduleReference.kind() !== SyntaxKind.ExternalModuleReference) { - var canBeUsedExternally = isExported || importSymbol.typeUsedExternally() || importSymbol.isUsedInExportedAlias(); - if (!canBeUsedExternally && !this.document.syntaxTree().isExternalModule()) { - // top level import in non-external module are visible across the whole global module - canBeUsedExternally = hasFlag(importDecl.getParentDecl().kind, PullElementKind.Script | PullElementKind.DynamicModule); - } - - if (canBeUsedExternally) { - if (importSymbol.getExportAssignedValueSymbol()) { - return true; - } - - var containerSymbol = importSymbol.getExportAssignedContainerSymbol(); - if (containerSymbol && containerSymbol.getInstanceSymbol()) { - return true; - } - } - } - - return false; - } - - public emitImportDeclaration(importDeclAST: ImportDeclarationSyntax) { - var isExternalModuleReference = importDeclAST.moduleReference.kind() === SyntaxKind.ExternalModuleReference; - var importDecl = this.semanticInfoChain.getDeclForAST(importDeclAST); - var isExported = hasFlag(importDecl.flags, PullElementFlags.Exported); - var isAmdCodeGen = this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous; - - this.emitComments(importDeclAST, true); - - var importSymbol = importDecl.getSymbol(this.semanticInfoChain); - - var parentSymbol = importSymbol.getContainer(); - var parentKind = parentSymbol ? parentSymbol.kind : PullElementKind.None; - var associatedParentSymbol = parentSymbol ? parentSymbol.getAssociatedContainerType() : null; - var associatedParentSymbolKind = associatedParentSymbol ? associatedParentSymbol.kind : PullElementKind.None; - - var needsPropertyAssignment = false; - var usePropertyAssignmentInsteadOfVarDecl = false; - var moduleNamePrefix: string; - - if (isExported && - (parentKind === PullElementKind.Container || - parentKind === PullElementKind.DynamicModule || - associatedParentSymbolKind === PullElementKind.Container || - associatedParentSymbolKind === PullElementKind.DynamicModule)) { - if (importSymbol.getExportAssignedTypeSymbol() || importSymbol.getExportAssignedContainerSymbol()) { - // Type or container assignment that is exported - needsPropertyAssignment = true; - } - else { - var valueSymbol = importSymbol.getExportAssignedValueSymbol(); - if (valueSymbol && - (valueSymbol.kind === PullElementKind.Method || valueSymbol.kind === PullElementKind.Function)) { - needsPropertyAssignment = true; - } - else { - usePropertyAssignmentInsteadOfVarDecl = true; - } - } - - // Calculate what name prefix to use - if (this.emitState.container === EmitContainer.DynamicModule) { - moduleNamePrefix = "exports." - } - else { - moduleNamePrefix = this.moduleName + "."; - } - } - - if (isAmdCodeGen && isExternalModuleReference) { - // For amdCode gen of exported external module reference, do not emit var declaration - // Emit the property assignment since it is exported - needsPropertyAssignment = true; - } - else { - this.recordSourceMappingStart(importDeclAST); - if (usePropertyAssignmentInsteadOfVarDecl) { - this.writeToOutput(moduleNamePrefix); - } - else { - this.writeToOutput("var "); - } - this.writeToOutput(importDeclAST.identifier.text() + " = "); - var aliasAST = importDeclAST.moduleReference; - - if (isExternalModuleReference) { - this.writeToOutput("require(" + (aliasAST).stringLiteral.text() + ")"); - } - else { - this.emitJavascript((aliasAST).moduleName, false); - } - - this.recordSourceMappingEnd(importDeclAST); - this.writeToOutput(";"); - - if (needsPropertyAssignment) { - this.writeLineToOutput(""); - this.emitIndent(); - } - } - - if (needsPropertyAssignment) { - this.writeToOutputWithSourceMapRecord(moduleNamePrefix + importDeclAST.identifier.text() + " = " + importDeclAST.identifier.text(), importDeclAST); - this.writeToOutput(";"); - } - this.emitComments(importDeclAST, false); - } - - public createSourceMapper(document: Document, jsFileName: string, jsFile: TextWriter, sourceMapOut: TextWriter, resolvePath: (path: string) => string) { - this.sourceMapper = new SourceMapper(jsFile, sourceMapOut, document, jsFileName, this.emitOptions, resolvePath); - } - - public setSourceMapperNewSourceFile(document: Document) { - this.sourceMapper.setNewSourceFile(document, this.emitOptions); - } - - private updateLineAndColumn(s: string) { - var lineNumbers = TextUtilities.parseLineStarts(s); - if (lineNumbers.length > 1) { - // There are new lines in the string, update the line and column number accordingly - this.emitState.line += lineNumbers.length - 1; - this.emitState.column = s.length - lineNumbers[lineNumbers.length - 1]; - } - else { - // No new lines in the string - this.emitState.column += s.length; - } - } - - public writeToOutputWithSourceMapRecord(s: string, astSpan: ISyntaxElement) { - if (astSpan) { - this.recordSourceMappingStart(astSpan); - } - - this.writeToOutput(s); - - if (astSpan) { - this.recordSourceMappingEnd(astSpan); - } - } - - public writeToOutput(s: string) { - this.outfile.Write(s); - this.updateLineAndColumn(s); - } - - public writeLineToOutput(s: string, force = false) { - // No need to print a newline if we're already at the start of the line. - if (!force && s === "" && this.emitState.column === 0) { - return; - } - - this.outfile.WriteLine(s); - this.updateLineAndColumn(s); - this.emitState.column = 0; - this.emitState.line++; - } - - public writeCaptureThisStatement(ast: ISyntaxElement) { - this.emitIndent(); - this.writeToOutputWithSourceMapRecord(this.captureThisStmtString, ast); - this.writeLineToOutput(""); - } - - public setContainer(c: number): number { - var temp = this.emitState.container; - this.emitState.container = c; - return temp; - } - - private getIndentString() { - return this.indenter.getIndent(); - } - - public emitIndent() { - this.writeToOutput(this.getIndentString()); - } - - public emitComment(comment: Comment, trailing: boolean, first: boolean, noLeadingSpace = false) { - if (this.emitOptions.compilationSettings().removeComments()) { - return; - } - - var text = getTrimmedTextLines(comment); - var emitColumn = this.emitState.column; - - if (emitColumn === 0) { - this.emitIndent(); - } - else if (trailing && first && !noLeadingSpace) { - this.writeToOutput(" "); - } - - if (comment.kind() === SyntaxKind.MultiLineCommentTrivia) { - this.recordSourceMappingCommentStart(comment); - this.writeToOutput(text[0]); - - if (text.length > 1 || comment.endsLine) { - for (var i = 1; i < text.length; i++) { - this.writeLineToOutput(""); - this.emitIndent(); - this.writeToOutput(text[i]); - } - this.recordSourceMappingCommentEnd(comment); - this.writeLineToOutput(""); - // Fall through - } - else { - this.recordSourceMappingCommentEnd(comment); - this.writeToOutput(" "); - return; - } - } - else { - this.recordSourceMappingCommentStart(comment); - this.writeToOutput(text[0]); - this.recordSourceMappingCommentEnd(comment); - this.writeLineToOutput(""); - // Fall through - } - - if (!trailing && emitColumn !== 0) { - // If we were indented before, stay indented after. - this.emitIndent(); - } - } - - private text(): ISimpleText { - return this.document.syntaxTree().text; - } - - public emitComments(ast: ISyntaxElement, pre: boolean, onlyPinnedOrTripleSlashComments: boolean = false) { - // Emitting the comments for the exprssion inside an arrow function is handled specially - // in emitFunctionBodyStatements. We don't want to emit those comments a second time. - if (ast && !isShared(ast) && ast.kind() !== SyntaxKind.Block) { - if (ast.parent.kind() === SyntaxKind.SimpleArrowFunctionExpression || ast.parent.kind() === SyntaxKind.ParenthesizedArrowFunctionExpression) { - return; - } - } - - if (pre) { - var preComments = TypeScript.ASTHelpers.preComments(ast, this.text()); - - if (preComments && ast === this.detachedCommentsElement) { - // We're emitting the comments for the first script element. Skip any - // copyright comments, as we'll already have emitted those. - var detachedComments = this.getDetachedComments(ast); - preComments = preComments.slice(detachedComments.length); - this.detachedCommentsElement = null; - } - - // We're emitting comments on an elided element. Only keep the comment if it is - // a triple slash or pinned comment. - if (preComments && onlyPinnedOrTripleSlashComments) { - preComments = ArrayUtilities.where(preComments, c => this.isPinnedOrTripleSlash(c)); - } - - this.emitCommentsArray(preComments, /*trailing:*/ false); - } - else { - this.emitCommentsArray(ASTHelpers.postComments(ast, this.text()), /*trailing:*/ true); - } - } - - private isPinnedOrTripleSlash(comment: Comment): boolean { - var fullText = comment.fullText(); - if (fullText.match(tripleSlashReferenceRegExp)) { - return true; - } - else { - return fullText.indexOf("/*!") === 0; - } - } - - private emitCommentsArray(comments: Comment[], trailing: boolean, noLeadingSpace = false): void { - if (!this.emitOptions.compilationSettings().removeComments() && comments) { - for (var i = 0, n = comments.length; i < n; i++) { - this.emitComment(comments[i], trailing, /*first:*/ i === 0, noLeadingSpace); - } - } - } - - public emitObjectLiteralExpression(objectLiteral: ObjectLiteralExpressionSyntax) { - this.recordSourceMappingStart(objectLiteral); - - // Try to preserve the newlines between elements that the user had. - this.writeToken(objectLiteral.openBraceToken); - this.emitCommaSeparatedList(objectLiteral, objectLiteral.propertyAssignments, /*buffer:*/ " ", /*preserveNewLines:*/ true); - this.writeToken(objectLiteral.closeBraceToken); - - this.recordSourceMappingEnd(objectLiteral); - } - - public emitArrayLiteralExpression(arrayLiteral: ArrayLiteralExpressionSyntax) { - this.recordSourceMappingStart(arrayLiteral); - - // Try to preserve the newlines between elements that the user had. - this.writeToken(arrayLiteral.openBracketToken); - this.emitCommaSeparatedList(arrayLiteral, arrayLiteral.expressions, /*buffer:*/ "", /*preserveNewLines:*/ true); - this.writeToken(arrayLiteral.closeBracketToken); - - this.recordSourceMappingEnd(arrayLiteral); - } - - public emitObjectCreationExpression(objectCreationExpression: ObjectCreationExpressionSyntax) { - this.recordSourceMappingStart(objectCreationExpression); - this.writeToken(objectCreationExpression.newKeyword); - this.writeToOutput(" "); - var target = objectCreationExpression.expression; - - this.emit(target); - if (objectCreationExpression.argumentList) { - this.recordSourceMappingStart(objectCreationExpression.argumentList); - this.writeToken(objectCreationExpression.argumentList.openParenToken); - this.emitCommaSeparatedList(objectCreationExpression.argumentList, objectCreationExpression.argumentList.arguments, /*buffer:*/ "", /*preserveNewLines:*/ false); - this.writeToken(objectCreationExpression.argumentList.closeParenToken); - this.recordSourceMappingEnd(objectCreationExpression.argumentList); - } - - this.recordSourceMappingEnd(objectCreationExpression); - } - - public getConstantDecl(dotExpr: MemberAccessExpressionSyntax): PullEnumElementDecl { - var pullSymbol = this.semanticInfoChain.getSymbolForAST(dotExpr); - if (pullSymbol && pullSymbol.kind === PullElementKind.EnumMember) { - var pullDecls = pullSymbol.getDeclarations(); - if (pullDecls.length === 1) { - var pullDecl = pullDecls[0]; - if (pullDecl.kind === PullElementKind.EnumMember) { - return pullDecl; - } - } - } - - return null; - } - - public tryEmitConstant(dotExpr: MemberAccessExpressionSyntax) { - var propertyName = dotExpr.name; - var boundDecl = this.getConstantDecl(dotExpr); - if (boundDecl) { - var value = boundDecl.constantValue; - if (value !== null) { - this.recordSourceMappingStart(dotExpr); - this.writeToOutput(value.toString()); - var comment = " /* "; - comment += propertyName.text(); - comment += " */"; - this.writeToOutput(comment); - this.recordSourceMappingEnd(dotExpr); - return true; - } - } - - return false; - } - - public emitInvocationExpression(callNode: InvocationExpressionSyntax) { - this.recordSourceMappingStart(callNode); - var target = callNode.expression; - var args = callNode.argumentList.arguments; - - if (target.kind() === SyntaxKind.MemberAccessExpression && (target).expression.kind() === SyntaxKind.SuperKeyword) { - this.emit(target); - this.writeToOutput(".call"); - this.recordSourceMappingStart(args); - this.writeToken(callNode.argumentList.openParenToken); - this.emitThis(); - if (args && args.length > 0) { - this.writeToOutput(", "); - this.emitCommaSeparatedList(callNode.argumentList, args, /*buffer:*/ "", /*preserveNewLines:*/ false); - } - } - else { - if (callNode.expression.kind() === SyntaxKind.SuperKeyword && this.emitState.container === EmitContainer.Constructor) { - this.writeToOutput("_super.call"); - } - else { - this.emitJavascript(target, false); - } - this.recordSourceMappingStart(args); - this.writeToken(callNode.argumentList.openParenToken); - if (callNode.expression.kind() === SyntaxKind.SuperKeyword && this.emitState.container === EmitContainer.Constructor) { - this.writeToOutput("this"); - if (args && args.length > 0) { - this.writeToOutput(", "); - } - } - this.emitCommaSeparatedList(callNode.argumentList, args, /*buffer:*/ "", /*preserveNewLines:*/ false); - } - - this.writeToken(callNode.argumentList.closeParenToken); - this.recordSourceMappingEnd(args); - this.recordSourceMappingEnd(callNode); - } - - private emitParameterList(list: ParameterListSyntax): void { - this.writeToken(list.openParenToken); - this.emitCommentsArray(ASTHelpers.convertTokenTrailingComments(list.openParenToken, this.text()), /*trailing:*/ true, /*noLeadingSpace:*/ true); - this.emitFunctionParameters(list.parameters, list.parameters); - this.writeToken(list.closeParenToken); - } - - private emitFunctionParameters(ast: ISyntaxElement, parameters: ParameterSyntax[]): void { - var argsLen = 0; - - if (parameters) { - this.emitComments(ast, true); - - var tempContainer = this.setContainer(EmitContainer.Args); - argsLen = parameters.length; - var printLen = argsLen; - if (lastParameterIsRest(parameters)) { - printLen--; - } - for (var i = 0; i < printLen; i++) { - var arg = parameters[i]; - this.emit(arg); - - if (i < (printLen - 1)) { - this.writeToOutput(", "); - if (parameters) { - this.emitCommentsArray(ASTHelpers.convertTokenTrailingComments(parameters.separatorAt(i), this.text()), /*trailing:*/ true, /*noLeadingSpace:*/ true); - } - } - } - this.setContainer(tempContainer); - - this.emitComments(ast, false); - } - } - - private emitFunctionBodyStatements(name: string, funcDecl: ISyntaxElement, parameters: ParameterSyntax[], block: BlockSyntax, bodyExpression: ISyntaxElement): void { - this.writeLineToOutput(" {"); - if (name) { - this.recordSourceMappingNameStart(name); - } - - this.indenter.increaseIndent(); - - if (block) { - // We want any detached statements at the start of hte block to stay at the start. - // This is important for features like VSDoc which place their comments inside a - // block, but can't have them preceded by things like "var _this = this" when we - // emit. - - this.emitDetachedComments(block.statements); - } - - // Parameter list parameters with defaults could capture this - if (this.shouldCaptureThis(funcDecl)) { - this.writeCaptureThisStatement(funcDecl); - } - - if (parameters) { - this.emitDefaultValueAssignments(parameters); - this.emitRestParameterInitializer(parameters); - } - - if (block) { - this.emitList(block.statements); - this.emitCommentsArray(ASTHelpers.convertTokenLeadingComments(block.closeBraceToken, this.text()), /*trailing:*/ false); - } - else { - // Copy any comments before the body of the arrow function to the return statement. - // This is necessary for emitting correctness so we don't emit something like this: - // - // return - // // foo - // this.foo(); - // - // Because of ASI, this gets parsed as "return;" which is *not* what we want for - // proper semantics. - //var preComments = bodyExpression.preComments(); - //var postComments = bodyExpression.postComments(); - - //bodyExpression.setPreComments(null); - //bodyExpression.setPostComments(null); - - this.emitIndent(); - this.emitCommentsArray(ASTHelpers.preComments(bodyExpression, this.text()), /*trailing:*/ false); - this.writeToOutput("return "); - this.emit(bodyExpression); - this.writeLineToOutput(";"); - this.emitCommentsArray(ASTHelpers.preComments(bodyExpression, this.text()), /*trailing:*/ true); - - //bodyExpression.setPreComments(preComments); - //bodyExpression.setPostComments(postComments); - } - - this.indenter.decreaseIndent(); - this.emitIndent(); - - if (block) { - this.writeToken(block.closeBraceToken); - } - else { - this.writeToOutputWithSourceMapRecord("}", bodyExpression); - } - - if (name) { - this.recordSourceMappingNameEnd(); - } - } - - private emitDefaultValueAssignments(parameters: ParameterSyntax[]): void { - var n = parameters.length; - if (lastParameterIsRest(parameters)) { - n--; - } - - for (var i = 0; i < n; i++) { - var arg = parameters[i]; - var id = arg.identifier; - var equalsValueClause = arg.equalsValueClause; - if (equalsValueClause) { - this.emitIndent(); - this.recordSourceMappingStart(arg); - this.writeToOutput("if (typeof " + id.text() + " === \"undefined\") { ");// - this.writeToken(id); - this.emitJavascript(equalsValueClause, false); - this.writeLineToOutput("; }"); - this.recordSourceMappingEnd(arg); - } - } - } - - private emitRestParameterInitializer(parameters: ParameterSyntax[]): void { - if (lastParameterIsRest(parameters)) { - var n = parameters.length; - var lastArg = parameters[n - 1]; - var id = lastArg.identifier; - this.emitIndent(); - this.recordSourceMappingStart(lastArg); - this.writeToOutput("var "); - this.writeToken(id); - this.writeLineToOutput(" = [];"); - this.recordSourceMappingEnd(lastArg); - this.emitIndent(); - this.writeToOutput("for ("); - this.writeToOutputWithSourceMapRecord("var _i = 0;", lastArg); - this.writeToOutput(" "); - this.writeToOutputWithSourceMapRecord("_i < (arguments.length - " + (n - 1) + ")", lastArg); - this.writeToOutput("; "); - this.writeToOutputWithSourceMapRecord("_i++", lastArg); - this.writeLineToOutput(") {"); - this.indenter.increaseIndent(); - this.emitIndent(); - - this.writeToOutputWithSourceMapRecord(id.text() + "[_i] = arguments[_i + " + (n - 1) + "];", lastArg); - this.writeLineToOutput(""); - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeLineToOutput("}"); - } - } - - private getImportDecls(fileName: string): PullDecl[] { - var topLevelDecl = this.semanticInfoChain.topLevelDecl(this.document.fileName); - var result: PullDecl[] = []; - - var dynamicModuleDecl = topLevelDecl.getChildDecls()[0]; // Dynamic module declaration has to be present - var queue: PullDecl[] = dynamicModuleDecl.getChildDecls(); - - for (var i = 0, n = queue.length; i < n; i++) { - var decl = queue[i]; - - if (decl.kind & PullElementKind.TypeAlias) { - var importStatementAST = this.semanticInfoChain.getASTForDecl(decl); - if (importStatementAST.moduleReference.kind() === SyntaxKind.ExternalModuleReference) { // external module - var symbol = decl.getSymbol(this.semanticInfoChain); - var typeSymbol = symbol && symbol.type; - if (typeSymbol && typeSymbol !== this.semanticInfoChain.anyTypeSymbol && !typeSymbol.isError()) { - result.push(decl); - } - } - } - } - - return result; - } - - public getModuleImportAndDependencyList(sourceUnit: SourceUnitSyntax) { - var importList = ""; - var dependencyList = ""; - - var importDecls = this.getImportDecls(this.document.fileName); - - // all dependencies are quoted - if (importDecls.length) { - for (var i = 0; i < importDecls.length; i++) { - var importStatementDecl = importDecls[i]; - var importStatementSymbol = importStatementDecl.getSymbol(this.semanticInfoChain); - var importStatementAST = this.semanticInfoChain.getASTForDecl(importStatementDecl); - - if (importStatementSymbol.isUsedAsValue()) { - if (i <= importDecls.length - 1) { - dependencyList += ", "; - importList += ", "; - } - - importList += importStatementDecl.name; - dependencyList += (importStatementAST.moduleReference).stringLiteral.text(); - } - } - } - - // emit any potential amd dependencies - var amdDependencies = this.document.syntaxTree().amdDependencies(); - for (var i = 0; i < amdDependencies.length; i++) { - dependencyList += ", \"" + amdDependencies[i] + "\""; - } - - return { - importList: importList, - dependencyList: dependencyList - }; - } - - public shouldCaptureThis(ast: ISyntaxElement) { - if (ast.kind() === SyntaxKind.SourceUnit) { - var scriptDecl = this.semanticInfoChain.topLevelDecl(this.document.fileName); - return hasFlag(scriptDecl.flags, PullElementFlags.MustCaptureThis); - } - - var decl = this.semanticInfoChain.getDeclForAST(ast); - if (decl) { - return hasFlag(decl.flags, PullElementFlags.MustCaptureThis); - } - - return false; - } - - public emitEnum(moduleDecl: EnumDeclarationSyntax) { - var pullDecl = this.semanticInfoChain.getDeclForAST(moduleDecl); - this.pushDecl(pullDecl); - - var svModuleName = this.moduleName; - this.moduleName = moduleDecl.identifier.text(); - - var temp = this.setContainer(EmitContainer.Module); - var isExported = hasFlag(pullDecl.flags, PullElementFlags.Exported); - - if (!isExported) { - this.recordSourceMappingStart(moduleDecl); - this.writeToOutput("var "); - this.writeToOutputWithSourceMapRecord(this.moduleName, moduleDecl.identifier); - this.writeLineToOutput(";"); - this.recordSourceMappingEnd(moduleDecl); - this.emitIndent(); - } - - this.writeToOutput("("); - this.recordSourceMappingStart(moduleDecl); - this.writeToOutput("function ("); - this.writeToOutputWithSourceMapRecord(this.moduleName, moduleDecl.identifier); - this.writeLineToOutput(") {"); - - this.recordSourceMappingNameStart(this.moduleName); - - this.indenter.increaseIndent(); - - if (this.shouldCaptureThis(moduleDecl)) { - this.writeCaptureThisStatement(moduleDecl); - } - - this.emitSeparatedList(moduleDecl.enumElements); - this.indenter.decreaseIndent(); - this.emitIndent(); - - var parentIsDynamic = temp === EmitContainer.DynamicModule; - if (temp === EmitContainer.Prog && isExported) { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.writeToOutput(")(this." + this.moduleName + " || (this." + this.moduleName + " = {}));"); - } - else if (isExported || temp === EmitContainer.Prog) { - var dotMod = svModuleName !== "" ? (parentIsDynamic ? "exports" : svModuleName) + "." : svModuleName; - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.writeToOutput(")(" + dotMod + this.moduleName + " || (" + dotMod + this.moduleName + " = {}));"); - } - else if (!isExported && temp !== EmitContainer.Prog) { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.writeToOutput(")(" + this.moduleName + " || (" + this.moduleName + " = {}));"); - } - else { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.writeToOutput(")();"); - } - - this.recordSourceMappingEnd(moduleDecl); - if (temp !== EmitContainer.Prog && isExported) { - this.recordSourceMappingStart(moduleDecl); - if (parentIsDynamic) { - this.writeLineToOutput(""); - this.emitIndent(); - this.writeToOutput("var " + this.moduleName + " = exports." + this.moduleName + ";"); - } - else { - this.writeLineToOutput(""); - this.emitIndent(); - this.writeToOutput("var " + this.moduleName + " = " + svModuleName + "." + this.moduleName + ";"); - } - this.recordSourceMappingEnd(moduleDecl); - } - - this.setContainer(temp); - this.moduleName = svModuleName; - - this.popDecl(pullDecl); - } - - private getModuleDeclToVerifyChildNameCollision(moduleDecl: PullDecl, changeNameIfAnyDeclarationInContext: boolean) { - if (ArrayUtilities.contains(this.declStack, moduleDecl)) { - // Given decl is in the scope, we would need to check for child name collision - return moduleDecl; - } - else if (changeNameIfAnyDeclarationInContext) { - // Check if any other declaration of the given symbol is in scope - // (eg. when emitting expression of type defined from different declaration in reopened module) - var symbol = moduleDecl.getSymbol(this.semanticInfoChain); - if (symbol) { - var otherDecls = symbol.getDeclarations(); - for (var i = 0; i < otherDecls.length; i++) { - // If the other decl is in the scope, use this decl to determine which name to display - if (ArrayUtilities.contains(this.declStack, otherDecls[i])) { - return otherDecls[i]; - } - } - } - } - - return null; - } - - private hasChildNameCollision(moduleName: string, parentDecl: PullDecl) { - var childDecls = parentDecl.getChildDecls(); - return ArrayUtilities.any(childDecls, (childDecl: PullDecl) => { - var childAST = this.semanticInfoChain.getASTForDecl(childDecl); - // Enum member it can never conflict with module name as it is property of the enum - // Only if this child would be emitted we need to look further in - if (childDecl.kind != PullElementKind.EnumMember && this.shouldEmit(childAST)) { - // same name child - if (childDecl.name === moduleName) { - // collision if the parent was not class - if (parentDecl.kind != PullElementKind.Class) { - return true; - } - - // If the parent was class, we would find name collision if this was not a property/method/accessor - if (!(childDecl.kind == PullElementKind.Method || - childDecl.kind == PullElementKind.Property || - childDecl.kind == PullElementKind.SetAccessor || - childDecl.kind == PullElementKind.GetAccessor)) { - return true; - } - } - - // Check if the name collision exists in any of the children - if (this.hasChildNameCollision(moduleName, childDecl)) { - return true; - } - } - return false; - }); - } - - // Get the moduleName to write in js file - // If changeNameIfAnyDeclarationInContext is true, verify if any of the declarations for the symbol would need rename. - private getModuleName(moduleDecl: PullDecl, changeNameIfAnyDeclarationInContext?: boolean) { - var moduleName = moduleDecl.name; - var moduleDisplayName = moduleDecl.getDisplayName(); - - // If the decl is in stack it may need name change in the js file - moduleDecl = this.getModuleDeclToVerifyChildNameCollision(moduleDecl, changeNameIfAnyDeclarationInContext); - if (moduleDecl && moduleDecl.kind != PullElementKind.Enum) { - // If there is any child that would be emitted with same name as module, js files would need to use rename for the module - while (this.hasChildNameCollision(moduleName, moduleDecl)) { - // there was name collision with member which could result in faulty codegen, try rename with prepend of '_' - moduleName = "_" + moduleName; - moduleDisplayName = "_" + moduleDisplayName; - } - } - - return moduleDisplayName; - } - - private emitModuleDeclarationWorker(moduleDecl: ModuleDeclarationSyntax) { - if (moduleDecl.stringLiteral) { - this.emitSingleModuleDeclaration(moduleDecl, moduleDecl.stringLiteral); - } - else { - var moduleNames = ASTHelpers.getModuleNames(moduleDecl.name); - this.emitSingleModuleDeclaration(moduleDecl, moduleNames[0]); - } - } - - private writeToken(token: ISyntaxToken) { - if (token) { - this.writeToOutputWithSourceMapRecord(token.text(), token); - } - } - - public emitSingleModuleDeclaration(moduleDecl: ModuleDeclarationSyntax, moduleName: ISyntaxToken) { - var isLastName = ASTHelpers.isLastNameOfModule(moduleDecl, moduleName); - - if (isLastName) { - // Doc Comments on the ast belong to the innermost module being emitted. - this.emitComments(moduleDecl, true); - } - - var pullDecl = this.semanticInfoChain.getDeclForAST(moduleName); - this.pushDecl(pullDecl); - - var svModuleName = this.moduleName; - - if (moduleDecl.stringLiteral) { - this.moduleName = tokenValueText(moduleDecl.stringLiteral); - if (isTSFile(this.moduleName)) { - this.moduleName = this.moduleName.substring(0, this.moduleName.length - ".ts".length); - } - } - else { - this.moduleName = moduleName.text(); - } - - var temp = this.setContainer(EmitContainer.Module); - var isExported = hasFlag(pullDecl.flags, PullElementFlags.Exported); - - // prologue - - if (!isExported) { - this.recordSourceMappingStart(moduleDecl); - this.writeToOutput("var "); - this.writeToOutputWithSourceMapRecord(this.moduleName, moduleName); - this.writeLineToOutput(";"); - this.recordSourceMappingEnd(moduleDecl); - this.emitIndent(); - } - - this.writeToOutput("("); - this.recordSourceMappingStart(moduleDecl); - this.writeToOutput("function ("); - // Use the name that doesnt conflict with its members, - // this.moduleName needs to be updated to make sure that export member declaration is emitted correctly - this.moduleName = this.getModuleName(pullDecl); - this.writeToOutputWithSourceMapRecord(this.moduleName, moduleName); - this.writeLineToOutput(") {"); - - this.recordSourceMappingNameStart(moduleName.text()); - - this.indenter.increaseIndent(); - - if (this.shouldCaptureThis(moduleDecl)) { - this.writeCaptureThisStatement(moduleDecl); - } - - if (moduleName === moduleDecl.stringLiteral) { - this.emitList(moduleDecl.moduleElements); - } - else { - var moduleNames = ASTHelpers.getModuleNames(moduleDecl.name); - var nameIndex = moduleNames.indexOf(moduleName); - - Debug.assert(nameIndex >= 0); - - if (isLastName) { - // If we're on the innermost module, we can emit the module elements. - this.emitList(moduleDecl.moduleElements); - } - else { - // otherwise, just recurse and emit the next module in the A.B.C module name. - this.emitIndent(); - this.emitSingleModuleDeclaration(moduleDecl, moduleNames[nameIndex + 1]); - this.writeLineToOutput(""); - } - } - - this.moduleName = moduleName.text(); - this.indenter.decreaseIndent(); - this.emitIndent(); - - // epilogue - var parentIsDynamic = temp === EmitContainer.DynamicModule; - this.recordSourceMappingStart(moduleDecl.closeBraceToken); - if (temp === EmitContainer.Prog && isExported) { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(moduleDecl.closeBraceToken); - this.writeToOutput(")(this." + this.moduleName + " || (this." + this.moduleName + " = {}));"); - } - else if (isExported || temp === EmitContainer.Prog) { - var dotMod = svModuleName !== "" ? (parentIsDynamic ? "exports" : svModuleName) + "." : svModuleName; - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(moduleDecl.closeBraceToken); - this.writeToOutput(")(" + dotMod + this.moduleName + " || (" + dotMod + this.moduleName + " = {}));"); - } - else if (!isExported && temp !== EmitContainer.Prog) { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(moduleDecl.closeBraceToken); - this.writeToOutput(")(" + this.moduleName + " || (" + this.moduleName + " = {}));"); - } - else { - this.writeToOutput("}"); - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(moduleDecl.closeBraceToken); - this.writeToOutput(")();"); - } - - this.recordSourceMappingEnd(moduleDecl); - if (temp !== EmitContainer.Prog && isExported) { - this.recordSourceMappingStart(moduleDecl); - if (parentIsDynamic) { - this.writeLineToOutput(""); - this.emitIndent(); - this.writeToOutput("var " + this.moduleName + " = exports." + this.moduleName + ";"); - } - else { - this.writeLineToOutput(""); - this.emitIndent(); - this.writeToOutput("var " + this.moduleName + " = " + svModuleName + "." + this.moduleName + ";"); - } - this.recordSourceMappingEnd(moduleDecl); - } - - this.setContainer(temp); - this.moduleName = svModuleName; - - this.popDecl(pullDecl); - - if (isLastName) { - // Comments on the module ast belong to the innermost module being emitted. - this.emitComments(moduleDecl, false); - } - } - - public emitEnumElement(varDecl: EnumElementSyntax): void { - // [[""] = ] = ""; - var pullDecl = this.semanticInfoChain.getDeclForAST(varDecl); - Debug.assert(pullDecl && pullDecl.kind === PullElementKind.EnumMember); - - this.emitComments(varDecl, true); - this.recordSourceMappingStart(varDecl); - - var representation = (varDecl.propertyName.kind() === SyntaxKind.StringLiteral) - ? varDecl.propertyName.text() - : ('"' + tokenValueText(varDecl.propertyName) + '"'); - - this.writeToOutput(this.moduleName); - this.writeToOutput('['); - this.writeToOutput(this.moduleName); - this.writeToOutput('['); - this.writeToOutput(representation); - this.writeToOutput(']'); - - if (varDecl.equalsValueClause) { - this.emit(varDecl.equalsValueClause); - } - else if (pullDecl.constantValue !== null) { - this.writeToOutput(' = '); - this.writeToOutput(pullDecl.constantValue.toString()); - } - else { - this.writeToOutput(' = null'); - } - - this.writeToOutput('] = '); - this.writeToOutput(representation); - this.recordSourceMappingEnd(varDecl); - this.emitComments(varDecl, false); - this.writeToOutput(';'); - } - - public emitElementAccessExpression(expression: ElementAccessExpressionSyntax) { - this.recordSourceMappingStart(expression); - this.emit(expression.expression); - this.writeToken(expression.openBracketToken); - this.emit(expression.argumentExpression); - this.writeToken(expression.closeBracketToken); - this.recordSourceMappingEnd(expression); - } - - public emitSimpleArrowFunctionExpression(arrowFunction: SimpleArrowFunctionExpressionSyntax): void { - this.emitAnyArrowFunctionExpression(arrowFunction, arrowFunction.block, arrowFunction.expression); - } - - public emitParenthesizedArrowFunctionExpression(arrowFunction: ParenthesizedArrowFunctionExpressionSyntax): void { - this.emitAnyArrowFunctionExpression(arrowFunction, arrowFunction.block, arrowFunction.expression); - } - - private emitAnyArrowFunctionExpression(arrowFunction: ISyntaxElement, block: BlockSyntax, expression: ISyntaxElement): void { - var savedInArrowFunction = this.inArrowFunction; - this.inArrowFunction = true; - - var temp = this.setContainer(EmitContainer.Function); - - this.recordSourceMappingStart(arrowFunction); - - // Start - var pullDecl = this.semanticInfoChain.getDeclForAST(arrowFunction); - this.pushDecl(pullDecl); - - this.emitComments(arrowFunction, true); - - this.recordSourceMappingStart(arrowFunction); - this.writeToOutput("function "); - - var parameters: ParameterSyntax[] = null; - if (arrowFunction.kind() === SyntaxKind.ParenthesizedArrowFunctionExpression) { - var parenthesizedArrowFunction = arrowFunction; - - parameters = parenthesizedArrowFunction.callSignature.parameterList.parameters; - this.emitParameterList(parenthesizedArrowFunction.callSignature.parameterList); - } - else { - var parameter = (arrowFunction).parameter; - parameters = [parameter]; - this.writeToOutput("("); - this.emitFunctionParameters(parameter, parameters); - this.writeToOutput(")"); - } - - this.emitFunctionBodyStatements(/*funcName:*/ null, arrowFunction, parameters, block, expression); - - this.recordSourceMappingEnd(arrowFunction); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(arrowFunction); - - this.emitComments(arrowFunction, false); - - this.popDecl(pullDecl); - this.setContainer(temp); - this.inArrowFunction = savedInArrowFunction; - } - - public emitConstructor(funcDecl: ConstructorDeclarationSyntax) { - if (!funcDecl.block) { - return; - } - var temp = this.setContainer(EmitContainer.Constructor); - - this.recordSourceMappingStart(funcDecl); - - var pullDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - this.pushDecl(pullDecl); - - this.emitComments(funcDecl, true); - - this.recordSourceMappingStart(funcDecl); - this.writeToOutput("function "); - this.writeToOutput(this.thisClassNode.identifier.text()); - - this.emitParameterList(funcDecl.callSignature.parameterList); - this.writeLineToOutput(" {"); - - this.recordSourceMappingNameStart("constructor"); - this.indenter.increaseIndent(); - - var parameters = funcDecl.callSignature.parameterList.parameters; - this.emitDefaultValueAssignments(parameters); - this.emitRestParameterInitializer(parameters); - - if (this.shouldCaptureThis(funcDecl)) { - this.writeCaptureThisStatement(funcDecl); - } - - this.emitConstructorStatements(funcDecl); - this.emitCommentsArray(ASTHelpers.convertTokenLeadingComments(funcDecl.block.closeBraceToken, this.text()), /*trailing:*/ false); - - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeToken(funcDecl.block.closeBraceToken); - - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(funcDecl); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(funcDecl); - - this.emitComments(funcDecl, false); - - this.popDecl(pullDecl); - this.setContainer(temp); - } - - public emitGetAccessor(accessor: GetAccessorSyntax): void { - this.recordSourceMappingStart(accessor); - this.writeToOutput("get "); - - var temp = this.setContainer(EmitContainer.Function); - - this.recordSourceMappingStart(accessor); - - var pullDecl = this.semanticInfoChain.getDeclForAST(accessor); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(accessor); - - var accessorSymbol = PullHelpers.getAccessorSymbol(accessor, this.semanticInfoChain); - var container = accessorSymbol.getContainer(); - var containerKind = container.kind; - - this.recordSourceMappingNameStart(accessor.propertyName.text()); - this.writeToOutput(accessor.propertyName.text()); - this.emitParameterList(accessor.callSignature.parameterList); - - this.emitFunctionBodyStatements(null, accessor, accessor.callSignature.parameterList.parameters, accessor.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(accessor); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(accessor); - - this.popDecl(pullDecl); - this.setContainer(temp); - this.recordSourceMappingEnd(accessor); - } - - public emitSetAccessor(accessor: SetAccessorSyntax): void { - this.recordSourceMappingStart(accessor); - this.writeToOutput("set "); - - var temp = this.setContainer(EmitContainer.Function); - - this.recordSourceMappingStart(accessor); - - var pullDecl = this.semanticInfoChain.getDeclForAST(accessor); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(accessor); - - var accessorSymbol = PullHelpers.getAccessorSymbol(accessor, this.semanticInfoChain); - var container = accessorSymbol.getContainer(); - var containerKind = container.kind; - - this.recordSourceMappingNameStart(accessor.propertyName.text()); - this.writeToOutput(accessor.propertyName.text()); - - this.emitParameterList(accessor.callSignature.parameterList); - - this.emitFunctionBodyStatements(null, accessor, accessor.callSignature.parameterList.parameters, accessor.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(accessor); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(accessor); - - this.popDecl(pullDecl); - this.setContainer(temp); - this.recordSourceMappingEnd(accessor); - } - - public emitFunctionExpression(funcDecl: FunctionExpressionSyntax): void { - var savedInArrowFunction = this.inArrowFunction; - this.inArrowFunction = false; - - var temp = this.setContainer(EmitContainer.Function); - - var funcName = funcDecl.identifier ? funcDecl.identifier.text() : null;//.getNameText(); - - this.recordSourceMappingStart(funcDecl); - - var pullDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(funcDecl); - this.writeToken(funcDecl.functionKeyword); - this.writeToOutput(" "); - - //var id = funcDecl.getNameText(); - if (funcDecl.identifier) { - this.writeToOutputWithSourceMapRecord(funcDecl.identifier.text(), funcDecl.identifier); - } - - this.emitParameterList(funcDecl.callSignature.parameterList); - this.emitFunctionBodyStatements(funcName, funcDecl, funcDecl.callSignature.parameterList.parameters, funcDecl.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(funcDecl); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(funcDecl); - - this.emitComments(funcDecl, false); - - this.popDecl(pullDecl); - - this.setContainer(temp); - this.inArrowFunction = savedInArrowFunction; - } - - public emitFunction(funcDecl: FunctionDeclarationSyntax) { - if (funcDecl.block === null) { - return; - } - var savedInArrowFunction = this.inArrowFunction; - this.inArrowFunction = false; - - var temp = this.setContainer(EmitContainer.Function); - - var funcName = funcDecl.identifier.text(); - - this.recordSourceMappingStart(funcDecl); - - var printName = funcDecl.identifier !== null - var pullDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - this.pushDecl(pullDecl); - - this.emitComments(funcDecl, true); - - this.recordSourceMappingStart(funcDecl); - this.writeToken(funcDecl.functionKeyword); - this.writeToOutput(" "); - - if (printName) { - var id = funcDecl.identifier.text(); - if (id) { - if (funcDecl.identifier) { - this.recordSourceMappingStart(funcDecl.identifier); - } - this.writeToOutput(id); - if (funcDecl.identifier) { - this.recordSourceMappingEnd(funcDecl.identifier); - } - } - } - - this.emitParameterList(funcDecl.callSignature.parameterList); - - var parameters = funcDecl.callSignature.parameterList.parameters; - this.emitFunctionBodyStatements(funcDecl.identifier.text(), funcDecl, parameters, funcDecl.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(funcDecl); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(funcDecl); - - this.emitComments(funcDecl, false); - - this.popDecl(pullDecl); - - this.setContainer(temp); - this.inArrowFunction = savedInArrowFunction; - - if (funcDecl.block) { - var pullFunctionDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - if ((this.emitState.container === EmitContainer.Module || this.emitState.container === EmitContainer.DynamicModule) && pullFunctionDecl && hasFlag(pullFunctionDecl.flags, PullElementFlags.Exported)) { - this.writeLineToOutput(""); - this.emitIndent(); - var modName = this.emitState.container === EmitContainer.Module ? this.moduleName : "exports"; - this.recordSourceMappingStart(funcDecl); - this.writeToOutput(modName + "." + funcName + " = " + funcName + ";"); - this.recordSourceMappingEnd(funcDecl); - } - } - } - - public emitAmbientVarDecl(varDecl: VariableDeclaratorSyntax) { - this.recordSourceMappingStart(this.currentVariableDeclaration); - if (varDecl.equalsValueClause) { - this.emitComments(varDecl, true); - this.recordSourceMappingStart(varDecl); - this.writeToOutputWithSourceMapRecord(varDecl.propertyName.text(), varDecl.propertyName); - this.emitJavascript(varDecl.equalsValueClause, false); - this.recordSourceMappingEnd(varDecl); - this.emitComments(varDecl, false); - } - } - - // Emits "var " if it is allowed - public emitVarDeclVar() { - if (this.currentVariableDeclaration) { - this.writeToOutput("var "); - } - } - - public emitVariableDeclaration(declaration: VariableDeclarationSyntax) { - var varDecl = declaration.variableDeclarators[0]; - - var symbol = this.semanticInfoChain.getSymbolForAST(varDecl); - - var parentSymbol = symbol ? symbol.getContainer() : null; - var parentKind = parentSymbol ? parentSymbol.kind : PullElementKind.None; - - this.emitComments(declaration, true); - - var pullVarDecl = this.semanticInfoChain.getDeclForAST(varDecl); - var isAmbientWithoutInit = pullVarDecl && hasFlag(pullVarDecl.flags, PullElementFlags.Ambient) && varDecl.equalsValueClause === null; - if (!isAmbientWithoutInit) { - var prevVariableDeclaration = this.currentVariableDeclaration; - this.currentVariableDeclaration = declaration; - - for (var i = 0, n = declaration.variableDeclarators.length; i < n; i++) { - var declarator = declaration.variableDeclarators[i]; - - if (i > 0) { - this.writeToOutput(", "); - } - - this.emit(declarator); - } - this.currentVariableDeclaration = prevVariableDeclaration; - - // Declarator emit would take care of emitting start of the variable declaration start - this.recordSourceMappingEnd(declaration); - } - - this.emitComments(declaration, false); - } - - private emitMemberVariableDeclaration(varDecl: MemberVariableDeclarationSyntax) { - Debug.assert(!hasModifier(varDecl.modifiers, PullElementFlags.Static) && varDecl.variableDeclarator.equalsValueClause); - - var pullDecl = this.semanticInfoChain.getDeclForAST(varDecl); - this.pushDecl(pullDecl); - - this.emitComments(varDecl, true); - this.recordSourceMappingStart(varDecl); - - var varDeclName = varDecl.variableDeclarator.propertyName.text(); - var quotedOrNumber = isQuoted(varDeclName) || varDecl.variableDeclarator.propertyName.kind() !== SyntaxKind.IdentifierName; - - var symbol = this.semanticInfoChain.getSymbolForAST(varDecl); - var parentSymbol = symbol ? symbol.getContainer() : null; - var parentDecl = pullDecl && pullDecl.getParentDecl(); - - if (quotedOrNumber) { - this.writeToOutput("this["); - } - else { - this.writeToOutput("this."); - } - - this.writeToOutputWithSourceMapRecord(varDecl.variableDeclarator.propertyName.text(), varDecl.variableDeclarator.propertyName); - - if (quotedOrNumber) { - this.writeToOutput("]"); - } - - if (varDecl.variableDeclarator.equalsValueClause) { - // Ensure we have a fresh var list count when recursing into the variable - // initializer. We don't want our current list of variables to affect how we - // emit nested variable lists. - var prevVariableDeclaration = this.currentVariableDeclaration; - this.emit(varDecl.variableDeclarator.equalsValueClause); - this.currentVariableDeclaration = prevVariableDeclaration; - } - - // class - if (this.emitState.container !== EmitContainer.Args) { - this.writeToOutput(";"); - } - - this.recordSourceMappingEnd(varDecl); - this.emitComments(varDecl, false); - - this.popDecl(pullDecl); - } - - public emitVariableDeclarator(varDecl: VariableDeclaratorSyntax) { - var pullDecl = this.semanticInfoChain.getDeclForAST(varDecl); - this.pushDecl(pullDecl); - if (pullDecl && (pullDecl.flags & PullElementFlags.Ambient) === PullElementFlags.Ambient) { - this.emitAmbientVarDecl(varDecl); - } - else { - this.emitComments(varDecl, true); - this.recordSourceMappingStart(this.currentVariableDeclaration); - this.recordSourceMappingStart(varDecl); - - var varDeclName = varDecl.propertyName.text(); - - var symbol = this.semanticInfoChain.getSymbolForAST(varDecl); - var parentSymbol = symbol ? symbol.getContainer() : null; - var parentDecl = pullDecl && pullDecl.getParentDecl(); - var parentIsModule = parentDecl && (parentDecl.flags & PullElementFlags.SomeInitializedModule); - - if (parentIsModule) { - // module - if (!hasFlag(pullDecl.flags, PullElementFlags.Exported)/* && !varDecl.isProperty() */) { - this.emitVarDeclVar(); - } - else { - if (this.emitState.container === EmitContainer.DynamicModule) { - this.writeToOutput("exports."); - } - else { - this.writeToOutput(this.moduleName + "."); - } - } - } - else { - this.emitVarDeclVar(); - } - - this.writeToOutputWithSourceMapRecord(varDecl.propertyName.text(), varDecl.propertyName); - - if (varDecl.equalsValueClause) { - // Ensure we have a fresh var list count when recursing into the variable - // initializer. We don't want our current list of variables to affect how we - // emit nested variable lists. - var prevVariableDeclaration = this.currentVariableDeclaration; - this.emit(varDecl.equalsValueClause); - this.currentVariableDeclaration = prevVariableDeclaration; - } - - this.recordSourceMappingEnd(varDecl); - this.emitComments(varDecl, false); - } - this.currentVariableDeclaration = undefined; - this.popDecl(pullDecl); - } - - private symbolIsUsedInItsEnclosingContainer(symbol: PullSymbol, dynamic = false) { - var symDecls = symbol.getDeclarations(); - - if (symDecls.length) { - var enclosingDecl = this.getEnclosingDecl(); - if (enclosingDecl) { - var parentDecl = symDecls[0].getParentDecl(); - if (parentDecl) { - var symbolDeclarationEnclosingContainer = parentDecl; - var enclosingContainer = enclosingDecl; - - // compute the closing container of the symbol's declaration - while (symbolDeclarationEnclosingContainer) { - if (symbolDeclarationEnclosingContainer.kind === (dynamic ? PullElementKind.DynamicModule : PullElementKind.Container)) { - break; - } - symbolDeclarationEnclosingContainer = symbolDeclarationEnclosingContainer.getParentDecl(); - } - - // if the symbol in question is not a global, compute the nearest - // enclosing declaration from the point of usage - if (symbolDeclarationEnclosingContainer) { - while (enclosingContainer) { - if (enclosingContainer.kind === (dynamic ? PullElementKind.DynamicModule : PullElementKind.Container)) { - break; - } - - enclosingContainer = enclosingContainer.getParentDecl(); - } - } - - if (symbolDeclarationEnclosingContainer && enclosingContainer) { - var same = symbolDeclarationEnclosingContainer === enclosingContainer; - - // initialized module object variables are bound to their parent's decls - if (!same && symbol.anyDeclHasFlag(PullElementFlags.InitializedModule)) { - same = symbolDeclarationEnclosingContainer === enclosingContainer.getParentDecl(); - } - - return same; - } - } - } - } - - return false; - } - - // In some cases, when emitting a name, the emitter needs to qualify a symbol - // name by first emitting its parent's name. This generally happens when the - // name referenced is in scope in TypeScript, but not in Javascript. This is true - // in any of the following 3 cases: - // - It is an enum member, even if accessed from within the enum declaration in which it is defined - // - It is an exported var, even if accessed from within the module declaration in which it is defined - // - It is an exported member of the current module, but is never defined in this particular module - // declaration (i.e. it is only defined in other components of the same merged module) - private shouldQualifySymbolNameWithParentName(symbol: PullSymbol): boolean { - var enclosingContextDeclPath = this.declStack; - var symbolDeclarations = symbol.getDeclarations(); - for (var i = 0; i < symbolDeclarations.length; i++) { - var currentDecl = symbolDeclarations[i]; - var declParent = currentDecl.getParentDecl(); - - if (currentDecl.kind === PullElementKind.EnumMember) { - return true; - } - - // All decls of the same symbol must agree on whether they are exported - // If one decl is not exported, none of them are, and it is safe to - // assume it is just a local - if (!hasFlag(currentDecl.flags, PullElementFlags.Exported)) { - return false; - } - - // Section 10.6: - // When a variable is exported, all references to the variable in the body of the - // module are replaced with - // .< VariableName> - if (currentDecl.kind === PullElementKind.Variable && !hasFlag(currentDecl.flags, PullElementFlags.ImplicitVariable)) { - return true; - } - - if (ArrayUtilities.contains(this.declStack, declParent)) { - return false; - } - } - - return true; - } - - // Get the symbol information to be used for emitting the ast - private getSymbolForEmit(ast: ISyntaxElement) { - var pullSymbol = this.semanticInfoChain.getSymbolForAST(ast); - var pullSymbolAlias = this.semanticInfoChain.getAliasSymbolForAST(ast); - if (pullSymbol && pullSymbolAlias) { - var symbolToCompare = isTypesOnlyLocation(ast) ? - pullSymbolAlias.getExportAssignedTypeSymbol() : - pullSymbolAlias.getExportAssignedValueSymbol(); - - if (pullSymbol === symbolToCompare) { - pullSymbol = pullSymbolAlias; - pullSymbolAlias = null; - } - } - return { symbol: pullSymbol, aliasSymbol: pullSymbolAlias }; - } - - public emitName(name: ISyntaxToken, addThis: boolean) { - this.emitComments(name, true); - this.recordSourceMappingStart(name); - if (name.text().length > 0) { - var symbolForEmit = this.getSymbolForEmit(name); - var pullSymbol = symbolForEmit.symbol; - if (!pullSymbol) { - pullSymbol = this.semanticInfoChain.anyTypeSymbol; - } - var pullSymbolAlias = symbolForEmit.aliasSymbol; - var pullSymbolKind = pullSymbol.kind; - var isLocalAlias = pullSymbolAlias && (pullSymbolAlias.getDeclarations()[0].getParentDecl() === this.getEnclosingDecl()); - if (addThis && (this.emitState.container !== EmitContainer.Args) && pullSymbol) { - var pullSymbolContainer = pullSymbol.getContainer(); - - if (pullSymbolContainer) { - var pullSymbolContainerKind = pullSymbolContainer.kind; - - if (PullHelpers.symbolIsModule(pullSymbolContainer) || pullSymbolContainerKind === PullElementKind.Enum || - pullSymbolContainer.anyDeclHasFlag(PullElementFlags.InitializedModule | PullElementFlags.Enum)) { - var needToEmitParentName = this.shouldQualifySymbolNameWithParentName(pullSymbol); - if (needToEmitParentName) { - var parentDecl = pullSymbol.getDeclarations()[0].getParentDecl(); - Debug.assert(parentDecl && !parentDecl.isRootDecl()); - this.writeToOutput(this.getModuleName(parentDecl, /* changeNameIfAnyDeclarationInContext */ true) + "."); - } - } - else if (pullSymbolContainerKind === PullElementKind.DynamicModule || - pullSymbolContainer.anyDeclHasFlag(PullElementFlags.InitializedDynamicModule)) { - if (pullSymbolKind === PullElementKind.Property) { - // If dynamic module - this.writeToOutput("exports."); - } - else if (pullSymbol.anyDeclHasFlag(PullElementFlags.Exported) && - !isLocalAlias && - !pullSymbol.anyDeclHasFlag(PullElementFlags.ImplicitVariable) && - pullSymbol.kind !== PullElementKind.ConstructorMethod && - pullSymbol.kind !== PullElementKind.Class && - pullSymbol.kind !== PullElementKind.Enum) { - this.writeToOutput("exports."); - } - } - } - } - - this.writeToOutput(name.text()); - } - - this.recordSourceMappingEnd(name); - this.emitComments(name, false); - } - - public recordSourceMappingNameStart(name: string) { - if (this.sourceMapper) { - var nameIndex = -1; - if (name) { - if (this.sourceMapper.currentNameIndex.length > 0) { - var parentNameIndex = this.sourceMapper.currentNameIndex[this.sourceMapper.currentNameIndex.length - 1]; - if (parentNameIndex !== -1) { - name = this.sourceMapper.names[parentNameIndex] + "." + name; - } - } - - // Look if there already exists name - var nameIndex = this.sourceMapper.names.length - 1; - for (nameIndex; nameIndex >= 0; nameIndex--) { - if (this.sourceMapper.names[nameIndex] === name) { - break; - } - } - - if (nameIndex === -1) { - nameIndex = this.sourceMapper.names.length; - this.sourceMapper.names.push(name); - } - } - this.sourceMapper.currentNameIndex.push(nameIndex); - } - } - - public recordSourceMappingNameEnd() { - if (this.sourceMapper) { - this.sourceMapper.currentNameIndex.pop(); - } - } - - private recordSourceMappingStart(ast: ISyntaxElement) { - if (this.sourceMapper && ASTHelpers.isValidAstNode(ast)) { - var text = this.text(); - this.recordSourceMappingSpanStart(ast, start(ast, text), end(ast, text)); - } - } - - private recordSourceMappingCommentStart(comment: Comment) { - this.recordSourceMappingSpanStart(comment, comment.start(), comment.end()); - } - - private recordSourceMappingSpanStart(ast: any, start: number, end: number) { - if (this.sourceMapper && ast && start !== -1 && end !== -1) { - var lineCol = { line: -1, character: -1 }; - var sourceMapping = new SourceMapping(); - sourceMapping.start.emittedColumn = this.emitState.column; - sourceMapping.start.emittedLine = this.emitState.line; - // REVIEW: check time consumed by this binary search (about two per leaf statement) - var lineMap = this.document.lineMap(); - lineMap.fillLineAndCharacterFromPosition(start, lineCol); - sourceMapping.start.sourceColumn = lineCol.character; - sourceMapping.start.sourceLine = lineCol.line + 1; - lineMap.fillLineAndCharacterFromPosition(end, lineCol); - sourceMapping.end.sourceColumn = lineCol.character; - sourceMapping.end.sourceLine = lineCol.line + 1; - - Debug.assert(!isNaN(sourceMapping.start.emittedColumn)); - Debug.assert(!isNaN(sourceMapping.start.emittedLine)); - Debug.assert(!isNaN(sourceMapping.start.sourceColumn)); - Debug.assert(!isNaN(sourceMapping.start.sourceLine)); - Debug.assert(!isNaN(sourceMapping.end.sourceColumn)); - Debug.assert(!isNaN(sourceMapping.end.sourceLine)); - - if (this.sourceMapper.currentNameIndex.length > 0) { - sourceMapping.nameIndex = this.sourceMapper.currentNameIndex[this.sourceMapper.currentNameIndex.length - 1]; - } - // Set parent and child relationship - var siblings = this.sourceMapper.currentMappings[this.sourceMapper.currentMappings.length - 1]; - siblings.push(sourceMapping); - this.sourceMapper.currentMappings.push(sourceMapping.childMappings); - this.sourceMapper.increaseMappingLevel(ast); - } - } - - private recordSourceMappingEnd(ast: ISyntaxElement) { - if (this.sourceMapper && ASTHelpers.isValidAstNode(ast)) { - var text = this.text(); - this.recordSourceMappingSpanEnd(ast, start(ast, text), end(ast, text)); - } - } - - private recordSourceMappingCommentEnd(ast: Comment) { - if (this.sourceMapper && ASTHelpers.isValidSpan(ast)) { - this.recordSourceMappingSpanEnd(ast, ast.start(), ast.end()); - } - } - - private recordSourceMappingSpanEnd(ast: any, start: number, end: number) { - if (this.sourceMapper && ast && start !== -1 && end !== -1) { - // Pop source mapping childs - this.sourceMapper.currentMappings.pop(); - - // Get the last source mapping from sibling list = which is the one we are recording end for - var siblings = this.sourceMapper.currentMappings[this.sourceMapper.currentMappings.length - 1]; - var sourceMapping = siblings[siblings.length - 1]; - - sourceMapping.end.emittedColumn = this.emitState.column; - sourceMapping.end.emittedLine = this.emitState.line; - - Debug.assert(!isNaN(sourceMapping.end.emittedColumn)); - Debug.assert(!isNaN(sourceMapping.end.emittedLine)); - - this.sourceMapper.decreaseMappingLevel(ast); - } - } - - // Note: may throw exception. - public getOutputFiles(): OutputFile[] { - // Output a source mapping. As long as we haven't gotten any errors yet. - var result: OutputFile[] = []; - if (this.sourceMapper !== null) { - this.sourceMapper.emitSourceMapping(); - result.push(this.sourceMapper.getOutputFile()); - } - - result.push(this.outfile.getOutputFile()); - return result; - } - - private emitParameterPropertyAndMemberVariableAssignments(): void { - // emit any parameter properties first - var constructorDecl = getLastConstructor(this.thisClassNode); - - if (constructorDecl) { - for (var i = 0, n = constructorDecl.callSignature.parameterList.parameters.length; i < n; i++) { - var parameter = constructorDecl.callSignature.parameterList.parameters[i]; - - var parameterDecl = this.semanticInfoChain.getDeclForAST(parameter); - if (hasFlag(parameterDecl.flags, PullElementFlags.PropertyParameter)) { - this.emitIndent(); - this.recordSourceMappingStart(parameter); - this.writeToOutputWithSourceMapRecord("this." + parameter.identifier.text(), parameter.identifier); - this.writeToOutput(" = "); - this.writeToOutputWithSourceMapRecord(parameter.identifier.text(), parameter.identifier); - this.writeLineToOutput(";"); - this.recordSourceMappingEnd(parameter); - } - } - } - - for (var i = 0, n = this.thisClassNode.classElements.length; i < n; i++) { - if (this.thisClassNode.classElements[i].kind() === SyntaxKind.MemberVariableDeclaration) { - var varDecl = this.thisClassNode.classElements[i]; - if (!hasModifier(varDecl.modifiers, PullElementFlags.Static) && varDecl.variableDeclarator.equalsValueClause) { - this.emitIndent(); - this.emitMemberVariableDeclaration(varDecl); - this.writeLineToOutput(""); - } - } - } - } - - private isOnSameLine(pos1: number, pos2: number): boolean { - if (pos1 < 0 || pos2 < 0) { - // Missing element. Assume it's on the same line as the other element. - return true; - } - - var lineMap = this.document.lineMap(); - return lineMap.getLineNumberFromPosition(pos1) === lineMap.getLineNumberFromPosition(pos2); - } - - private emitCommaSeparatedList(parent: ISyntaxElement, list: T[], buffer: string, preserveNewLines: boolean): void { - if (list === null || list.length === 0) { - return; - } - - // If the first element isn't on hte same line as the parent node, then we need to - // start with a newline. - var text = this.text(); - var startLine = preserveNewLines && !this.isOnSameLine(end(parent, text), end(list[0], text)); - - if (preserveNewLines) { - // Any elements on a new line will have to be indented. - this.indenter.increaseIndent(); - } - - // If we're starting on a newline, then emit an actual newline. Otherwise write out - // the buffer character before hte first element. - if (startLine) { - this.writeLineToOutput(""); - } - else { - this.writeToOutput(buffer); - } - - for (var i = 0, n = list.length; i < n; i++) { - var emitNode = list[i]; - - // Write out the element, emitting an indent if we're on a new line. - this.emitJavascript(emitNode, startLine); - - if (i < (n - 1)) { - // If the next element start on a different line than this element ended on, - // then we want to start on a newline. Emit the comma with a newline. - // Otherwise, emit the comma with the space. - startLine = preserveNewLines && !this.isOnSameLine(end(emitNode, text), start(list[i + 1], text)); - if (startLine) { - this.writeLineToOutput(","); - } - else { - this.writeToOutput(", "); - } - } - } - - if (preserveNewLines) { - // We're done with all the elements. Return the indent back to where it was. - this.indenter.decreaseIndent(); - } - - // If the last element isn't on the same line as the parent, then emit a newline - // after the last element and emit our indent so the list's terminator will be - // on the right line. Otherwise, emit the buffer string between the last value - // and the terminator. - if (preserveNewLines && !this.isOnSameLine(end(parent, text), end(list[list.length - 1], text))) { - this.writeLineToOutput(""); - this.emitIndent(); - } - else { - this.writeToOutput(buffer); - } - } - - public emitList(list: T[], useNewLineSeparator = true, startInclusive = 0, endExclusive = list.length) { - if (list === null) { - return; - } - - this.emitComments(list, true); - var lastEmittedNode: ISyntaxElement = null; - - for (var i = startInclusive; i < endExclusive; i++) { - var node = list[i]; - - if (this.shouldEmit(node)) { - this.emitSpaceBetweenConstructs(lastEmittedNode, node); - - this.emitJavascript(node, true); - if (useNewLineSeparator) { - this.writeLineToOutput(""); - } - - lastEmittedNode = node; - } - } - - this.emitComments(list, false); - } - - public emitSeparatedList(list: T[], useNewLineSeparator = true, startInclusive = 0, endExclusive = list.length) { - if (list === null) { - return; - } - - this.emitComments(list, true); - var lastEmittedNode: ISyntaxElement = null; - - for (var i = startInclusive; i < endExclusive; i++) { - var node = list[i]; - - if (this.shouldEmit(node)) { - this.emitSpaceBetweenConstructs(lastEmittedNode, node); - - this.emitJavascript(node, true); - if (useNewLineSeparator) { - this.writeLineToOutput(""); - } - - lastEmittedNode = node; - } - } - - this.emitComments(list, false); - } - - private isDirectivePrologueElement(node: ISyntaxElement) { - if (node.kind() === SyntaxKind.ExpressionStatement) { - var exprStatement = node; - return exprStatement.expression.kind() === SyntaxKind.StringLiteral; - } - - return false; - } - - // If these two constructs had more than one line between them originally, then emit at - // least one blank line between them. - public emitSpaceBetweenConstructs(node1: ISyntaxElement, node2: ISyntaxElement): void { - if (node1 === null || node2 === null) { - return; - } - - var text = this.text(); - if (start(node1, text) === -1 || end(node1, text) === -1 || start(node2, text) === -1 || end(node2, text) === -1) { - return; - } - - var lineMap = this.document.lineMap(); - var node1EndLine = lineMap.getLineNumberFromPosition(end(node1, text)); - var node2StartLine = lineMap.getLineNumberFromPosition(start(node2, text)); - - if ((node2StartLine - node1EndLine) > 1) { - this.writeLineToOutput("", /*force:*/ true); - } - } - - // We consider a sequence of comments to be a detached from an ast if there are no blank lines - // between them, and there is a blank line after the last one and the node they're attached - // to. - private getDetachedComments(element: ISyntaxElement): Comment[] { - var text = this.text(); - var preComments = TypeScript.ASTHelpers.preComments(element, text); - if (preComments) { - var lineMap = this.document.lineMap(); - - var detachedComments: Comment[] = []; - var lastComment: Comment = null; - - for (var i = 0, n = preComments.length; i < n; i++) { - var comment = preComments[i]; - - if (lastComment) { - var lastCommentLine = lineMap.getLineNumberFromPosition(lastComment.end()); - var commentLine = lineMap.getLineNumberFromPosition(comment.start()); - - if (commentLine >= lastCommentLine + 2) { - // There was a blank line between the last comment and this comment. This - // comment is not part of the copyright comments. Return what we have so - // far. - return detachedComments; - } - } - - detachedComments.push(comment); - lastComment = comment; - } - - // All comments look like they could have been part of the copyright header. Make - // sure there is at least one blank line between it and the node. If not, it's not - // a copyright header. - var lastCommentLine = lineMap.getLineNumberFromPosition(ArrayUtilities.last(detachedComments).end()); - var astLine = lineMap.getLineNumberFromPosition(start(element, text)); - if (astLine >= lastCommentLine + 2) { - return detachedComments; - } - } - - // No usable copyright comments found. - return []; - } - - private emitPossibleCopyrightHeaders(script: SourceUnitSyntax): void { - this.emitDetachedComments(script.moduleElements); - } - - private emitDetachedComments(list: ISyntaxNodeOrToken[]): void { - if (list.length > 0) { - var firstElement = childAt(list, 0); - - this.detachedCommentsElement = firstElement; - this.emitCommentsArray(this.getDetachedComments(this.detachedCommentsElement), /*trailing:*/ false); - } - } - - public emitScriptElements(sourceUnit: SourceUnitSyntax) { - var list = sourceUnit.moduleElements; - - this.emitPossibleCopyrightHeaders(sourceUnit); - - // First, emit all the prologue elements. - for (var i = 0, n = list.length; i < n; i++) { - var node = list[i]; - - if (!this.isDirectivePrologueElement(node)) { - break; - } - - this.emitJavascript(node, true); - this.writeLineToOutput(""); - } - - // Now emit __extends or a _this capture if necessary. - this.emitPrologue(sourceUnit); - - var isExternalModule = this.document.syntaxTree().isExternalModule(); - var isNonElidedExternalModule = isExternalModule && !ASTHelpers.scriptIsElided(sourceUnit); - if (isNonElidedExternalModule) { - this.recordSourceMappingStart(sourceUnit); - - if (this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous) { // AMD - var dependencyList = "[\"require\", \"exports\""; - var importList = "require, exports"; - - var importAndDependencyList = this.getModuleImportAndDependencyList(sourceUnit); - importList += importAndDependencyList.importList; - dependencyList += importAndDependencyList.dependencyList + "]"; - - this.writeLineToOutput("define(" + dependencyList + "," + " function(" + importList + ") {"); - } - } - - if (isExternalModule) { - var temp = this.setContainer(EmitContainer.DynamicModule); - - var svModuleName = this.moduleName; - this.moduleName = syntaxTree(sourceUnit).fileName(); - if (TypeScript.isTSFile(this.moduleName)) { - this.moduleName = this.moduleName.substring(0, this.moduleName.length - ".ts".length); - } - - // if the external module has an "export =" identifier, we'll - // set it in the ExportAssignment emit method - this.setExportAssignment(null); - - if(this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous) { - this.indenter.increaseIndent(); - } - - var externalModule = this.semanticInfoChain.getDeclForAST(this.document.sourceUnit()); - - if (hasFlag(externalModule.flags, PullElementFlags.MustCaptureThis)) { - this.writeCaptureThisStatement(sourceUnit); - } - - this.pushDecl(externalModule); - } - - this.emitList(list, /*useNewLineSeparator:*/ true, /*startInclusive:*/ i, /*endExclusive:*/ n); - - if (isExternalModule) { - if (this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous) { - this.indenter.decreaseIndent(); - } - - if (isNonElidedExternalModule) { - var exportAssignment = this.getExportAssignment(); - var exportAssignmentIdentifierText = exportAssignment ? exportAssignment.identifier.text() : null; - var exportAssignmentValueSymbol = (externalModule.getSymbol(this.semanticInfoChain)).getExportAssignedValueSymbol(); - - if (this.emitOptions.compilationSettings().moduleGenTarget() === ModuleGenTarget.Asynchronous) { // AMD - if (exportAssignmentIdentifierText && exportAssignmentValueSymbol && !(exportAssignmentValueSymbol.kind & PullElementKind.SomeTypeReference)) { - // indent was decreased for AMD above - this.indenter.increaseIndent(); - this.emitIndent(); - this.writeToOutputWithSourceMapRecord("return " + exportAssignmentIdentifierText, exportAssignment); - this.writeLineToOutput(";"); - this.indenter.decreaseIndent(); - } - this.writeToOutput("});"); - } - else if (exportAssignmentIdentifierText && exportAssignmentValueSymbol && !(exportAssignmentValueSymbol.kind & PullElementKind.SomeTypeReference)) { - this.emitIndent(); - this.writeToOutputWithSourceMapRecord("module.exports = " + exportAssignmentIdentifierText, exportAssignment); - this.writeToOutput(";"); - } - - this.recordSourceMappingEnd(sourceUnit); - this.writeLineToOutput(""); - } - - this.setContainer(temp); - this.moduleName = svModuleName; - this.popDecl(externalModule); - } - } - - public emitConstructorStatements(funcDecl: ConstructorDeclarationSyntax) { - var list = funcDecl.block.statements; - - if (list === null) { - return; - } - - this.emitComments(list, true); - - var emitPropertyAssignmentsAfterSuperCall = ASTHelpers.getExtendsHeritageClause(this.thisClassNode.heritageClauses) !== null; - var propertyAssignmentIndex = emitPropertyAssignmentsAfterSuperCall ? 1 : 0; - var lastEmittedNode: ISyntaxElement = null; - - for (var i = 0, n = list.length; i < n; i++) { - // In some circumstances, class property initializers must be emitted immediately after the 'super' constructor - // call which, in these cases, must be the first statement in the constructor body - if (i === propertyAssignmentIndex) { - this.emitParameterPropertyAndMemberVariableAssignments(); - } - - var node = list[i]; - - if (this.shouldEmit(node)) { - this.emitSpaceBetweenConstructs(lastEmittedNode, node); - - this.emitJavascript(node, true); - this.writeLineToOutput(""); - - lastEmittedNode = node; - } - } - - if (i === propertyAssignmentIndex) { - this.emitParameterPropertyAndMemberVariableAssignments(); - } - - this.emitComments(list, false); - } - - // tokenId is the id the preceding token - public emitJavascript(ast: ISyntaxElement, startLine: boolean) { - if (ast === null) { - return; - } - - if (startLine && - this.indenter.indentAmt > 0) { - - this.emitIndent(); - } - - this.emit(ast); - } - - public emitAccessorMemberDeclaration(funcDecl: ISyntaxElement, name: ISyntaxToken, className: string, isProto: boolean) { - if (funcDecl.kind() !== SyntaxKind.GetAccessor) { - var accessorSymbol = PullHelpers.getAccessorSymbol(funcDecl, this.semanticInfoChain); - if (accessorSymbol.getGetter()) { - return; - } - } - - this.emitIndent(); - this.recordSourceMappingStart(funcDecl); - - this.writeToOutput("Object.defineProperty(" + className); - if (isProto) { - this.writeToOutput(".prototype, "); - } - else { - this.writeToOutput(", "); - } - - var functionName = name.text(); - if (isQuoted(functionName)) { - this.writeToOutput(functionName); - } - else { - this.writeToOutput('"' + functionName + '"'); - } - - this.writeLineToOutput(", {"); - - this.indenter.increaseIndent(); - - var accessors = PullHelpers.getGetterAndSetterFunction(funcDecl, this.semanticInfoChain); - if (accessors.getter) { - this.emitIndent(); - this.recordSourceMappingStart(accessors.getter); - this.emitComments(accessors.getter, true); - this.writeToOutput("get: "); - this.emitAccessorBody(accessors.getter, accessors.getter.callSignature.parameterList, accessors.getter.block); - this.writeLineToOutput(","); - } - - if (accessors.setter) { - this.emitIndent(); - this.recordSourceMappingStart(accessors.setter); - this.emitComments(accessors.setter, true); - this.writeToOutput("set: "); - this.emitAccessorBody(accessors.setter, accessors.setter.callSignature.parameterList, accessors.setter.block); - this.writeLineToOutput(","); - } - - this.emitIndent(); - this.writeLineToOutput("enumerable: true,"); - this.emitIndent(); - this.writeLineToOutput("configurable: true"); - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeLineToOutput("});"); - this.recordSourceMappingEnd(funcDecl); - } - - private emitAccessorBody(funcDecl: ISyntaxElement, parameterList: ParameterListSyntax, block: BlockSyntax): void { - var pullDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(funcDecl); - this.writeToOutput("function "); - this.emitParameterList(parameterList); - - var parameters = parameterList.parameters; - this.emitFunctionBodyStatements(null, funcDecl, parameters, block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(funcDecl); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(funcDecl); - this.popDecl(pullDecl); - } - - public emitClass(classDecl: ClassDeclarationSyntax) { - var pullDecl = this.semanticInfoChain.getDeclForAST(classDecl); - this.pushDecl(pullDecl); - - var svClassNode = this.thisClassNode; - this.thisClassNode = classDecl; - var className = classDecl.identifier.text(); - this.emitComments(classDecl, true); - var temp = this.setContainer(EmitContainer.Class); - - this.recordSourceMappingStart(classDecl); - this.writeToOutput("var " + className); - - var hasBaseClass = ASTHelpers.getExtendsHeritageClause(classDecl.heritageClauses) !== null; - var baseTypeReference: ISyntaxElement = null; - var varDecl: VariableDeclaratorSyntax = null; - - if (hasBaseClass) { - this.writeLineToOutput(" = (function (_super) {"); - } - else { - this.writeLineToOutput(" = (function () {"); - } - - this.recordSourceMappingNameStart(className); - this.indenter.increaseIndent(); - - if (hasBaseClass) { - baseTypeReference = ASTHelpers.getExtendsHeritageClause(classDecl.heritageClauses).typeNames[0]; - this.emitIndent(); - this.writeToOutputWithSourceMapRecord("__extends(" + className + ", _super)", baseTypeReference); - this.writeLineToOutput(";"); - } - - this.emitIndent(); - - var constrDecl = getLastConstructor(classDecl); - - // output constructor - if (constrDecl) { - // declared constructor - this.emit(constrDecl); - this.writeLineToOutput(""); - } - else { - this.recordSourceMappingStart(classDecl); - // default constructor - this.indenter.increaseIndent(); - this.writeLineToOutput("function " + classDecl.identifier.text() + "() {"); - this.recordSourceMappingNameStart("constructor"); - if (hasBaseClass) { - this.emitIndent(); - this.writeToOutputWithSourceMapRecord("_super.apply(this, arguments)", baseTypeReference); - this.writeLineToOutput(";"); - } - - if (this.shouldCaptureThis(classDecl)) { - this.writeCaptureThisStatement(classDecl); - } - - this.emitParameterPropertyAndMemberVariableAssignments(); - - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeToken(classDecl.closeBraceToken); - this.writeLineToOutput(""); - - this.recordSourceMappingNameEnd(); - this.recordSourceMappingEnd(classDecl); - } - - this.emitClassMembers(classDecl); - - this.emitIndent(); - this.writeToOutputWithSourceMapRecord("return " + className + ";", classDecl.closeBraceToken); - this.writeLineToOutput(""); - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeToken(classDecl.closeBraceToken); - this.recordSourceMappingNameEnd(); - this.recordSourceMappingStart(classDecl); - this.writeToOutput(")("); - if (hasBaseClass) { - this.emitJavascript(baseTypeReference, /*startLine:*/ false); - } - this.writeToOutput(");"); - this.recordSourceMappingEnd(classDecl); - - if ((temp === EmitContainer.Module || temp === EmitContainer.DynamicModule) && hasFlag(pullDecl.flags, PullElementFlags.Exported)) { - this.writeLineToOutput(""); - this.emitIndent(); - var modName = temp === EmitContainer.Module ? this.moduleName : "exports"; - this.writeToOutputWithSourceMapRecord(modName + "." + className + " = " + className + ";", classDecl); - } - - this.recordSourceMappingEnd(classDecl); - this.emitComments(classDecl, false); - this.setContainer(temp); - this.thisClassNode = svClassNode; - - this.popDecl(pullDecl); - } - - private emitClassMembers(classDecl: ClassDeclarationSyntax): void { - // First, emit all the functions. - var lastEmittedMember: ISyntaxElement = null; - - for (var i = 0, n = classDecl.classElements.length; i < n; i++) { - var memberDecl = classDecl.classElements[i]; - - if (memberDecl.kind() === SyntaxKind.GetAccessor) { - this.emitSpaceBetweenConstructs(lastEmittedMember, memberDecl); - var getter = memberDecl; - this.emitAccessorMemberDeclaration(getter, getter.propertyName, classDecl.identifier.text(), - !hasModifier(getter.modifiers, PullElementFlags.Static)); - lastEmittedMember = memberDecl; - } - else if (memberDecl.kind() === SyntaxKind.SetAccessor) { - this.emitSpaceBetweenConstructs(lastEmittedMember, memberDecl); - var setter = memberDecl; - this.emitAccessorMemberDeclaration(setter, setter.propertyName, classDecl.identifier.text(), - !hasModifier(setter.modifiers, PullElementFlags.Static)); - lastEmittedMember = memberDecl; - } - else if (memberDecl.kind() === SyntaxKind.MemberFunctionDeclaration) { - - var memberFunction = memberDecl; - - if (memberFunction.block) { - this.emitSpaceBetweenConstructs(lastEmittedMember, memberDecl); - - this.emitClassMemberFunctionDeclaration(classDecl, memberFunction); - lastEmittedMember = memberDecl; - } - } - } - - // Now emit all the statics. - for (var i = 0, n = classDecl.classElements.length; i < n; i++) { - var memberDecl = classDecl.classElements[i]; - - if (memberDecl.kind() === SyntaxKind.MemberVariableDeclaration) { - var varDecl = memberDecl; - - if (hasModifier(varDecl.modifiers, PullElementFlags.Static) && varDecl.variableDeclarator.equalsValueClause) { - this.emitSpaceBetweenConstructs(lastEmittedMember, varDecl); - - this.emitIndent(); - this.recordSourceMappingStart(varDecl); - - this.emitComments(varDecl, true); - var varDeclName = varDecl.variableDeclarator.propertyName.text(); - if (isQuoted(varDeclName) || varDecl.variableDeclarator.propertyName.kind() !== SyntaxKind.IdentifierName) { - this.writeToOutput(classDecl.identifier.text() + "[" + varDeclName + "]"); - } - else { - this.writeToOutput(classDecl.identifier.text() + "." + varDeclName); - } - - this.emit(varDecl.variableDeclarator.equalsValueClause); - - this.recordSourceMappingEnd(varDecl); - this.writeLineToOutput(";"); - - lastEmittedMember = varDecl; - } - } - } - } - - private emitClassMemberFunctionDeclaration(classDecl: ClassDeclarationSyntax, funcDecl: MemberFunctionDeclarationSyntax): void { - this.emitIndent(); - this.recordSourceMappingStart(funcDecl); - this.emitComments(funcDecl, true); - var functionName = funcDecl.propertyName.text(); - - this.writeToOutput(classDecl.identifier.text()); - - if (!hasModifier(funcDecl.modifiers, PullElementFlags.Static)) { - this.writeToOutput(".prototype"); - } - - if (isQuoted(functionName) || funcDecl.propertyName.kind() !== SyntaxKind.IdentifierName) { - this.writeToOutput("[" + functionName + "] = "); - } - else { - this.writeToOutput("." + functionName + " = "); - } - - var pullDecl = this.semanticInfoChain.getDeclForAST(funcDecl); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(funcDecl); - this.writeToOutput("function "); - - this.emitParameterList(funcDecl.callSignature.parameterList); - - var parameters = funcDecl.callSignature.parameterList.parameters; - this.emitFunctionBodyStatements(funcDecl.propertyName.text(), funcDecl, parameters, funcDecl.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(funcDecl); - - this.emitComments(funcDecl, false); - - this.recordSourceMappingEnd(funcDecl); - this.popDecl(pullDecl); - - this.writeLineToOutput(";"); - } - - private requiresExtendsBlock(moduleElements: IModuleElementSyntax[]): boolean { - for (var i = 0, n = moduleElements.length; i < n; i++) { - var moduleElement = moduleElements[i]; - - if (moduleElement.kind() === SyntaxKind.ModuleDeclaration) { - var moduleAST = moduleElement; - - if (!hasModifier(moduleAST.modifiers, PullElementFlags.Ambient) && this.requiresExtendsBlock(moduleAST.moduleElements)) { - return true; - } - } - else if (moduleElement.kind() === SyntaxKind.ClassDeclaration) { - var classDeclaration = moduleElement; - - if (!hasModifier(classDeclaration.modifiers, PullElementFlags.Ambient) && ASTHelpers.getExtendsHeritageClause(classDeclaration.heritageClauses) !== null) { - return true; - } - } - } - - return false; - } - - public emitPrologue(sourceUnit: SourceUnitSyntax) { - if (!this.extendsPrologueEmitted) { - if (this.requiresExtendsBlock(sourceUnit.moduleElements)) { - this.extendsPrologueEmitted = true; - this.writeLineToOutput("var __extends = this.__extends || function (d, b) {"); - this.writeLineToOutput(" for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];"); - this.writeLineToOutput(" function __() { this.constructor = d; }"); - this.writeLineToOutput(" __.prototype = b.prototype;"); - this.writeLineToOutput(" d.prototype = new __();"); - this.writeLineToOutput("};"); - } - } - - if (!this.globalThisCapturePrologueEmitted) { - if (this.shouldCaptureThis(sourceUnit)) { - this.globalThisCapturePrologueEmitted = true; - this.writeLineToOutput(this.captureThisStmtString); - } - } - } - - public emitThis() { - if (!this.inWithBlock && this.inArrowFunction) { - this.writeToOutput("_this"); - } - else { - this.writeToOutput("this"); - } - } - - public emitBlockOrStatement(node: ISyntaxElement): void { - if (node.kind() === SyntaxKind.Block) { - this.emit(node); - } - else { - this.writeLineToOutput(""); - this.indenter.increaseIndent(); - this.emitJavascript(node, true); - this.indenter.decreaseIndent(); - } - } - - public emitLiteralExpression(expression: ISyntaxToken): void { - switch (expression.kind()) { - case SyntaxKind.NullKeyword: - this.writeToken(expression); - break; - case SyntaxKind.FalseKeyword: - this.writeToken(expression); - break; - case SyntaxKind.TrueKeyword: - this.writeToken(expression); - break; - default: - throw Errors.abstract(); - } - } - - public emitThisExpression(expression: ISyntaxToken): void { - if (!this.inWithBlock && this.inArrowFunction) { - this.writeToOutputWithSourceMapRecord("_this", expression); - } - else { - this.writeToken(expression); - } - } - - public emitSuperExpression(expression: ISyntaxToken): void { - if (PullHelpers.isInStaticMemberContext(expression, this.semanticInfoChain)) { - this.writeToOutputWithSourceMapRecord("_super", expression); - } - else { - this.writeToOutputWithSourceMapRecord("_super.prototype", expression); - } - } - - private hasTrailingComment(token: ISyntaxToken) { - return token.hasTrailingTrivia() && token.trailingTrivia().hasComment(); - } - - public emitParenthesizedExpression(parenthesizedExpression: ParenthesizedExpressionSyntax): void { - var omitParentheses = false; - - if (parenthesizedExpression.expression.kind() === SyntaxKind.CastExpression && !this.hasTrailingComment(parenthesizedExpression.openParenToken)) { - var castedExpression = (parenthesizedExpression.expression).expression; - - // Make sure we consider all nested cast expressions, e.g.: - // (-A).x; - while (castedExpression.kind() == SyntaxKind.CastExpression) { - castedExpression = (castedExpression).expression; - } - - // We have an expression of the form: (SubExpr) - // Emitting this as (SubExpr) is really not desirable. Just emit the subexpr as is. - // We cannot generalize this rule however, as omitting the parentheses could cause change in the semantics of the generated - // code if the casted expression has a lower precedence than the rest of the expression, e.g.: - // (new A).foo should be emitted as (new A).foo and not new A.foo - // (typeof A).toString() should be emitted as (typeof A).toString() and not typeof A.toString() - // (function foo() { })() should be emitted as an IIF (function foo(){})() and not declaration function foo(){} () - // Parenthesis can be safelly removed from: - // Literals - // MemberAccessExpressions - // ElementAccessExpressions - // InvocationExpression, only if they are not part of an object creation (new) expression; e.g.: - // new (A()) removing the parentheses would result in calling A as a constructor, instead of calling the - // result of the function invocation A() as a constructor - switch (castedExpression.kind()) { - case SyntaxKind.ParenthesizedExpression: - case SyntaxKind.IdentifierName: - case SyntaxKind.NullKeyword: - case SyntaxKind.ThisKeyword: - case SyntaxKind.StringLiteral: - case SyntaxKind.NumericLiteral: - case SyntaxKind.RegularExpressionLiteral: - case SyntaxKind.TrueKeyword: - case SyntaxKind.FalseKeyword: - case SyntaxKind.ArrayLiteralExpression: - case SyntaxKind.ObjectLiteralExpression: - case SyntaxKind.MemberAccessExpression: - case SyntaxKind.ElementAccessExpression: - omitParentheses = true; - break; - - case SyntaxKind.InvocationExpression: - if (parenthesizedExpression.parent.kind() !== SyntaxKind.ObjectCreationExpression) { - omitParentheses = true; - } - - break; - } - } - - if (omitParentheses) { - this.emit(parenthesizedExpression.expression); - } - else { - this.recordSourceMappingStart(parenthesizedExpression); - this.writeToken(parenthesizedExpression.openParenToken); - this.emitCommentsArray(ASTHelpers.convertTokenTrailingComments(parenthesizedExpression.openParenToken, this.text()), /*trailing:*/ false); - this.emit(parenthesizedExpression.expression); - this.writeToken(parenthesizedExpression.closeParenToken); - this.recordSourceMappingEnd(parenthesizedExpression); - } - } - - public emitCastExpression(expression: CastExpressionSyntax): void { - this.emit(expression.expression); - } - - public emitPrefixUnaryExpression(expression: PrefixUnaryExpressionSyntax): void { - var nodeType = expression.kind(); - - this.recordSourceMappingStart(expression); - switch (nodeType) { - case SyntaxKind.LogicalNotExpression: - this.writeToken(expression.operatorToken); - this.emit(expression.operand); - break; - case SyntaxKind.BitwiseNotExpression: - this.writeToken(expression.operatorToken); - this.emit(expression.operand); - break; - case SyntaxKind.NegateExpression: - this.writeToken(expression.operatorToken); - if (expression.operand.kind() === SyntaxKind.NegateExpression || expression.operand.kind() === SyntaxKind.PreDecrementExpression) { - this.writeToOutput(" "); - } - this.emit(expression.operand); - break; - case SyntaxKind.PlusExpression: - this.writeToken(expression.operatorToken); - if (expression.operand.kind() === SyntaxKind.PlusExpression || expression.operand.kind() === SyntaxKind.PreIncrementExpression) { - this.writeToOutput(" "); - } - this.emit(expression.operand); - break; - case SyntaxKind.PreIncrementExpression: - this.writeToOutputWithSourceMapRecord("++", expression.operatorToken); - this.emit(expression.operand); - break; - case SyntaxKind.PreDecrementExpression: - this.writeToOutputWithSourceMapRecord("--", expression.operatorToken); - this.emit(expression.operand); - break; - default: - throw Errors.abstract(); - } - - this.recordSourceMappingEnd(expression); - } - - public emitPostfixUnaryExpression(expression: PostfixUnaryExpressionSyntax): void { - var nodeType = expression.kind(); - - this.recordSourceMappingStart(expression); - switch (nodeType) { - case SyntaxKind.PostIncrementExpression: - this.emit(expression.operand); - this.writeToOutputWithSourceMapRecord("++", expression.operatorToken); - break; - case SyntaxKind.PostDecrementExpression: - this.emit(expression.operand); - this.writeToOutputWithSourceMapRecord("--", expression.operatorToken); - break; - default: - throw Errors.abstract(); - } - - this.recordSourceMappingEnd(expression); - } - - public emitTypeOfExpression(expression: TypeOfExpressionSyntax): void { - this.recordSourceMappingStart(expression); - this.writeToken(expression.typeOfKeyword); - this.writeToOutput(" "); - this.emit(expression.expression); - this.recordSourceMappingEnd(expression); - } - - public emitDeleteExpression(expression: DeleteExpressionSyntax): void { - this.recordSourceMappingStart(expression); - this.writeToken(expression.deleteKeyword); - this.writeToOutput(" "); - this.emit(expression.expression); - this.recordSourceMappingEnd(expression); - } - - public emitVoidExpression(expression: VoidExpressionSyntax): void { - this.recordSourceMappingStart(expression); - this.writeToken(expression.voidKeyword); - this.writeToOutput(" "); - this.emit(expression.expression); - this.recordSourceMappingEnd(expression); - } - - private canEmitDottedNameMemberAccessExpression(expression: MemberAccessExpressionSyntax) { - var memberExpressionNodeType = expression.expression.kind(); - - // If the memberAccess is of Name or another member access, we could potentially emit the symbol using the this memberAccessSymol - if (memberExpressionNodeType === SyntaxKind.IdentifierName || memberExpressionNodeType == SyntaxKind.MemberAccessExpression) { - var memberAccessSymbol = this.getSymbolForEmit(expression).symbol; - var memberAccessExpressionSymbol = this.getSymbolForEmit(expression.expression).symbol; - if (memberAccessSymbol && memberAccessExpressionSymbol // We have symbols resolved for this expression and access - && !this.semanticInfoChain.getAliasSymbolForAST(expression.expression) // The access is not off alias - && (PullHelpers.symbolIsModule(memberAccessExpressionSymbol) || memberAccessExpressionSymbol.kind === PullElementKind.Enum || - memberAccessExpressionSymbol.anyDeclHasFlag(PullElementFlags.InitializedModule | PullElementFlags.Enum))) { // container is module - - // If the memberAccess is in the context of the container, we could use the symbol to emit this expression - var memberAccessSymbolKind = memberAccessSymbol.kind; - if (memberAccessSymbolKind === PullElementKind.Property - || memberAccessSymbolKind === PullElementKind.EnumMember - || (memberAccessSymbol.anyDeclHasFlag(PullElementFlags.Exported) && memberAccessSymbolKind === PullElementKind.Variable && !memberAccessSymbol.anyDeclHasFlag(PullElementFlags.InitializedModule | PullElementFlags.Enum)) - || ((memberAccessSymbol.anyDeclHasFlag(PullElementFlags.Exported) && !this.symbolIsUsedInItsEnclosingContainer(memberAccessSymbol)))) { - - // If the expression is member access, we need to verify it as well - if (memberExpressionNodeType === SyntaxKind.MemberAccessExpression) { - return this.canEmitDottedNameMemberAccessExpression(expression.expression); - } - - return true; - } - } - } - - return false; - } - - // Emit the member access expression using the declPath - private emitDottedNameMemberAccessExpression(expression: MemberAccessExpressionSyntax) { - this.recordSourceMappingStart(expression); - if (expression.expression.kind() === SyntaxKind.MemberAccessExpression) { - // Emit the dotted name access expression - this.emitDottedNameMemberAccessExpressionRecurse(expression.expression); - } - else { // Name - this.emitName(expression.expression, /*addThis*/ true); - } - - this.writeToken(expression.dotToken); - this.emitName(expression.name, /*addThis*/ false); - - this.recordSourceMappingEnd(expression); - } - - // Set the right indices for the recursive member access expression before emitting it using the decl path - private emitDottedNameMemberAccessExpressionRecurse(expression: MemberAccessExpressionSyntax) { - this.emitComments(expression, true); - this.emitDottedNameMemberAccessExpression(expression); - this.emitComments(expression, false); - } - - public emitMemberAccessExpression(expression: MemberAccessExpressionSyntax): void { - if (!this.tryEmitConstant(expression)) { - // If the expression is dotted name of the modules, emit it using decl path so the name could be resolved correctly. - if (this.canEmitDottedNameMemberAccessExpression(expression)) { - this.emitDottedNameMemberAccessExpression(expression); - } - else { - this.recordSourceMappingStart(expression); - this.emit(expression.expression); - this.writeToken(expression.dotToken); - this.emitName(expression.name, false); - this.recordSourceMappingEnd(expression); - } - } - } - - public emitQualifiedName(name: QualifiedNameSyntax): void { - this.recordSourceMappingStart(name); - - this.emit(name.left); - this.writeToken(name.dotToken); - this.emitName(name.right, false); - - this.recordSourceMappingEnd(name); - } - - public emitBinaryExpression(expression: BinaryExpressionSyntax): void { - this.recordSourceMappingStart(expression); - switch (expression.kind()) { - case SyntaxKind.CommaExpression: - this.emit(expression.left); - this.writeToken(expression.operatorToken); - this.writeToOutput(" "); - this.emit(expression.right); - break; - default: - { - this.emit(expression.left); - var binOp = SyntaxFacts.getText(SyntaxFacts.getOperatorTokenFromBinaryExpression(expression.kind())); - this.writeToOutput(" "); - this.writeToOutputWithSourceMapRecord(binOp, expression.operatorToken); - this.writeToOutput(" "); - this.emit(expression.right); - } - } - this.recordSourceMappingEnd(expression); - } - - public emitSimplePropertyAssignment(property: SimplePropertyAssignmentSyntax): void { - this.recordSourceMappingStart(property); - this.emit(property.propertyName); - - this.writeToken(property.colonToken); - this.writeToOutput(" "); - this.emitCommentsArray(ASTHelpers.convertTokenTrailingComments(property.colonToken, this.text()), /*trailing:*/ true, /*noLeadingSpace:*/ true); - - this.emit(property.expression); - this.recordSourceMappingEnd(property); - } - - public emitFunctionPropertyAssignment(funcProp: FunctionPropertyAssignmentSyntax): void { - this.recordSourceMappingStart(funcProp); - - this.emit(funcProp.propertyName); - this.writeToOutput(": "); - - var pullFunctionDecl = this.semanticInfoChain.getDeclForAST(funcProp); - - var savedInArrowFunction = this.inArrowFunction; - this.inArrowFunction = false; - - var temp = this.setContainer(EmitContainer.Function); - var funcName = funcProp.propertyName; - - var pullDecl = this.semanticInfoChain.getDeclForAST(funcProp); - this.pushDecl(pullDecl); - - this.recordSourceMappingStart(funcProp); - this.writeToOutput("function "); - - //this.recordSourceMappingStart(funcProp.propertyName); - //this.writeToOutput(funcProp.propertyName.actualText); - //this.recordSourceMappingEnd(funcProp.propertyName); - - this.emitParameterList(funcProp.callSignature.parameterList); - - this.emitFunctionBodyStatements(funcProp.propertyName.text(), funcProp, - funcProp.callSignature.parameterList.parameters, funcProp.block, /*bodyExpression:*/ null); - - this.recordSourceMappingEnd(funcProp); - - // The extra call is to make sure the caller's funcDecl end is recorded, since caller wont be able to record it - this.recordSourceMappingEnd(funcProp); - - this.emitComments(funcProp, false); - - this.popDecl(pullDecl); - - this.setContainer(temp); - this.inArrowFunction = savedInArrowFunction; - } - - public emitConditionalExpression(expression: ConditionalExpressionSyntax): void { - this.emit(expression.condition); - this.writeToOutput(" "); - this.writeToken(expression.questionToken); - this.writeToOutput(" "); - this.emit(expression.whenTrue); - this.writeToOutput(" "); - this.writeToken(expression.colonToken); - this.writeToOutput(" "); - this.emit(expression.whenFalse); - } - - public emitThrowStatement(statement: ThrowStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.throwKeyword); - this.writeToOutput(" "); - this.emit(statement.expression); - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - this.recordSourceMappingEnd(statement); - } - - public emitExpressionStatement(statement: ExpressionStatementSyntax): void { - var isArrowExpression = statement.expression.kind() === SyntaxKind.SimpleArrowFunctionExpression || statement.expression.kind() === SyntaxKind.ParenthesizedArrowFunctionExpression; - - this.recordSourceMappingStart(statement); - if (isArrowExpression) { - this.writeToOutput("("); - } - - this.emit(statement.expression); - - if (isArrowExpression) { - this.writeToOutput(")"); - } - - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - this.recordSourceMappingEnd(statement); - } - - public emitLabeledStatement(statement: LabeledStatementSyntax): void { - this.writeToOutputWithSourceMapRecord(statement.identifier.text(), statement.identifier); - this.writeToken(statement.colonToken); - this.writeLineToOutput(""); - this.emitJavascript(statement.statement, /*startLine:*/ true); - } - - public emitBlock(block: BlockSyntax): void { - this.recordSourceMappingStart(block); - this.writeLineToOutput(" {"); - this.indenter.increaseIndent(); - if (block.statements) { - this.emitList(block.statements); - } - this.emitCommentsArray(ASTHelpers.convertTokenLeadingComments(block.closeBraceToken, this.text()), /*trailing:*/ false); - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeToken(block.closeBraceToken); - this.recordSourceMappingEnd(block); - } - - public emitBreakStatement(jump: BreakStatementSyntax): void { - this.recordSourceMappingStart(jump); - this.writeToken(jump.breakKeyword); - - if (jump.identifier) { - this.writeToOutput(" "); - this.writeToOutputWithSourceMapRecord(jump.identifier.text(), jump.identifier); - } - - this.writeToOutputWithSourceMapRecord(";", jump.semicolonToken); - this.recordSourceMappingEnd(jump); - } - - public emitContinueStatement(jump: ContinueStatementSyntax): void { - this.recordSourceMappingStart(jump); - this.writeToken(jump.continueKeyword); - - if (jump.identifier) { - this.writeToOutput(" "); - this.writeToOutputWithSourceMapRecord(jump.identifier.text(), jump.identifier); - } - - this.writeToOutputWithSourceMapRecord(";", jump.semicolonToken); - this.recordSourceMappingEnd(jump); - } - - public emitWhileStatement(statement: WhileStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.whileKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - this.emit(statement.condition); - this.writeToken(statement.closeParenToken); - this.emitBlockOrStatement(statement.statement); - this.recordSourceMappingEnd(statement); - } - - public emitDoStatement(statement: DoStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.doKeyword); - this.emitBlockOrStatement(statement.statement); - this.writeToOutput(" "); - this.writeToken(statement.whileKeyword); - this.writeToken(statement.openParenToken); - this.emit(statement.condition); - this.writeToken(statement.closeParenToken); - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - this.recordSourceMappingEnd(statement); - } - - public emitIfStatement(statement: IfStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.ifKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - this.emit(statement.condition); - this.writeToken(statement.closeParenToken); - - this.emitBlockOrStatement(statement.statement); - - if (statement.elseClause) { - if (statement.statement.kind() !== SyntaxKind.Block) { - this.writeLineToOutput(""); - this.emitIndent(); - } - else { - this.writeToOutput(" "); - } - - this.emit(statement.elseClause); - } - this.recordSourceMappingEnd(statement); - } - - public emitElseClause(elseClause: ElseClauseSyntax): void { - this.writeToken(elseClause.elseKeyword); - if (elseClause.statement.kind() === SyntaxKind.IfStatement) { - this.writeToOutput(" "); - this.emit(elseClause.statement); - } - else { - this.emitBlockOrStatement(elseClause.statement); - } - } - - public emitReturnStatement(statement: ReturnStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.returnKeyword); - if (statement.expression) { - this.writeToOutput(" "); - this.emit(statement.expression); - } - - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - this.recordSourceMappingEnd(statement); - } - - public emitForInStatement(statement: ForInStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.forKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - - if (statement.left) { - this.emit(statement.left); - } - else { - this.emit(statement.variableDeclaration); - } - this.writeToOutput(" "); - this.writeToken(statement.inKeyword); - this.writeToOutput(" "); - this.emit(statement.expression); - this.writeToken(statement.closeParenToken); - this.emitBlockOrStatement(statement.statement); - this.recordSourceMappingEnd(statement); - } - - public emitForStatement(statement: ForStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.forKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - - if (statement.variableDeclaration) { - this.emit(statement.variableDeclaration); - } - else if (statement.initializer) { - this.emit(statement.initializer); - } - - this.writeToken(statement.firstSemicolonToken); - this.writeToOutput(" "); - this.emitJavascript(statement.condition, false); - this.writeToken(statement.secondSemicolonToken); - if (statement.incrementor) { - this.writeToOutput(" "); - this.emitJavascript(statement.incrementor, false); - } - this.writeToken(statement.closeParenToken); - this.emitBlockOrStatement(statement.statement); - this.recordSourceMappingEnd(statement); - } - - public emitWithStatement(statement: WithStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.withKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - if (statement.condition) { - this.emit(statement.condition); - } - - this.writeToken(statement.closeParenToken); - var prevInWithBlock = this.inWithBlock; - this.inWithBlock = true; - this.emitBlockOrStatement(statement.statement); - this.inWithBlock = prevInWithBlock; - this.recordSourceMappingEnd(statement); - } - - public emitSwitchStatement(statement: SwitchStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.switchKeyword); - this.writeToOutput(" "); - this.writeToken(statement.openParenToken); - this.emit(statement.expression); - this.writeToken(statement.closeParenToken); - this.writeLineToOutput(" {"); - this.indenter.increaseIndent(); - this.emitList(statement.switchClauses, /*useNewLineSeparator:*/ false); - this.indenter.decreaseIndent(); - this.emitIndent(); - this.writeToken(statement.closeBraceToken); - this.recordSourceMappingEnd(statement); - } - - public emitCaseSwitchClause(clause: CaseSwitchClauseSyntax): void { - this.recordSourceMappingStart(clause); - this.writeToken(clause.caseKeyword); - this.writeToOutput(" "); - this.emit(clause.expression); - this.writeToken(clause.colonToken); - - this.emitSwitchClauseBody(clause.colonToken, clause.statements); - this.recordSourceMappingEnd(clause); - } - - private emitSwitchClauseBody(colonToken: ISyntaxToken, body: IStatementSyntax[]): void { - var text = this.text(); - if (body.length === 1 && childAt(body, 0).kind() === SyntaxKind.Block) { - // The case statement was written with curly braces, so emit it with the appropriate formatting - this.emit(childAt(body, 0)); - this.writeLineToOutput(""); - } - else if (body.length === 1 && this.isOnSameLine(end(colonToken, text), start(body[0], text))) { - this.writeToOutput(" "); - this.emit(childAt(body, 0)); - this.writeLineToOutput(""); - } - else { - // No curly braces. Format in the expected way - this.writeLineToOutput(""); - this.indenter.increaseIndent(); - this.emit(body); - this.indenter.decreaseIndent(); - } - } - - public emitDefaultSwitchClause(clause: DefaultSwitchClauseSyntax): void { - this.recordSourceMappingStart(clause); - this.writeToken(clause.defaultKeyword); - this.writeToken(clause.colonToken); - - this.emitSwitchClauseBody(clause.colonToken, clause.statements); - this.recordSourceMappingEnd(clause); - } - - public emitTryStatement(statement: TryStatementSyntax): void { - this.recordSourceMappingStart(statement); - this.writeToken(statement.tryKeyword); - this.writeToOutput(" "); - this.emit(statement.block); - this.emitJavascript(statement.catchClause, false); - - if (statement.finallyClause) { - this.emit(statement.finallyClause); - } - this.recordSourceMappingEnd(statement); - } - - public emitCatchClause(clause: CatchClauseSyntax): void { - this.writeToOutput(" "); - this.recordSourceMappingStart(clause); - this.writeToken(clause.catchKeyword); - this.writeToOutput(" "); - this.writeToken(clause.openParenToken); - this.emit(clause.identifier); - this.writeToken(clause.closeParenToken); - this.emit(clause.block); - this.recordSourceMappingEnd(clause); - } - - public emitFinallyClause(clause: FinallyClauseSyntax): void { - this.writeToOutput(" "); - this.writeToken(clause.finallyKeyword); - this.emit(clause.block); - } - - public emitDebuggerStatement(statement: DebuggerStatementSyntax): void { - this.writeToken(statement.debuggerKeyword); - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - } - - public emitNumericLiteral(literal: ISyntaxToken): void { - this.writeToOutputWithSourceMapRecord(literal.text(), literal); - } - - public emitRegularExpressionLiteral(literal: ISyntaxToken): void { - this.writeToOutputWithSourceMapRecord(literal.text(), literal); - } - - public emitStringLiteral(literal: ISyntaxToken): void { - this.writeToOutputWithSourceMapRecord(literal.text(), literal); - } - - public emitEqualsValueClause(clause: EqualsValueClauseSyntax): void { - this.writeToOutput(" "); - this.writeToken(clause.equalsToken); - this.writeToOutput(" "); - this.emitCommentsArray(ASTHelpers.convertTokenTrailingComments(clause.equalsToken, this.text()), /*trailing:*/ true, /*noLeadingSpace:*/ true); - - this.emit(clause.value); - } - - private emitParameter(parameter: ParameterSyntax): void { - this.writeToOutputWithSourceMapRecord(parameter.identifier.text(), parameter); - } - - public emitConstructorDeclaration(declaration: ConstructorDeclarationSyntax): void { - if (declaration.block) { - this.emitConstructor(declaration); - } - else { - this.emitComments(declaration, /*pre:*/ true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - public shouldEmitFunctionDeclaration(declaration: FunctionDeclarationSyntax): boolean { - return ASTHelpers.preComments(declaration, this.text()) !== null || (!hasModifier(declaration.modifiers, PullElementFlags.Ambient) && declaration.block !== null); - } - - public emitFunctionDeclaration(declaration: FunctionDeclarationSyntax): void { - if (!hasModifier(declaration.modifiers, PullElementFlags.Ambient) && declaration.block !== null) { - this.emitFunction(declaration); - } - else { - this.emitComments(declaration, /*pre:*/ true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - private emitSourceUnit(sourceUnit: SourceUnitSyntax): void { - if (!this.document.isDeclareFile()) { - var pullDecl = this.semanticInfoChain.getDeclForAST(sourceUnit); - this.pushDecl(pullDecl); - this.emitScriptElements(sourceUnit); - this.popDecl(pullDecl); - - this.emitCommentsArray(ASTHelpers.convertTokenLeadingComments(sourceUnit.endOfFileToken, this.text()), /*trailing:*/ false); - } - } - - public shouldEmitEnumDeclaration(declaration: EnumDeclarationSyntax): boolean { - return ASTHelpers.preComments(declaration, this.text()) !== null || !ASTHelpers.enumIsElided(declaration); - } - - public emitEnumDeclaration(declaration: EnumDeclarationSyntax): void { - if (!ASTHelpers.enumIsElided(declaration)) { - this.emitComments(declaration, true); - this.emitEnum(declaration); - this.emitComments(declaration, false); - } - else { - this.emitComments(declaration, true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - public shouldEmitModuleDeclaration(declaration: ModuleDeclarationSyntax): boolean { - return ASTHelpers.preComments(declaration, this.text()) !== null || !ASTHelpers.moduleIsElided(declaration); - } - - private emitModuleDeclaration(declaration: ModuleDeclarationSyntax): void { - if (!ASTHelpers.moduleIsElided(declaration)) { - this.emitModuleDeclarationWorker(declaration); - } - else { - this.emitComments(declaration, true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - public shouldEmitClassDeclaration(declaration: ClassDeclarationSyntax): boolean { - return ASTHelpers.preComments(declaration, this.text()) !== null || !hasModifier(declaration.modifiers, PullElementFlags.Ambient); - } - - public emitClassDeclaration(declaration: ClassDeclarationSyntax): void { - if (!hasModifier(declaration.modifiers, PullElementFlags.Ambient)) { - this.emitClass(declaration); - } - else { - this.emitComments(declaration, /*pre:*/ true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - public shouldEmitInterfaceDeclaration(declaration: InterfaceDeclarationSyntax): boolean { - return ASTHelpers.preComments(declaration, this.text()) !== null; - } - - public emitInterfaceDeclaration(declaration: InterfaceDeclarationSyntax): void { - this.emitComments(declaration, /*pre:*/ true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - - private firstVariableDeclarator(statement: VariableStatementSyntax): VariableDeclaratorSyntax { - return statement.variableDeclaration.variableDeclarators[0]; - } - - private isNotAmbientOrHasInitializer(variableStatement: VariableStatementSyntax): boolean { - return !hasModifier(variableStatement.modifiers, PullElementFlags.Ambient) || this.firstVariableDeclarator(variableStatement).equalsValueClause !== null; - } - - public shouldEmitVariableStatement(statement: VariableStatementSyntax): boolean { - return ASTHelpers.preComments(statement, this.text()) !== null || this.isNotAmbientOrHasInitializer(statement); - } - - public emitVariableStatement(statement: VariableStatementSyntax): void { - if (this.isNotAmbientOrHasInitializer(statement)) { - this.emitComments(statement, true); - this.emit(statement.variableDeclaration); - this.writeToOutputWithSourceMapRecord(";", statement.semicolonToken); - this.emitComments(statement, false); - } - else { - this.emitComments(statement, /*pre:*/ true, /*onlyPinnedOrTripleSlashComments:*/ true); - } - } - - public emitGenericType(type: GenericTypeSyntax): void { - this.emit(type.name); - } - - private shouldEmit(ast: ISyntaxElement): boolean { - if (!ast) { - return false; - } - - switch (ast.kind()) { - case SyntaxKind.ImportDeclaration: - return this.shouldEmitImportDeclaration(ast); - case SyntaxKind.ClassDeclaration: - return this.shouldEmitClassDeclaration(ast); - case SyntaxKind.InterfaceDeclaration: - return this.shouldEmitInterfaceDeclaration(ast); - case SyntaxKind.FunctionDeclaration: - return this.shouldEmitFunctionDeclaration(ast); - case SyntaxKind.ModuleDeclaration: - return this.shouldEmitModuleDeclaration(ast); - case SyntaxKind.VariableStatement: - return this.shouldEmitVariableStatement(ast); - case SyntaxKind.OmittedExpression: - return false; - case SyntaxKind.EnumDeclaration: - return this.shouldEmitEnumDeclaration(ast); - } - - return true; - } - - private emit(ast: ISyntaxElement): void { - if (!ast) { - return; - } - - switch (ast.kind()) { - case SyntaxKind.SeparatedList: - return this.emitSeparatedList(ast); - case SyntaxKind.List: - return this.emitList(ast); - case SyntaxKind.SourceUnit: - return this.emitSourceUnit(ast); - case SyntaxKind.ImportDeclaration: - return this.emitImportDeclaration(ast); - case SyntaxKind.ExportAssignment: - return this.setExportAssignment(ast); - case SyntaxKind.ClassDeclaration: - return this.emitClassDeclaration(ast); - case SyntaxKind.InterfaceDeclaration: - return this.emitInterfaceDeclaration(ast); - case SyntaxKind.IdentifierName: - return this.emitName(ast, true); - case SyntaxKind.VariableDeclarator: - return this.emitVariableDeclarator(ast); - case SyntaxKind.SimpleArrowFunctionExpression: - return this.emitSimpleArrowFunctionExpression(ast); - case SyntaxKind.ParenthesizedArrowFunctionExpression: - return this.emitParenthesizedArrowFunctionExpression(ast); - case SyntaxKind.FunctionDeclaration: - return this.emitFunctionDeclaration(ast); - case SyntaxKind.ModuleDeclaration: - return this.emitModuleDeclaration(ast); - case SyntaxKind.VariableDeclaration: - return this.emitVariableDeclaration(ast); - case SyntaxKind.GenericType: - return this.emitGenericType(ast); - case SyntaxKind.ConstructorDeclaration: - return this.emitConstructorDeclaration(ast); - case SyntaxKind.EnumDeclaration: - return this.emitEnumDeclaration(ast); - case SyntaxKind.EnumElement: - return this.emitEnumElement(ast); - case SyntaxKind.FunctionExpression: - return this.emitFunctionExpression(ast); - case SyntaxKind.VariableStatement: - return this.emitVariableStatement(ast); - } - - this.emitComments(ast, true); - this.emitWorker(ast); - this.emitComments(ast, false); - } - - private emitWorker(ast: ISyntaxElement): void { - if (!ast) { - return; - } - - switch (ast.kind()) { - case SyntaxKind.NumericLiteral: - return this.emitNumericLiteral(ast); - case SyntaxKind.RegularExpressionLiteral: - return this.emitRegularExpressionLiteral(ast); - case SyntaxKind.StringLiteral: - return this.emitStringLiteral(ast); - case SyntaxKind.FalseKeyword: - case SyntaxKind.NullKeyword: - case SyntaxKind.TrueKeyword: - return this.emitLiteralExpression(ast); - case SyntaxKind.ThisKeyword: - return this.emitThisExpression(ast); - case SyntaxKind.SuperKeyword: - return this.emitSuperExpression(ast); - case SyntaxKind.ParenthesizedExpression: - return this.emitParenthesizedExpression(ast); - case SyntaxKind.ArrayLiteralExpression: - return this.emitArrayLiteralExpression(ast); - case SyntaxKind.PostDecrementExpression: - case SyntaxKind.PostIncrementExpression: - return this.emitPostfixUnaryExpression(ast); - case SyntaxKind.LogicalNotExpression: - case SyntaxKind.BitwiseNotExpression: - case SyntaxKind.NegateExpression: - case SyntaxKind.PlusExpression: - case SyntaxKind.PreIncrementExpression: - case SyntaxKind.PreDecrementExpression: - return this.emitPrefixUnaryExpression(ast); - case SyntaxKind.InvocationExpression: - return this.emitInvocationExpression(ast); - case SyntaxKind.ElementAccessExpression: - return this.emitElementAccessExpression(ast); - case SyntaxKind.MemberAccessExpression: - return this.emitMemberAccessExpression(ast); - case SyntaxKind.QualifiedName: - return this.emitQualifiedName(ast); - case SyntaxKind.CommaExpression: - case SyntaxKind.AssignmentExpression: - case SyntaxKind.AddAssignmentExpression: - case SyntaxKind.SubtractAssignmentExpression: - case SyntaxKind.MultiplyAssignmentExpression: - case SyntaxKind.DivideAssignmentExpression: - case SyntaxKind.ModuloAssignmentExpression: - case SyntaxKind.AndAssignmentExpression: - case SyntaxKind.ExclusiveOrAssignmentExpression: - case SyntaxKind.OrAssignmentExpression: - case SyntaxKind.LeftShiftAssignmentExpression: - case SyntaxKind.SignedRightShiftAssignmentExpression: - case SyntaxKind.UnsignedRightShiftAssignmentExpression: - case SyntaxKind.LogicalOrExpression: - case SyntaxKind.LogicalAndExpression: - case SyntaxKind.BitwiseOrExpression: - case SyntaxKind.BitwiseExclusiveOrExpression: - case SyntaxKind.BitwiseAndExpression: - case SyntaxKind.EqualsWithTypeConversionExpression: - case SyntaxKind.NotEqualsWithTypeConversionExpression: - case SyntaxKind.EqualsExpression: - case SyntaxKind.NotEqualsExpression: - case SyntaxKind.LessThanExpression: - case SyntaxKind.GreaterThanExpression: - case SyntaxKind.LessThanOrEqualExpression: - case SyntaxKind.GreaterThanOrEqualExpression: - case SyntaxKind.InstanceOfExpression: - case SyntaxKind.InExpression: - case SyntaxKind.LeftShiftExpression: - case SyntaxKind.SignedRightShiftExpression: - case SyntaxKind.UnsignedRightShiftExpression: - case SyntaxKind.MultiplyExpression: - case SyntaxKind.DivideExpression: - case SyntaxKind.ModuloExpression: - case SyntaxKind.AddExpression: - case SyntaxKind.SubtractExpression: - return this.emitBinaryExpression(ast); - case SyntaxKind.ConditionalExpression: - return this.emitConditionalExpression(ast); - case SyntaxKind.EqualsValueClause: - return this.emitEqualsValueClause(ast); - case SyntaxKind.Parameter: - return this.emitParameter(ast); - case SyntaxKind.Block: - return this.emitBlock(ast); - case SyntaxKind.ElseClause: - return this.emitElseClause(ast); - case SyntaxKind.IfStatement: - return this.emitIfStatement(ast); - case SyntaxKind.ExpressionStatement: - return this.emitExpressionStatement(ast); - case SyntaxKind.GetAccessor: - return this.emitGetAccessor(ast); - case SyntaxKind.SetAccessor: - return this.emitSetAccessor(ast); - case SyntaxKind.ThrowStatement: - return this.emitThrowStatement(ast); - case SyntaxKind.ReturnStatement: - return this.emitReturnStatement(ast); - case SyntaxKind.ObjectCreationExpression: - return this.emitObjectCreationExpression(ast); - case SyntaxKind.SwitchStatement: - return this.emitSwitchStatement(ast); - case SyntaxKind.CaseSwitchClause: - return this.emitCaseSwitchClause(ast); - case SyntaxKind.DefaultSwitchClause: - return this.emitDefaultSwitchClause(ast); - case SyntaxKind.BreakStatement: - return this.emitBreakStatement(ast); - case SyntaxKind.ContinueStatement: - return this.emitContinueStatement(ast); - case SyntaxKind.ForStatement: - return this.emitForStatement(ast); - case SyntaxKind.ForInStatement: - return this.emitForInStatement(ast); - case SyntaxKind.WhileStatement: - return this.emitWhileStatement(ast); - case SyntaxKind.WithStatement: - return this.emitWithStatement(ast); - case SyntaxKind.CastExpression: - return this.emitCastExpression(ast); - case SyntaxKind.ObjectLiteralExpression: - return this.emitObjectLiteralExpression(ast); - case SyntaxKind.SimplePropertyAssignment: - return this.emitSimplePropertyAssignment(ast); - case SyntaxKind.FunctionPropertyAssignment: - return this.emitFunctionPropertyAssignment(ast); - case SyntaxKind.EmptyStatement: - return this.writeToken((ast).semicolonToken); - case SyntaxKind.TryStatement: - return this.emitTryStatement(ast); - case SyntaxKind.CatchClause: - return this.emitCatchClause(ast); - case SyntaxKind.FinallyClause: - return this.emitFinallyClause(ast); - case SyntaxKind.LabeledStatement: - return this.emitLabeledStatement(ast); - case SyntaxKind.DoStatement: - return this.emitDoStatement(ast); - case SyntaxKind.TypeOfExpression: - return this.emitTypeOfExpression(ast); - case SyntaxKind.DeleteExpression: - return this.emitDeleteExpression(ast); - case SyntaxKind.VoidExpression: - return this.emitVoidExpression(ast); - case SyntaxKind.DebuggerStatement: - return this.emitDebuggerStatement(ast); - } - } - } - - export function getLastConstructor(classDecl: ClassDeclarationSyntax): ConstructorDeclarationSyntax { - for (var i = classDecl.classElements.length - 1; i >= 0; i--) { - var child = classDecl.classElements[i]; - - if (child.kind() === SyntaxKind.ConstructorDeclaration) { - return child; - } - } - - return null; - } - - export function getTrimmedTextLines(comment: Comment): string[] { - if (comment.kind() === SyntaxKind.MultiLineCommentTrivia) { - return comment.fullText().split("\n").map(s => s.trim()); - } - else { - return [comment.fullText().trim()]; - } - } -} \ No newline at end of file From 3c59b9fe9c3172c649c7dfddc947284652123465 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 14 Jan 2015 15:52:53 -0800 Subject: [PATCH 023/211] Add getDefaultLibraryFilePath to retrive the default lib file path for node package consumers --- src/compiler/core.ts | 4 ++++ src/compiler/program.ts | 2 +- src/services/services.ts | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 2e5a471bb27..d57553d053e 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -633,6 +633,10 @@ module ts { } } + export function getDefaultLibraryFilename(options: CompilerOptions): string { + return options.target === ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts"; + } + export interface ObjectAllocator { getNodeConstructor(kind: SyntaxKind): new () => Node; getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol; diff --git a/src/compiler/program.ts b/src/compiler/program.ts index fc3cc0682d1..21a5d9e7d37 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -64,7 +64,7 @@ module ts { return { 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())), getDefaultLibraryFilename(options)), writeFile, getCurrentDirectory: () => currentDirectory || (currentDirectory = sys.getCurrentDirectory()), useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames, diff --git a/src/services/services.ts b/src/services/services.ts index 09a002d774b..fdf42dcb4f8 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -5720,6 +5720,23 @@ module ts { return { getClassificationsForLine }; } + /// getDefaultLibraryFilePath + declare var __dirname: string; + declare var module: any; + + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + export function getDefaultLibraryFilePath(options: CompilerOptions): string { + if (typeof module !== "undefined" && module.exports) { + return __dirname + directorySeparator + getDefaultLibraryFilename(options); + } + + throw new Error("getDefaultLibraryFilename is only supported when consumed as a node module. "); + } + function initializeServices() { objectAllocator = { getNodeConstructor: kind => { From adee215e6c910e92c0764e020ac32529a49f849f Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 14 Jan 2015 17:05:50 -0800 Subject: [PATCH 024/211] Make logger methods optional on the language service host --- src/services/formatting/rulesProvider.ts | 2 +- src/services/services.ts | 57 ++++++++++++++---------- src/services/shims.ts | 12 +++-- 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/services/formatting/rulesProvider.ts b/src/services/formatting/rulesProvider.ts index 7ad1b65400c..25b6f1ba772 100644 --- a/src/services/formatting/rulesProvider.ts +++ b/src/services/formatting/rulesProvider.ts @@ -22,7 +22,7 @@ module ts.formatting { private activeRules: Rule[]; private rulesMap: RulesMap; - constructor(private logger: Logger) { + constructor() { this.globalRules = new Rules(); } diff --git a/src/services/services.ts b/src/services/services.ts index fdf42dcb4f8..dac3727dec0 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -841,16 +841,10 @@ module ts { } } - export interface Logger { - log(s: string): void; - trace(s: string): void; - error(s: string): void; - } - // // Public interface of the host of a language service instance. // - export interface LanguageServiceHost extends Logger { + export interface LanguageServiceHost { getCompilationSettings(): CompilerOptions; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; @@ -860,6 +854,9 @@ module ts { getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; getDefaultLibFilename(options: CompilerOptions): string; + log? (s: string): void; + trace? (s: string): void; + error? (s: string): void; } // @@ -1492,11 +1489,17 @@ module ts { constructor(private host: LanguageServiceHost) { } + private log(message: string) { + if (this.host.log) { + this.host.log(message); + } + } + private initialize(filename: string) { // ensure that both source file and syntax tree are either initialized or not initialized var start = new Date().getTime(); this.hostCache = new HostCache(this.host); - this.host.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); + this.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); var version = this.hostCache.getVersion(filename); var sourceFile: SourceFile; @@ -1506,7 +1509,7 @@ module ts { var start = new Date().getTime(); sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, ScriptTarget.Latest, version, /*isOpen*/ true, /*setNodeParents;*/ true); - this.host.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); + this.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); } else if (this.currentFileVersion !== version) { var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); @@ -1515,7 +1518,7 @@ module ts { var start = new Date().getTime(); sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, /*isOpen*/ true, editRange); - this.host.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); + this.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); } if (sourceFile) { @@ -1931,6 +1934,12 @@ module ts { localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); } + function log(message: string) { + if (host.log) { + host.log(message); + } + } + function getCanonicalFileName(filename: string) { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); } @@ -1946,7 +1955,7 @@ module ts { function getRuleProvider(options: FormatCodeOptions) { // Ensure rules are initialized and up to date wrt to formatting options if (!ruleProvider) { - ruleProvider = new formatting.RulesProvider(host); + ruleProvider = new formatting.RulesProvider(); } ruleProvider.ensureUpToDate(options); @@ -2199,15 +2208,15 @@ module ts { var start = new Date().getTime(); var currentToken = getTokenAtPosition(sourceFile, position); - host.log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); var start = new Date().getTime(); // Completion not allowed inside comments, bail out if this is the case var insideComment = isInsideComment(sourceFile, currentToken, position); - host.log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { - host.log("Returning an empty list because completion was inside a comment."); + log("Returning an empty list because completion was inside a comment."); return undefined; } @@ -2215,19 +2224,19 @@ module ts { // Note: previousToken can be undefined if we are the beginning of the file var start = new Date().getTime(); var previousToken = findPrecedingToken(position, sourceFile); - host.log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); // The caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS| // Skip this partial identifier to the previous token if (previousToken && position <= previousToken.end && previousToken.kind === SyntaxKind.Identifier) { var start = new Date().getTime(); previousToken = findPrecedingToken(previousToken.pos, sourceFile); - host.log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); } // Check if this is a valid completion location if (previousToken && isCompletionListBlocker(previousToken)) { - host.log("Returning an empty list because completion was requested in an invalid position."); + log("Returning an empty list because completion was requested in an invalid position."); return undefined; } @@ -2256,7 +2265,7 @@ module ts { symbols: {}, typeChecker: typeInfoResolver }; - host.log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); + log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); var location = getTouchingPropertyName(sourceFile, position); // Populate the completion list @@ -2330,7 +2339,7 @@ module ts { if (!isMemberCompletion) { Array.prototype.push.apply(activeCompletionSession.entries, keywordCompletions); } - host.log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); + log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); return { isMemberCompletion, @@ -2349,7 +2358,7 @@ module ts { } } }); - host.log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); } function isCompletionListBlocker(previousToken: Node): boolean { @@ -2357,7 +2366,7 @@ module ts { var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - host.log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); return result; } @@ -5139,12 +5148,12 @@ module ts { var start = new Date().getTime(); var sourceFile = getCurrentSourceFile(filename); - host.log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); + log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); var start = new Date().getTime(); var result = formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); - host.log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); + log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; } @@ -5417,7 +5426,7 @@ module ts { } /// Classifier - export function createClassifier(host: Logger): Classifier { + export function createClassifier(): Classifier { var scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ false); /// We do not have a full parser support to know when we should parse a regex or not diff --git a/src/services/shims.ts b/src/services/shims.ts index 3841d397a39..01ed62ca248 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -37,6 +37,12 @@ module ts { getChangeRange(oldSnapshot: ScriptSnapshotShim): string; } + export interface Logger { + log(s: string): void; + trace(s: string): void; + error(s: string): void; + } + /** Public interface of the host of a language service shim instance.*/ export interface LanguageServiceShimHost extends Logger { getCompilationSettings(): string; @@ -669,9 +675,9 @@ module ts { class ClassifierShimObject extends ShimBase implements ClassifierShim { public classifier: Classifier; - constructor(factory: ShimFactory, public logger: Logger) { + constructor(factory: ShimFactory) { super(factory); - this.classifier = createClassifier(this.logger); + this.classifier = createClassifier(); } /// COLORIZATION @@ -761,7 +767,7 @@ module ts { public createClassifierShim(logger: Logger): ClassifierShim { try { - return new ClassifierShimObject(this, logger); + return new ClassifierShimObject(this); } catch (err) { logInternalError(logger, err); From 3434aa0bddc81c93cbd4250f7490c2cf2f1bf337 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 14 Jan 2015 17:20:27 -0800 Subject: [PATCH 025/211] Remove getDefaultLibFilename from the LS host interface as its result is never honored by the LS. The LS operate only on a fixed list of files initialized by the host's getScriptFileNames(), if a file is not in this list, it will not be queried from the host, rather considered a missing file. Thus the result of getDefaultLibFilename()is either in the list, or will be ignored. --- src/harness/harnessLanguageService.ts | 4 ---- src/services/services.ts | 18 +++++------------- src/services/shims.ts | 5 ----- 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 97885bdd20e..18d55cc87c9 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -217,10 +217,6 @@ module Harness.LanguageService { return ""; } - public getDefaultLibFilename(): string { - return ""; - } - public getScriptFileNames(): string { var fileNames: string[] = []; ts.forEachKey(this.fileNameToScript, (fileName) => { fileNames.push(fileName); }); diff --git a/src/services/services.ts b/src/services/services.ts index dac3727dec0..7a2ea512517 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -853,7 +853,6 @@ module ts { getLocalizedDiagnosticMessages?(): any; getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(options: CompilerOptions): string; log? (s: string): void; trace? (s: string): void; error? (s: string): void; @@ -1964,21 +1963,14 @@ module ts { function createCompilerHost(): CompilerHost { return { - getSourceFile: (filename, languageVersion) => { - return getSourceFile(filename); - }, + getSourceFile: getSourceFile, getCancellationToken: () => cancellationToken, - getCanonicalFileName: (filename) => useCaseSensitivefilenames ? filename : filename.toLowerCase(), + getCanonicalFileName: filename => useCaseSensitivefilenames ? filename : filename.toLowerCase(), useCaseSensitiveFileNames: () => useCaseSensitivefilenames, getNewLine: () => "\r\n", - getDefaultLibFilename: (options): string => { - return host.getDefaultLibFilename(options); - }, - writeFile: (filename, data, writeByteOrderMark) => { - }, - getCurrentDirectory: (): string => { - return host.getCurrentDirectory(); - } + getDefaultLibFilename: getDefaultLibraryFilename, + writeFile: (filename, data, writeByteOrderMark) => { }, + getCurrentDirectory: () => host.getCurrentDirectory() }; } diff --git a/src/services/shims.ts b/src/services/shims.ts index 01ed62ca248..d07c854bdc3 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -55,7 +55,6 @@ module ts { getLocalizedDiagnosticMessages(): string; getCancellationToken(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(options: string): string; } /// @@ -275,10 +274,6 @@ module ts { return this.shimHost.getCancellationToken(); } - public getDefaultLibFilename(options: CompilerOptions): string { - return this.shimHost.getDefaultLibFilename(JSON.stringify(options)); - } - public getCurrentDirectory(): string { return this.shimHost.getCurrentDirectory(); } From 93466517adf68f386c014a3df81e57c4a0f949e9 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 14 Jan 2015 17:22:15 -0800 Subject: [PATCH 026/211] Inline the return of createCompilerHost --- src/services/services.ts | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 7a2ea512517..de6745958cf 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1961,19 +1961,6 @@ module ts { return ruleProvider; } - function createCompilerHost(): CompilerHost { - return { - getSourceFile: getSourceFile, - getCancellationToken: () => cancellationToken, - getCanonicalFileName: filename => useCaseSensitivefilenames ? filename : filename.toLowerCase(), - useCaseSensitiveFileNames: () => useCaseSensitivefilenames, - getNewLine: () => "\r\n", - getDefaultLibFilename: getDefaultLibraryFilename, - writeFile: (filename, data, writeByteOrderMark) => { }, - getCurrentDirectory: () => host.getCurrentDirectory() - }; - } - function sourceFileUpToDate(sourceFile: SourceFile): boolean { return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename) && sourceFile.isOpen === hostCache.isOpen(sourceFile.filename); } @@ -2078,7 +2065,16 @@ module ts { } // Now create a new compiler - program = createProgram(hostfilenames, compilationSettings, createCompilerHost()); + program = createProgram(hostfilenames, compilationSettings, { + getSourceFile: getSourceFile, + getCancellationToken: () => cancellationToken, + getCanonicalFileName: filename => useCaseSensitivefilenames ? filename : filename.toLowerCase(), + useCaseSensitiveFileNames: () => useCaseSensitivefilenames, + getNewLine: () => "\r\n", + getDefaultLibFilename: getDefaultLibraryFilename, + writeFile: (filename, data, writeByteOrderMark) => { }, + getCurrentDirectory: () => host.getCurrentDirectory() + }); typeInfoResolver = program.getTypeChecker(/*produceDiagnostics*/ false); } From ba239c5812aff528db3b080270a2bd4ad6bb12fe Mon Sep 17 00:00:00 2001 From: Yui T Date: Thu, 15 Jan 2015 17:12:44 -0800 Subject: [PATCH 027/211] Address code review --- src/compiler/emitter.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 2e8502c8859..9670b62af1b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3211,10 +3211,7 @@ module ts { } function isES6ArrowFunction(node: FunctionLikeDeclaration): boolean { - if (node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6) { - return true; - } - return false; + return node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6; } function emitFunctionDeclaration(node: FunctionLikeDeclaration) { @@ -3289,11 +3286,7 @@ module ts { } var outPos = writer.getTextPos(); - // In ES6, fat arrow function lexically binds this value. Therefore, when targeting es6, we can omit capturing of "this" in the fat arrow function - if (!isES6ArrowFunction(node)) { - emitCaptureThisForNodeIfNecessary(node); - } - + emitCaptureThisForNodeIfNecessary(node); emitDefaultValueAssignments(node); emitRestParameter(node); if (node.body.kind !== SyntaxKind.Block && outPos === writer.getTextPos()) { From 45ac06a0f217e19e9d86c78cdf5abd455b9d3eb6 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 16 Jan 2015 12:02:12 -0800 Subject: [PATCH 028/211] move line map related function out of SourceFile --- src/compiler/emitter.ts | 10 +++++----- src/compiler/parser.ts | 17 ----------------- src/compiler/scanner.ts | 17 ++++++++++++----- src/compiler/tsc.ts | 4 ++-- src/compiler/types.ts | 7 +++---- src/compiler/utilities.ts | 2 +- src/harness/fourslash.ts | 2 +- src/harness/harnessLanguageService.ts | 4 ++-- src/services/services.ts | 21 +++++++++++++++++---- 9 files changed, 43 insertions(+), 41 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index d82e577971d..a0c0dc45b15 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -134,7 +134,7 @@ module ts { } function getLineOfLocalPosition(currentSourceFile: SourceFile, pos: number) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + return getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile: SourceFile, writer: EmitTextWriter, node: TextRange, leadingComments: CommentRange[]) { @@ -169,15 +169,15 @@ module ts { function writeCommentRange(currentSourceFile: SourceFile, writer: EmitTextWriter, comment: CommentRange, newLine: string){ if (currentSourceFile.text.charCodeAt(comment.pos + 1) === CharacterCodes.asterisk) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var firstCommentLineAndCharacter = getLineAndCharacterOfPosition(currentSourceFile, comment.pos); var firstCommentLineIndent: number; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, /*character*/1); + var nextLineStart = getPositionFromLineAndCharacter(currentSourceFile, currentLine + 1, /*character*/1); if (pos !== comment.pos) { // If we are not emitting first line, we need to write the spaces to adjust the alignment if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, /*character*/1), + firstCommentLineIndent = calculateIndent(getPositionFromLineAndCharacter(currentSourceFile, firstCommentLineAndCharacter.line, /*character*/1), comment.pos); } @@ -1644,7 +1644,7 @@ module ts { } function recordSourceMapSpan(pos: number) { - var sourceLinePos = currentSourceFile.getLineAndCharacterFromPosition(pos); + var sourceLinePos = getLineAndCharacterOfPosition(currentSourceFile, pos); var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5ae44e5ff39..19efe77a278 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -501,7 +501,6 @@ module ts { var identifiers: Map; var identifierCount = 0; var nodeCount = 0; - var lineStarts: number[]; var syntacticDiagnostics: Diagnostic[]; var scanner: Scanner; var token: SyntaxKind; @@ -593,7 +592,6 @@ module ts { sourceText = text; parsingContext = 0; identifiers = {}; - lineStarts = undefined; syntacticDiagnostics = undefined; contextFlags = 0; parseErrorBeforeNextFinishedNode = false; @@ -612,9 +610,6 @@ module ts { sourceFile.filename = normalizePath(filename); sourceFile.text = sourceText; - sourceFile.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; - sourceFile.getPositionFromLineAndCharacter = getPositionFromSourceLineAndCharacter; - sourceFile.getLineStarts = getLineStarts; sourceFile.getSyntacticDiagnostics = getSyntacticDiagnostics; sourceFile.update = update; @@ -1072,18 +1067,6 @@ module ts { return (contextFlags & ParserContextFlags.DisallowIn) !== 0; } - function getLineStarts(): number[] { - return lineStarts || (lineStarts = computeLineStarts(sourceText)); - } - - function getLineAndCharacterFromSourcePosition(position: number) { - return getLineAndCharacterOfPosition(getLineStarts(), position); - } - - function getPositionFromSourceLineAndCharacter(line: number, character: number): number { - return getPositionFromLineAndCharacter(getLineStarts(), line, character); - } - function parseErrorAtCurrentToken(message: DiagnosticMessage, arg0?: any): void { var start = scanner.getTokenPos(); var length = scanner.getTextPos() - start; diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 2a0363f7f78..2f475cb6768 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -278,12 +278,20 @@ module ts { return result; } - export function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number { + export function getPositionFromLineAndCharacter(sourceFile: SourceFile, line: number, character: number): number { + return computePositionFromLineAndCharacter(getLineStarts(sourceFile), line, character); + } + + export function computePositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number { Debug.assert(line > 0); return lineStarts[line - 1] + character - 1; } - export function getLineAndCharacterOfPosition(lineStarts: number[], position: number) { + export function getLineStarts(sourceFile: SourceFile): number[] { + return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); + } + + export function computeLineAndCharacterOfPosition(lineStarts: number[], position: number) { var lineNumber = binarySearch(lineStarts, position); if (lineNumber < 0) { // If the actual position was not found, @@ -298,9 +306,8 @@ module ts { }; } - export function positionToLineAndCharacter(text: string, pos: number) { - var lineStarts = computeLineStarts(text); - return getLineAndCharacterOfPosition(lineStarts, pos); + export function getLineAndCharacterOfPosition(sourceFile: SourceFile, position: number): LineAndCharacter { + return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } var hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 9d038920693..443abf5e57c 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -68,7 +68,7 @@ module ts { function countLines(program: Program): number { var count = 0; forEach(program.getSourceFiles(), file => { - count += file.getLineAndCharacterFromPosition(file.end).line; + count += getLineAndCharacterOfPosition(file, file.end).line; }); return count; } @@ -82,7 +82,7 @@ module ts { var output = ""; if (diagnostic.file) { - var loc = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + var loc = getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start); output += diagnostic.file.filename + "(" + loc.line + "," + loc.character + "): "; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9ebab8dc220..9d899ccd21d 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -881,10 +881,6 @@ module ts { filename: string; text: string; - getLineAndCharacterFromPosition(position: number): LineAndCharacter; - getPositionFromLineAndCharacter(line: number, character: number): number; - getLineStarts(): number[]; - // Produces a new SourceFile for the 'newText' provided. The 'textChangeRange' parameter // indicates what changed between the 'text' that this SourceFile has and the 'newText'. // The SourceFile will be created with the compiler attempting to reuse as many nodes from @@ -920,6 +916,9 @@ module ts { symbolCount: number; languageVersion: ScriptTarget; identifiers: Map; + + // Stores a line map for the file. This field should never be used directly to obtain line map, use getLineMap function instead. + lineMap: number[]; } export interface ScriptReferenceHost { diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 7494ec9f6cb..b451cac5423 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -109,7 +109,7 @@ module ts { // This is a useful function for debugging purposes. export function nodePosToString(node: Node): string { var file = getSourceFileOfNode(node); - var loc = file.getLineAndCharacterFromPosition(node.pos); + var loc = getLineAndCharacterOfPosition(file, node.pos); return file.filename + "(" + loc.line + "," + loc.character + ")"; } diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index cfc83af76e5..d320ceb0d98 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -391,7 +391,7 @@ module FourSlash { this.currentCaretPosition = pos; var lineStarts = ts.computeLineStarts(this.getCurrentFileContent()); - var lineCharPos = ts.getLineAndCharacterOfPosition(lineStarts, pos); + var lineCharPos = ts.computeLineAndCharacterOfPosition(lineStarts, pos); this.scenarioActions.push(''); } diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 97885bdd20e..9cebfb2078b 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -292,7 +292,7 @@ module Harness.LanguageService { assert.isTrue(line >= 1); assert.isTrue(col >= 1); - return ts.getPositionFromLineAndCharacter(script.lineMap, line, col); + return ts.computePositionFromLineAndCharacter(script.lineMap, line, col); } /** @@ -303,7 +303,7 @@ module Harness.LanguageService { var script: ScriptInfo = this.fileNameToScript[fileName]; assert.isNotNull(script); - var result = ts.getLineAndCharacterOfPosition(script.lineMap, position); + var result = ts.computeLineAndCharacterOfPosition(script.lineMap, position); assert.isTrue(result.line >= 1); assert.isTrue(result.character >= 1); diff --git a/src/services/services.ts b/src/services/services.ts index 1618fb6e276..62d55bb1d61 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -61,6 +61,9 @@ module ts { scriptSnapshot: IScriptSnapshot; getNamedDeclarations(): Declaration[]; + getLineAndCharacterFromPosition(pos: number): LineAndCharacter; + getLineStarts(): number[]; + getPositionFromLineAndCharacter(line: number, character: number): number; } /** @@ -721,18 +724,16 @@ module ts { public filename: string; public text: string; public scriptSnapshot: IScriptSnapshot; + public lineMap: number[]; public statements: NodeArray; public endOfFileToken: Node; // These methods will have their implementation provided by the implementation the // compiler actually exports off of SourceFile. - public getLineAndCharacterFromPosition: (position: number) => LineAndCharacter; - public getPositionFromLineAndCharacter: (line: number, character: number) => number; - public getLineStarts: () => number[]; public getSyntacticDiagnostics: () => Diagnostic[]; public update: (newText: string, textChangeRange: TextChangeRange) => SourceFile; - + public amdDependencies: string[]; public amdModuleName: string; public referencedFiles: FileReference[]; @@ -753,6 +754,18 @@ module ts { private namedDeclarations: Declaration[]; + public getLineAndCharacterFromPosition(position: number): LineAndCharacter { + return getLineAndCharacterOfPosition(this, position); + } + + public getLineStarts(): number[] { + return getLineStarts(this); + } + + public getPositionFromLineAndCharacter(line: number, character: number): number { + return getPositionFromLineAndCharacter(this, line, character); + } + public getNamedDeclarations() { if (!this.namedDeclarations) { var sourceFile = this; From c40977c5fb2fad48f398695c15d0fa634352403c Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 16 Jan 2015 12:32:37 -0800 Subject: [PATCH 029/211] move getSyntacticDiagnostics out of SourceFile --- src/compiler/parser.ts | 22 ++++++++++------------ src/compiler/program.ts | 2 +- src/compiler/types.ts | 10 +++++++--- src/harness/fourslash.ts | 4 ++-- src/services/services.ts | 2 +- tests/cases/unittests/incrementalParser.ts | 4 ++-- 6 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 19efe77a278..fc0086eb7dc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -356,6 +356,16 @@ module ts { forEachChild(sourceFile, walk); } + export function getSyntacticDiagnostics(sourceFile: SourceFile) { + if (!sourceFile.syntacticDiagnostics) { + // Don't bother doing any grammar checks if there are already parser errors. + // Otherwise we may end up with too many cascading errors. + sourceFile.syntacticDiagnostics = sourceFile.referenceDiagnostics.concat(sourceFile.parseDiagnostics); + } + return sourceFile.syntacticDiagnostics; + } + + export function isEvalOrArgumentsIdentifier(node: Node): boolean { return node.kind === SyntaxKind.Identifier && ((node).text === "eval" || (node).text === "arguments"); @@ -610,7 +620,6 @@ module ts { sourceFile.filename = normalizePath(filename); sourceFile.text = sourceText; - sourceFile.getSyntacticDiagnostics = getSyntacticDiagnostics; sourceFile.update = update; processReferenceComments(sourceFile); @@ -4724,17 +4733,6 @@ module ts { ? node : undefined); } - - function getSyntacticDiagnostics() { - if (syntacticDiagnostics === undefined) { - // Don't bother doing any grammar checks if there are already parser errors. - // Otherwise we may end up with too many cascading errors. - syntacticDiagnostics = sourceFile.referenceDiagnostics.concat(sourceFile.parseDiagnostics); - } - - Debug.assert(syntacticDiagnostics !== undefined); - return syntacticDiagnostics; - } } export function isLeftHandSideExpression(expr: Expression): boolean { diff --git a/src/compiler/program.ts b/src/compiler/program.ts index fc3cc0682d1..67d05b2c571 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -245,7 +245,7 @@ module ts { else { files.push(file); } - forEach(file.getSyntacticDiagnostics(), e => { + forEach(getSyntacticDiagnostics(file), e => { errors.push(e); }); } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9d899ccd21d..9f127cf2e5b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -903,12 +903,15 @@ module ts { // missing tokens, or tokens it didn't know how to deal with). parseDiagnostics: Diagnostic[]; - // Returns all syntactic diagnostics (i.e. the reference, parser and grammar diagnostics). - getSyntacticDiagnostics(): Diagnostic[]; + //getSyntacticDiagnostics(): Diagnostic[]; // File level diagnostics reported by the binder. semanticDiagnostics: Diagnostic[]; + // Returns all syntactic diagnostics (i.e. the reference, parser and grammar diagnostics). + // This field should never be used directly, use getSyntacticDiagnostics function instead. + syntacticDiagnostics: Diagnostic[]; + hasNoDefaultLib: boolean; externalModuleIndicator: Node; // The first node that causes this file to be an external module nodeCount: number; @@ -917,7 +920,8 @@ module ts { languageVersion: ScriptTarget; identifiers: Map; - // Stores a line map for the file. This field should never be used directly to obtain line map, use getLineMap function instead. + // Stores a line map for the file. + // This field should never be used directly to obtain line map, use getLineMap function instead. lineMap: number[]; } diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index d320ceb0d98..2a2a9cd1c2b 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -1384,7 +1384,7 @@ module FourSlash { var incrementalSourceFile = this.languageService.getSourceFile(this.activeFile.fileName); Utils.assertInvariants(incrementalSourceFile, /*parent:*/ undefined); - var incrementalSyntaxDiagnostics = incrementalSourceFile.getSyntacticDiagnostics(); + var incrementalSyntaxDiagnostics = ts.getSyntacticDiagnostics(incrementalSourceFile); // Check syntactic structure var snapshot = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName); @@ -1392,7 +1392,7 @@ module FourSlash { var referenceSourceFile = ts.createLanguageServiceSourceFile( this.activeFile.fileName, createScriptSnapShot(content), ts.ScriptTarget.Latest, /*version:*/ "0", /*isOpen:*/ false, /*setNodeParents:*/ false); - var referenceSyntaxDiagnostics = referenceSourceFile.getSyntacticDiagnostics(); + var referenceSyntaxDiagnostics = ts.getSyntacticDiagnostics(referenceSourceFile); Utils.assertDiagnosticsEquals(incrementalSyntaxDiagnostics, referenceSyntaxDiagnostics); Utils.assertStructuralEquals(incrementalSourceFile, referenceSourceFile); diff --git a/src/services/services.ts b/src/services/services.ts index 62d55bb1d61..e72fb7d3239 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -731,13 +731,13 @@ module ts { // These methods will have their implementation provided by the implementation the // compiler actually exports off of SourceFile. - public getSyntacticDiagnostics: () => Diagnostic[]; public update: (newText: string, textChangeRange: TextChangeRange) => SourceFile; public amdDependencies: string[]; public amdModuleName: string; public referencedFiles: FileReference[]; + public syntacticDiagnostics: Diagnostic[]; public referenceDiagnostics: Diagnostic[]; public parseDiagnostics: Diagnostic[]; public semanticDiagnostics: Diagnostic[]; diff --git a/tests/cases/unittests/incrementalParser.ts b/tests/cases/unittests/incrementalParser.ts index a3875cf8e8c..80ca539b019 100644 --- a/tests/cases/unittests/incrementalParser.ts +++ b/tests/cases/unittests/incrementalParser.ts @@ -24,8 +24,8 @@ module ts { } function assertSameDiagnostics(file1: SourceFile, file2: SourceFile) { - var diagnostics1 = file1.getSyntacticDiagnostics(); - var diagnostics2 = file2.getSyntacticDiagnostics(); + var diagnostics1 = getSyntacticDiagnostics(file1); + var diagnostics2 = getSyntacticDiagnostics(file2); assert.equal(diagnostics1.length, diagnostics2.length, "diagnostics1.length !== diagnostics2.length"); for (var i = 0, n = diagnostics1.length; i < n; i++) { From c46662fa7227115144d2e374fae7c376e7e683fc Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 16 Jan 2015 12:58:10 -0800 Subject: [PATCH 030/211] Fixes the duplicate doc comment display in case of union property Handles #1237 --- src/services/services.ts | 65 ++++++++++++++------------ tests/cases/fourslash/commentsUnion.ts | 7 +++ 2 files changed, 43 insertions(+), 29 deletions(-) create mode 100644 tests/cases/fourslash/commentsUnion.ts diff --git a/src/services/services.ts b/src/services/services.ts index 1618fb6e276..a88b31bd2fe 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -335,36 +335,43 @@ module ts { var paramTag = "@param"; var jsDocCommentParts: SymbolDisplayPart[] = []; - ts.forEach(declarations, declaration => { - var sourceFileOfDeclaration = getSourceFileOfNode(declaration); - // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments - if (canUseParsedParamTagComments && declaration.kind === SyntaxKind.Parameter) { - ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), jsDocCommentTextRange => { - var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedParamJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); - } - }); + ts.forEach(declarations,(declaration, indexOfDeclaration) => { + if (indexOf(declarations, declaration) === indexOfDeclaration) { + // Already collected the doc comments from this declaration. + // Eg. var a: Array | Array; a.length + // The property length will have two declarations of property length coming + // from Array - Array and Array + + var sourceFileOfDeclaration = getSourceFileOfNode(declaration); + // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments + if (canUseParsedParamTagComments && declaration.kind === SyntaxKind.Parameter) { + ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), jsDocCommentTextRange => { + var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedParamJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); + } + }); + } + + // If this is left side of dotted module declaration, there is no doc comments associated with this node + if (declaration.kind === SyntaxKind.ModuleDeclaration && (declaration).body.kind === SyntaxKind.ModuleDeclaration) { + return; + } + + // 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; + } + + // Get the cleaned js doc comment text from the declaration + ts.forEach(getJsDocCommentTextRange( + declaration.kind === SyntaxKind.VariableDeclaration ? declaration.parent.parent : declaration, sourceFileOfDeclaration), jsDocCommentTextRange => { + var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); + } + }); } - - // If this is left side of dotted module declaration, there is no doc comments associated with this node - if (declaration.kind === SyntaxKind.ModuleDeclaration && (declaration).body.kind === SyntaxKind.ModuleDeclaration) { - return; - } - - // 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; - } - - // Get the cleaned js doc comment text from the declaration - ts.forEach(getJsDocCommentTextRange( - declaration.kind === SyntaxKind.VariableDeclaration ? declaration.parent.parent : declaration, sourceFileOfDeclaration), jsDocCommentTextRange => { - var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); - } - }); }); return jsDocCommentParts; diff --git a/tests/cases/fourslash/commentsUnion.ts b/tests/cases/fourslash/commentsUnion.ts new file mode 100644 index 00000000000..568e0d93cde --- /dev/null +++ b/tests/cases/fourslash/commentsUnion.ts @@ -0,0 +1,7 @@ +/// + +////var a: Array | Array; +////a./*1*/length + +goTo.marker('1'); +verify.quickInfoIs("(property) length: number", "Gets or sets the length of the array. This is a number one higher than the highest element defined in an array."); \ No newline at end of file From cf8c21893a07774c48b6051e48f399905e8421e6 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 16 Jan 2015 16:22:11 -0800 Subject: [PATCH 031/211] moved update function out of SourceFile --- src/compiler/parser.ts | 784 +++++++++++++++++++-------------------- src/compiler/types.ts | 11 - src/services/services.ts | 2 +- 3 files changed, 392 insertions(+), 405 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index fc0086eb7dc..c5eecd19d04 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -365,6 +365,358 @@ module ts { return sourceFile.syntacticDiagnostics; } + function moveElementEntirelyPastChangeRange(element: IncrementalElement, delta: number) { + if (element.length) { + visitArray(element); + } + else { + visitNode(element); + } + + function visitNode(node: IncrementalNode) { + // Ditch any existing LS children we may have created. This way we can avoid + // moving them forward. + node._children = undefined; + node.pos += delta; + node.end += delta; + + forEachChild(node, visitNode, visitArray); + } + + function visitArray(array: IncrementalNodeArray) { + array.pos += delta; + array.end += delta; + + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + } + + function adjustIntersectingElement(element: IncrementalElement, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number) { + Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); + Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); + + // We have an element that intersects the change range in some way. It may have its + // start, or its end (or both) in the changed range. We want to adjust any part + // that intersects such that the final tree is in a consistent state. i.e. all + // chlidren have spans within the span of their parent, and all siblings are ordered + // properly. + + // We may need to update both the 'pos' and the 'end' of the element. + + // If the 'pos' is before the start of the change, then we don't need to touch it. + // If it isn't, then the 'pos' must be inside the change. How we update it will + // depend if delta is positive or negative. If delta is positive then we have + // something like: + // + // -------------------AAA----------------- + // -------------------BBBCCCCCCC----------------- + // + // In this case, we consider any node that started in the change range to still be + // starting at the same position. + // + // however, if the delta is negative, then we instead have something like this: + // + // -------------------XXXYYYYYYY----------------- + // -------------------ZZZ----------------- + // + // In this case, any element that started in the 'X' range will keep its position. + // However any element htat started after that will have their pos adjusted to be + // at the end of the new range. i.e. any node that started in the 'Y' range will + // be adjusted to have their start at the end of the 'Z' range. + // + // The element will keep its position if possible. Or Move backward to the new-end + // if it's in the 'Y' range. + element.pos = Math.min(element.pos, changeRangeNewEnd); + + // If the 'end' is after the change range, then we always adjust it by the delta + // amount. However, if the end is in the change range, then how we adjust it + // will depend on if delta is positive or negative. If delta is positive then we + // have something like: + // + // -------------------AAA----------------- + // -------------------BBBCCCCCCC----------------- + // + // In this case, we consider any node that ended inside the change range to keep its + // end position. + // + // however, if the delta is negative, then we instead have something like this: + // + // -------------------XXXYYYYYYY----------------- + // -------------------ZZZ----------------- + // + // In this case, any element that ended in the 'X' range will keep its position. + // However any element htat ended after that will have their pos adjusted to be + // at the end of the new range. i.e. any node that ended in the 'Y' range will + // be adjusted to have their end at the end of the 'Z' range. + if (element.end >= changeRangeOldEnd) { + // Element ends after the change range. Always adjust the end pos. + element.end += delta; + } + else { + // Element ends in the change range. The element will keep its position if + // possible. Or Move backward to the new-end if it's in the 'Y' range. + element.end = Math.min(element.end, changeRangeNewEnd); + } + + Debug.assert(element.pos <= element.end); + if (element.parent) { + Debug.assert(element.pos >= element.parent.pos); + Debug.assert(element.end <= element.parent.end); + } + } + + function updateTokenPositionsAndMarkElements(node: IncrementalNode, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number): void { + visitNode(node); + + function visitNode(child: IncrementalNode) { + if (child.pos > changeRangeOldEnd) { + // Node is entirely past the change range. We need to move both its pos and + // end, forward or backward appropriately. + moveElementEntirelyPastChangeRange(child, delta); + return; + } + + // Check if the element intersects the change range. If it does, then it is not + // reusable. Also, we'll need to recurse to see what constituent portions we may + // be able to use. + var fullEnd = child.end; + if (fullEnd >= changeStart) { + child.intersectsChange = true; + + // Adjust the pos or end (or both) of the intersecting element accordingly. + adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + forEachChild(child, visitNode, visitArray); + return; + } + + // Otherwise, the node is entirely before the change range. No need to do anything with it. + } + + function visitArray(array: IncrementalNodeArray) { + if (array.pos > changeRangeOldEnd) { + // Array is entirely after the change range. We need to move it, and move any of + // its children. + moveElementEntirelyPastChangeRange(array, delta); + } + else { + // Check if the element intersects the change range. If it does, then it is not + // reusable. Also, we'll need to recurse to see what constituent portions we may + // be able to use. + var fullEnd = array.end; + if (fullEnd >= changeStart) { + array.intersectsChange = true; + + // Adjust the pos or end (or both) of the intersecting array accordingly. + adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + // else { + // Otherwise, the array is entirely before the change range. No need to do anything with it. + // } + } + } + } + + + function extendToAffectedRange(sourceFile: SourceFile, changeRange: TextChangeRange): TextChangeRange { + // Consider the following code: + // void foo() { /; } + // + // If the text changes with an insertion of / just before the semicolon then we end up with: + // void foo() { //; } + // + // If we were to just use the changeRange a is, then we would not rescan the { token + // (as it does not intersect the actual original change range). Because an edit may + // change the token touching it, we actually need to look back *at least* one token so + // that the prior token sees that change. + var maxLookahead = 1; + + var start = changeRange.span.start; + + // the first iteration aligns us with the change start. subsequent iteration move us to + // the left by maxLookahead tokens. We only need to do this as long as we're not at the + // start of the tree. + for (var i = 0; start > 0 && i <= maxLookahead; i++) { + var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + var position = nearestNode.pos; + + start = Math.max(0, position - 1); + } + + var finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span)); + var finalLength = changeRange.newLength + (changeRange.span.start - start); + + return createTextChangeRange(finalSpan, finalLength); + } + + function findNearestNodeStartingBeforeOrAtPosition(sourceFile: SourceFile, position: number): Node { + var bestResult: Node = sourceFile; + var lastNodeEntirelyBeforePosition: Node; + + forEachChild(sourceFile, visit); + + if (lastNodeEntirelyBeforePosition) { + var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); + if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { + bestResult = lastChildOfLastEntireNodeBeforePosition; + } + } + + return bestResult; + + function getLastChild(node: Node): Node { + while (true) { + var lastChild = getLastChildWorker(node); + if (lastChild) { + node = lastChild; + } + else { + return node; + } + } + } + + function getLastChildWorker(node: Node): Node { + var last: Node = undefined; + forEachChild(node, child => { + if (nodeIsPresent(child)) { + last = child; + } + }); + return last; + } + + function visit(child: Node) { + if (nodeIsMissing(child)) { + // Missing nodes are effectively invisible to us. We never even consider them + // When trying to find the nearest node before us. + return; + } + + // If the child intersects this position, then this node is currently the nearest + // node that starts before the position. + if (child.pos <= position) { + if (child.pos >= bestResult.pos) { + // This node starts before the position, and is closer to the position than + // the previous best node we found. It is now the new best node. + bestResult = child; + } + + // Now, the node may overlap the position, or it may end entirely before the + // position. If it overlaps with the position, then either it, or one of its + // children must be the nearest node before the position. So we can just + // recurse into this child to see if we can find something better. + if (position < child.end) { + // The nearest node is either this child, or one of the children inside + // of it. We've already marked this child as the best so far. Recurse + // in case one of the children is better. + forEachChild(child, visit); + + // Once we look at the children of this node, then there's no need to + // continue any further. + return true; + } + else { + Debug.assert(child.end <= position); + // The child ends entirely before this position. Say you have the following + // (where $ is the position) + // + // ? $ : <...> <...> + // + // We would want to find the nearest preceding node in "complex expr 2". + // To support that, we keep track of this node, and once we're done searching + // for a best node, we recurse down this node to see if we can find a good + // result in it. + // + // This approach allows us to quickly skip over nodes that are entirely + // before the position, while still allowing us to find any nodes in the + // last one that might be what we want. + lastNodeEntirelyBeforePosition = child; + } + } + else { + Debug.assert(child.pos > position); + // We're now at a node that is entirely past the position we're searching for. + // This node (and all following nodes) could never contribute to the result, + // so just skip them by returning 'true' here. + return true; + } + } + } + + + // Produces a new SourceFile for the 'newText' provided. The 'textChangeRange' parameter + // indicates what changed between the 'text' that this SourceFile has and the 'newText'. + // The SourceFile will be created with the compiler attempting to reuse as many nodes from + // this file as possible. + // + // Note: this function mutates nodes from this SourceFile. That means any existing nodes + // from this SourceFile that are being held onto may change as a result (including + // becoming detached from any SourceFile). It is recommended that this SourceFile not + // be used once 'update' is called on it. + export function update(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile { + if (textChangeRangeIsUnchanged(textChangeRange)) { + // if the text didn't change, then we can just return our current source file as-is. + return sourceFile; + } + + if (sourceFile.statements.length === 0) { + // If we don't have any statements in the current source file, then there's no real + // way to incrementally parse. So just do a full parse instead. + return parseSourceFile(sourceFile.filename, newText, sourceFile.languageVersion,/*syntaxCursor*/ undefined, /*setNodeParents*/ true) + } + + var syntaxCursor = createSyntaxCursor(sourceFile); + + // Make the actual change larger so that we know to reparse anything whose lookahead + // might have intersected the change. + var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + + // The is the amount the nodes after the edit range need to be adjusted. It can be + // positive (if the edit added characters), negative (if the edit deleted characters) + // or zero (if this was a pure overwrite with nothing added/removed). + var delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; + + // If we added or removed characters during the edit, then we need to go and adjust all + // the nodes after the edit. Those nodes may move forward down (if we inserted chars) + // or they may move backward (if we deleted chars). + // + // Doing this helps us out in two ways. First, it means that any nodes/tokens we want + // to reuse are already at the appropriate position in the new text. That way when we + // reuse them, we don't have to figure out if they need to be adjusted. Second, it makes + // it very easy to determine if we can reuse a node. If the node's position is at where + // we are in the text, then we can reuse it. Otherwise we can't. If hte node's position + // is ahead of us, then we'll need to rescan tokens. If the node's position is behind + // us, then we'll need to skip it or crumble it as appropriate + // + // We will also adjust the positions of nodes that intersect the change range as well. + // By doing this, we ensure that all the positions in the old tree are consistent, not + // just the positions of nodes entirely before/after the change range. By being + // consistent, we can then easily map from positions to nodes in the old tree easily. + // + // Also, mark any syntax elements that intersect the changed span. We know, up front, + // that we cannot reuse these elements. + updateTokenPositionsAndMarkElements(sourceFile, + changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta); + + // Now that we've set up our internal incremental state just proceed and parse the + // source file in the normal fashion. When possible the parser will retrieve and + // reuse nodes from the old tree. + // + // Note: passing in 'true' for setNodeParents is very important. When incrementally + // parsing, we will be reusing nodes from the old tree, and placing it into new + // parents. If we don't set the parents now, we'll end up with an observably + // inconsistent tree. Setting the parents on the new tree should be very fast. We + // will immediately bail out of walking any subtrees when we can see that their parents + // are already correct. + var result = parseSourceFile(sourceFile.filename, newText, sourceFile.languageVersion, syntaxCursor, /* setParentNode */ true) + + return result; + } export function isEvalOrArgumentsIdentifier(node: Node): boolean { return node.kind === SyntaxKind.Identifier && @@ -505,16 +857,27 @@ module ts { } } } - export function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes = false): SourceFile { - var parsingContext: ParsingContext; - var identifiers: Map; + return parseSourceFile(filename, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes); + } + + function parseSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, syntaxCursor: SyntaxCursor, setParentNodes = false): SourceFile { + var parsingContext: ParsingContext = 0; + var identifiers: Map = {}; var identifierCount = 0; var nodeCount = 0; - var syntacticDiagnostics: Diagnostic[]; var scanner: Scanner; var token: SyntaxKind; - var syntaxCursor: SyntaxCursor; + + var sourceFile = createNode(SyntaxKind.SourceFile, /*pos*/ 0); + + sourceFile.pos = sourceFile.end = 0; + sourceFile.referenceDiagnostics = []; + sourceFile.parseDiagnostics = []; + sourceFile.semanticDiagnostics = []; + sourceFile.languageVersion = languageVersion; + sourceFile.filename = normalizePath(filename); + sourceFile.flags = fileExtensionIs(sourceFile.filename, ".d.ts") ? NodeFlags.DeclarationFile : 0; // Flags that dictate what parsing context we're in. For example: // Whether or not we are in strict parsing mode. All that changes in strict parsing mode is @@ -562,7 +925,7 @@ module ts { // Note: it should not be necessary to save/restore these flags during speculative/lookahead // parsing. These context flags are naturally stored and restored through normal recursive // descent parsing and unwinding. - var contextFlags: ParserContextFlags; + var contextFlags: ParserContextFlags = 0; // Whether or not we've had a parse error since creating the last AST node. If we have // encountered an error, it will be stored on the next AST node we create. Parse errors @@ -591,401 +954,36 @@ module ts { // // Note: any errors at the end of the file that do not precede a regular node, should get // attached to the EOF token. - var parseErrorBeforeNextFinishedNode: boolean; + var parseErrorBeforeNextFinishedNode: boolean = false; - var sourceFile: SourceFile; + sourceFile.syntacticDiagnostics = undefined; + sourceFile.referenceDiagnostics = []; + sourceFile.parseDiagnostics = []; + sourceFile.semanticDiagnostics = []; + sourceFile.end = sourceText.length; + sourceFile.text = sourceText; - return parseSourceFile(sourceText, setParentNodes); + // Create and prime the scanner before parsing the source elements. + scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); + token = nextToken(); - function parseSourceFile(text: string, setParentNodes: boolean): SourceFile { - // Set our initial state before parsing. - sourceText = text; - parsingContext = 0; - identifiers = {}; - syntacticDiagnostics = undefined; - contextFlags = 0; - parseErrorBeforeNextFinishedNode = false; + processReferenceComments(sourceFile); - sourceFile = createNode(SyntaxKind.SourceFile, 0); - sourceFile.referenceDiagnostics = []; - sourceFile.parseDiagnostics = []; - sourceFile.semanticDiagnostics = []; + sourceFile.statements = parseList(ParsingContext.SourceElements, /*checkForStrictMode*/ true, parseSourceElement); + Debug.assert(token === SyntaxKind.EndOfFileToken); + sourceFile.endOfFileToken = parseTokenNode(); - // Create and prime the scanner before parsing the source elements. - scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); - token = nextToken(); + setExternalModuleIndicator(sourceFile); - sourceFile.flags = fileExtensionIs(filename, ".d.ts") ? NodeFlags.DeclarationFile : 0; - sourceFile.end = sourceText.length; - sourceFile.filename = normalizePath(filename); - sourceFile.text = sourceText; + sourceFile.nodeCount = nodeCount; + sourceFile.identifierCount = identifierCount; + sourceFile.identifiers = identifiers; - sourceFile.update = update; - - processReferenceComments(sourceFile); - - sourceFile.statements = parseList(ParsingContext.SourceElements, /*checkForStrictMode*/ true, parseSourceElement); - Debug.assert(token === SyntaxKind.EndOfFileToken); - sourceFile.endOfFileToken = parseTokenNode(); - - setExternalModuleIndicator(sourceFile); - - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.languageVersion = languageVersion; - sourceFile.identifiers = identifiers; - - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - - return sourceFile; + if (setParentNodes) { + fixupParentReferences(sourceFile); } - function update(newText: string, textChangeRange: TextChangeRange) { - if (textChangeRangeIsUnchanged(textChangeRange)) { - // if the text didn't change, then we can just return our current source file as-is. - return sourceFile; - } - - if (sourceFile.statements.length === 0) { - // If we don't have any statements in the current source file, then there's no real - // way to incrementally parse. So just do a full parse instead. - return parseSourceFile(newText, /*setNodeParents*/ true); - } - - syntaxCursor = createSyntaxCursor(sourceFile); - - // Make the actual change larger so that we know to reparse anything whose lookahead - // might have intersected the change. - var changeRange = extendToAffectedRange(textChangeRange); - - // The is the amount the nodes after the edit range need to be adjusted. It can be - // positive (if the edit added characters), negative (if the edit deleted characters) - // or zero (if this was a pure overwrite with nothing added/removed). - var delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; - - // If we added or removed characters during the edit, then we need to go and adjust all - // the nodes after the edit. Those nodes may move forward down (if we inserted chars) - // or they may move backward (if we deleted chars). - // - // Doing this helps us out in two ways. First, it means that any nodes/tokens we want - // to reuse are already at the appropriate position in the new text. That way when we - // reuse them, we don't have to figure out if they need to be adjusted. Second, it makes - // it very easy to determine if we can reuse a node. If the node's position is at where - // we are in the text, then we can reuse it. Otherwise we can't. If hte node's position - // is ahead of us, then we'll need to rescan tokens. If the node's position is behind - // us, then we'll need to skip it or crumble it as appropriate - // - // We will also adjust the positions of nodes that intersect the change range as well. - // By doing this, we ensure that all the positions in the old tree are consistent, not - // just the positions of nodes entirely before/after the change range. By being - // consistent, we can then easily map from positions to nodes in the old tree easily. - // - // Also, mark any syntax elements that intersect the changed span. We know, up front, - // that we cannot reuse these elements. - updateTokenPositionsAndMarkElements(sourceFile, - changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta); - - // Now that we've set up our internal incremental state just proceed and parse the - // source file in the normal fashion. When possible the parser will retrieve and - // reuse nodes from the old tree. - // - // Note: passing in 'true' for setNodeParents is very important. When incrementally - // parsing, we will be reusing nodes from the old tree, and placing it into new - // parents. If we don't set the parents now, we'll end up with an observably - // inconsistent tree. Setting the parents on the new tree should be very fast. We - // will immediately bail out of walking any subtrees when we can see that their parents - // are already correct. - var result = parseSourceFile(newText, /*setNodeParents*/ true); - - // Clear out the syntax cursor so it doesn't keep anything alive longer than it should. - syntaxCursor = undefined; - - return result; - } - - function updateTokenPositionsAndMarkElements(node: IncrementalNode, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number): void { - visitNode(node); - - function visitNode(child: IncrementalNode) { - if (child.pos > changeRangeOldEnd) { - // Node is entirely past the change range. We need to move both its pos and - // end, forward or backward appropriately. - moveElementEntirelyPastChangeRange(child, delta); - return; - } - - // Check if the element intersects the change range. If it does, then it is not - // reusable. Also, we'll need to recurse to see what constituent portions we may - // be able to use. - var fullEnd = child.end; - if (fullEnd >= changeStart) { - child.intersectsChange = true; - - // Adjust the pos or end (or both) of the intersecting element accordingly. - adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - forEachChild(child, visitNode, visitArray); - return; - } - - // Otherwise, the node is entirely before the change range. No need to do anything with it. - } - - function visitArray(array: IncrementalNodeArray) { - if (array.pos > changeRangeOldEnd) { - // Array is entirely after the change range. We need to move it, and move any of - // its children. - moveElementEntirelyPastChangeRange(array, delta); - } - else { - // Check if the element intersects the change range. If it does, then it is not - // reusable. Also, we'll need to recurse to see what constituent portions we may - // be able to use. - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - - // Adjust the pos or end (or both) of the intersecting array accordingly. - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - // else { - // Otherwise, the array is entirely before the change range. No need to do anything with it. - // } - } - } - } - - function adjustIntersectingElement(element: IncrementalElement, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number) { - Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); - Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); - - // We have an element that intersects the change range in some way. It may have its - // start, or its end (or both) in the changed range. We want to adjust any part - // that intersects such that the final tree is in a consistent state. i.e. all - // chlidren have spans within the span of their parent, and all siblings are ordered - // properly. - - // We may need to update both the 'pos' and the 'end' of the element. - - // If the 'pos' is before the start of the change, then we don't need to touch it. - // If it isn't, then the 'pos' must be inside the change. How we update it will - // depend if delta is positive or negative. If delta is positive then we have - // something like: - // - // -------------------AAA----------------- - // -------------------BBBCCCCCCC----------------- - // - // In this case, we consider any node that started in the change range to still be - // starting at the same position. - // - // however, if the delta is negative, then we instead have something like this: - // - // -------------------XXXYYYYYYY----------------- - // -------------------ZZZ----------------- - // - // In this case, any element that started in the 'X' range will keep its position. - // However any element htat started after that will have their pos adjusted to be - // at the end of the new range. i.e. any node that started in the 'Y' range will - // be adjusted to have their start at the end of the 'Z' range. - // - // The element will keep its position if possible. Or Move backward to the new-end - // if it's in the 'Y' range. - element.pos = Math.min(element.pos, changeRangeNewEnd); - - // If the 'end' is after the change range, then we always adjust it by the delta - // amount. However, if the end is in the change range, then how we adjust it - // will depend on if delta is positive or negative. If delta is positive then we - // have something like: - // - // -------------------AAA----------------- - // -------------------BBBCCCCCCC----------------- - // - // In this case, we consider any node that ended inside the change range to keep its - // end position. - // - // however, if the delta is negative, then we instead have something like this: - // - // -------------------XXXYYYYYYY----------------- - // -------------------ZZZ----------------- - // - // In this case, any element that ended in the 'X' range will keep its position. - // However any element htat ended after that will have their pos adjusted to be - // at the end of the new range. i.e. any node that ended in the 'Y' range will - // be adjusted to have their end at the end of the 'Z' range. - if (element.end >= changeRangeOldEnd) { - // Element ends after the change range. Always adjust the end pos. - element.end += delta; - } - else { - // Element ends in the change range. The element will keep its position if - // possible. Or Move backward to the new-end if it's in the 'Y' range. - element.end = Math.min(element.end, changeRangeNewEnd); - } - - Debug.assert(element.pos <= element.end); - if (element.parent) { - Debug.assert(element.pos >= element.parent.pos); - Debug.assert(element.end <= element.parent.end); - } - } - - function moveElementEntirelyPastChangeRange(element: IncrementalElement, delta: number) { - if (element.length) { - visitArray(element); - } - else { - visitNode(element); - } - - function visitNode(node: IncrementalNode) { - // Ditch any existing LS children we may have created. This way we can avoid - // moving them forward. - node._children = undefined; - node.pos += delta; - node.end += delta; - - forEachChild(node, visitNode, visitArray); - } - - function visitArray(array: IncrementalNodeArray) { - array.pos += delta; - array.end += delta; - - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - } - - function extendToAffectedRange(changeRange: TextChangeRange): TextChangeRange { - // Consider the following code: - // void foo() { /; } - // - // If the text changes with an insertion of / just before the semicolon then we end up with: - // void foo() { //; } - // - // If we were to just use the changeRange a is, then we would not rescan the { token - // (as it does not intersect the actual original change range). Because an edit may - // change the token touching it, we actually need to look back *at least* one token so - // that the prior token sees that change. - var maxLookahead = 1; - - var start = changeRange.span.start; - - // the first iteration aligns us with the change start. subsequent iteration move us to - // the left by maxLookahead tokens. We only need to do this as long as we're not at the - // start of the tree. - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(start); - var position = nearestNode.pos; - - start = Math.max(0, position - 1); - } - - var finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start); - - return createTextChangeRange(finalSpan, finalLength); - } - - function findNearestNodeStartingBeforeOrAtPosition(position: number): Node { - var bestResult: Node = sourceFile; - var lastNodeEntirelyBeforePosition: Node; - - forEachChild(sourceFile, visit); - - if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); - if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { - bestResult = lastChildOfLastEntireNodeBeforePosition; - } - } - - return bestResult; - - function getLastChild(node: Node): Node { - while (true) { - var lastChild = getLastChildWorker(node); - if (lastChild) { - node = lastChild; - } - else { - return node; - } - } - } - - function getLastChildWorker(node: Node): Node { - var last:Node = undefined; - forEachChild(node, child => { - if (nodeIsPresent(child)) { - last = child; - } - }); - return last; - } - - function visit(child: Node) { - if (nodeIsMissing(child)) { - // Missing nodes are effectively invisible to us. We never even consider them - // When trying to find the nearest node before us. - return; - } - - // If the child intersects this position, then this node is currently the nearest - // node that starts before the position. - if (child.pos <= position) { - if (child.pos >= bestResult.pos) { - // This node starts before the position, and is closer to the position than - // the previous best node we found. It is now the new best node. - bestResult = child; - } - - // Now, the node may overlap the position, or it may end entirely before the - // position. If it overlaps with the position, then either it, or one of its - // children must be the nearest node before the position. So we can just - // recurse into this child to see if we can find something better. - if (position < child.end) { - // The nearest node is either this child, or one of the children inside - // of it. We've already marked this child as the best so far. Recurse - // in case one of the children is better. - forEachChild(child, visit); - - // Once we look at the children of this node, then there's no need to - // continue any further. - return true; - } - else { - Debug.assert(child.end <= position); - // The child ends entirely before this position. Say you have the following - // (where $ is the position) - // - // ? $ : <...> <...> - // - // We would want to find the nearest preceding node in "complex expr 2". - // To support that, we keep track of this node, and once we're done searching - // for a best node, we recurse down this node to see if we can find a good - // result in it. - // - // This approach allows us to quickly skip over nodes that are entirely - // before the position, while still allowing us to find any nodes in the - // last one that might be what we want. - lastNodeEntirelyBeforePosition = child; - } - } - else { - Debug.assert(child.pos > position); - // We're now at a node that is entirely past the position we're searching for. - // This node (and all following nodes) could never contribute to the result, - // so just skip them by returning 'true' here. - return true; - } - } - } + return sourceFile; function setContextFlag(val: Boolean, flag: ParserContextFlags) { if (val) { @@ -4670,7 +4668,7 @@ module ts { } function processReferenceComments(sourceFile: SourceFile): void { - var triviaScanner = createScanner(languageVersion, /*skipTrivia*/false, sourceText); + var triviaScanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/false, sourceText); var referencedFiles: FileReference[] = []; var amdDependencies: string[] = []; var amdModuleName: string; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9f127cf2e5b..82b0a526def 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -881,17 +881,6 @@ module ts { filename: string; text: string; - // Produces a new SourceFile for the 'newText' provided. The 'textChangeRange' parameter - // indicates what changed between the 'text' that this SourceFile has and the 'newText'. - // The SourceFile will be created with the compiler attempting to reuse as many nodes from - // this file as possible. - // - // Note: this function mutates nodes from this SourceFile. That means any existing nodes - // from this SourceFile that are being held onto may change as a result (including - // becoming detached from any SourceFile). It is recommended that this SourceFile not - // be used once 'update' is called on it. - update(newText: string, textChangeRange: TextChangeRange): SourceFile; - amdDependencies: string[]; amdModuleName: string; referencedFiles: FileReference[]; diff --git a/src/services/services.ts b/src/services/services.ts index e72fb7d3239..79a652bb094 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1587,7 +1587,7 @@ module ts { if (version !== sourceFile.version || isOpen != sourceFile.isOpen) { // Once incremental parsing is ready, then just call into this function. if (!disableIncrementalParsing) { - var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + var newSourceFile = update(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); return newSourceFile; } From edc65e1753a3e8ae1911a0b9e07b4f2f613de762 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 16 Jan 2015 18:19:47 -0800 Subject: [PATCH 032/211] addressed CR feedback: renamed update to updateSourceFile --- src/compiler/parser.ts | 2 +- src/services/services.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index c5eecd19d04..9ad9067d6fa 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -658,7 +658,7 @@ module ts { // from this SourceFile that are being held onto may change as a result (including // becoming detached from any SourceFile). It is recommended that this SourceFile not // be used once 'update' is called on it. - export function update(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile { + export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile { if (textChangeRangeIsUnchanged(textChangeRange)) { // if the text didn't change, then we can just return our current source file as-is. return sourceFile; diff --git a/src/services/services.ts b/src/services/services.ts index 79a652bb094..1b94899a1f5 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1587,7 +1587,7 @@ module ts { if (version !== sourceFile.version || isOpen != sourceFile.isOpen) { // Once incremental parsing is ready, then just call into this function. if (!disableIncrementalParsing) { - var newSourceFile = update(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + var newSourceFile = updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); return newSourceFile; } From 66f8257fc843aace8e1a14c9e64b16d8c4bcbedc Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 16 Jan 2015 21:23:51 -0800 Subject: [PATCH 033/211] Remove isOpen from souceFile and LanugageServiceHost interfaces --- src/harness/fourslash.ts | 2 +- src/harness/harnessLanguageService.ts | 14 +---- src/services/services.ts | 62 ++++++------------- src/services/shims.ts | 5 -- tests/cases/unittests/incrementalParser.ts | 4 +- .../unittests/services/documentRegistry.ts | 12 ++-- 6 files changed, 31 insertions(+), 68 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index cfc83af76e5..dc7d12cacb8 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -1391,7 +1391,7 @@ module FourSlash { var content = snapshot.getText(0, snapshot.getLength()); var referenceSourceFile = ts.createLanguageServiceSourceFile( - this.activeFile.fileName, createScriptSnapShot(content), ts.ScriptTarget.Latest, /*version:*/ "0", /*isOpen:*/ false, /*setNodeParents:*/ false); + this.activeFile.fileName, createScriptSnapShot(content), ts.ScriptTarget.Latest, /*version:*/ "0", /*setNodeParents:*/ false); var referenceSyntaxDiagnostics = referenceSourceFile.getSyntacticDiagnostics(); Utils.assertDiagnosticsEquals(incrementalSyntaxDiagnostics, referenceSyntaxDiagnostics); diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 18d55cc87c9..8107af053a4 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -7,7 +7,7 @@ module Harness.LanguageService { public editRanges: { length: number; textChangeRange: ts.TextChangeRange; }[] = []; public lineMap: number[] = null; - constructor(public fileName: string, public content: string, public isOpen = true) { + constructor(public fileName: string, public content: string) { this.setContent(content); } @@ -109,11 +109,9 @@ module Harness.LanguageService { fileName: string, compilationSettings: ts.CompilerOptions, scriptSnapshot: ts.IScriptSnapshot, - version: string, - isOpen: boolean): ts.SourceFile { + version: string): ts.SourceFile { var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), compilationSettings.target); sourceFile.version = version; - sourceFile.isOpen = isOpen; return sourceFile; } @@ -123,10 +121,9 @@ module Harness.LanguageService { compilationSettings: ts.CompilerOptions, scriptSnapshot: ts.IScriptSnapshot, version: string, - isOpen: boolean, textChangeRange: ts.TextChangeRange ): ts.SourceFile { - return ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, isOpen, textChangeRange); + return ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange); } public releaseDocument(fileName: string, compilationSettings: ts.CompilerOptions): void { @@ -231,10 +228,6 @@ module Harness.LanguageService { return this.getScriptInfo(fileName).version.toString(); } - public getScriptIsOpen(fileName: string): boolean { - return this.getScriptInfo(fileName).isOpen; - } - public getLocalizedDiagnosticMessages(): string { return JSON.stringify({}); } @@ -268,7 +261,6 @@ module Harness.LanguageService { public parseSourceText(fileName: string, sourceText: ts.IScriptSnapshot): ts.SourceFile { var result = ts.createSourceFile(fileName, sourceText.getText(0, sourceText.getLength()), ts.ScriptTarget.Latest); result.version = "1"; - result.isOpen = true; return result; } diff --git a/src/services/services.ts b/src/services/services.ts index de6745958cf..5dbea510779 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -56,7 +56,6 @@ module ts { } export interface SourceFile { - isOpen: boolean; version: string; scriptSnapshot: IScriptSnapshot; @@ -747,7 +746,6 @@ module ts { public identifierCount: number; public symbolCount: number; public version: string; - public isOpen: boolean; public languageVersion: ScriptTarget; public identifiers: Map; @@ -848,7 +846,6 @@ module ts { getCompilationSettings(): CompilerOptions; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; - getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): IScriptSnapshot; getLocalizedDiagnosticMessages?(): any; getCancellationToken?(): CancellationToken; @@ -1163,8 +1160,7 @@ module ts { filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, - version: string, - isOpen: boolean): SourceFile; + version: string): SourceFile; updateDocument( sourceFile: SourceFile, @@ -1172,9 +1168,7 @@ module ts { compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, - isOpen: boolean, - textChangeRange: TextChangeRange - ): SourceFile; + textChangeRange: TextChangeRange): SourceFile; releaseDocument(filename: string, compilationSettings: CompilerOptions): void } @@ -1315,7 +1309,6 @@ module ts { interface HostFileInformation { filename: string; version: string; - isOpen: boolean; sourceText?: IScriptSnapshot; } @@ -1409,8 +1402,7 @@ module ts { var filename = filenames[i]; this.filenameToEntry[normalizeSlashes(filename)] = { filename: filename, - version: host.getScriptVersion(filename), - isOpen: host.getScriptIsOpen(filename) + version: host.getScriptVersion(filename) }; } @@ -1453,10 +1445,6 @@ module ts { return this.getEntry(filename).version; } - public isOpen(filename: string): boolean { - return this.getEntry(filename).isOpen; - } - public getScriptSnapshot(filename: string): IScriptSnapshot { var file = this.getEntry(filename); if (!file.sourceText) { @@ -1507,7 +1495,7 @@ module ts { var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); var start = new Date().getTime(); - sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, ScriptTarget.Latest, version, /*isOpen*/ true, /*setNodeParents;*/ true); + sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, ScriptTarget.Latest, version, /*setNodeParents:*/ true); this.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); } else if (this.currentFileVersion !== version) { @@ -1516,7 +1504,7 @@ module ts { var editRange = this.hostCache.getChangeRange(filename, this.currentFileVersion, this.currentSourceFile.scriptSnapshot); var start = new Date().getTime(); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, /*isOpen*/ true, editRange); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); this.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); } @@ -1538,21 +1526,20 @@ module ts { } } - function setSourceFileFields(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean) { + function setSourceFileFields(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string) { sourceFile.version = version; - sourceFile.isOpen = isOpen; sourceFile.scriptSnapshot = scriptSnapshot; } - export function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, isOpen: boolean, setNodeParents: boolean): SourceFile { + export function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile { var sourceFile = createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); - setSourceFileFields(sourceFile, scriptSnapshot, version, isOpen); + setSourceFileFields(sourceFile, scriptSnapshot, version); return sourceFile; } export var disableIncrementalParsing = false; - export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean, textChangeRange: TextChangeRange): SourceFile { + export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile { if (textChangeRange && Debug.shouldAssert(AssertionLevel.Normal)) { var oldText = sourceFile.scriptSnapshot; var newText = scriptSnapshot; @@ -1573,18 +1560,18 @@ module ts { // If we were given a text change range, and our version or open-ness changed, then // incrementally parse this file. if (textChangeRange) { - if (version !== sourceFile.version || isOpen != sourceFile.isOpen) { + if (version !== sourceFile.version) { // Once incremental parsing is ready, then just call into this function. if (!disableIncrementalParsing) { var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); - setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); + setSourceFileFields(newSourceFile, scriptSnapshot, version); return newSourceFile; } } } // Otherwise, just create a new source file. - return createLanguageServiceSourceFile(sourceFile.filename, scriptSnapshot, sourceFile.languageVersion, version, isOpen, /*setNodeParents:*/ true); + return createLanguageServiceSourceFile(sourceFile.filename, scriptSnapshot, sourceFile.languageVersion, version, /*setNodeParents:*/ true); } export function createDocumentRegistry(): DocumentRegistry { @@ -1628,13 +1615,12 @@ module ts { filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, - version: string, - isOpen: boolean): SourceFile { + version: string): SourceFile { var bucket = getBucketForCompilationSettings(compilationSettings, /*createIfMissing*/ true); var entry = lookUp(bucket, filename); if (!entry) { - var sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, compilationSettings.target, version, isOpen, /*setNodeParents:*/ false); + var sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, compilationSettings.target, version, /*setNodeParents:*/ false); bucket[filename] = entry = { sourceFile: sourceFile, @@ -1653,7 +1639,6 @@ module ts { compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, - isOpen: boolean, textChangeRange: TextChangeRange ): SourceFile { @@ -1662,7 +1647,7 @@ module ts { var entry = lookUp(bucket, filename); Debug.assert(entry !== undefined); - entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, isOpen, textChangeRange); + entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, textChangeRange); return entry.sourceFile; } @@ -1962,7 +1947,7 @@ module ts { } function sourceFileUpToDate(sourceFile: SourceFile): boolean { - return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename) && sourceFile.isOpen === hostCache.isOpen(sourceFile.filename); + return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename); } function programUpToDate(): boolean { @@ -2031,7 +2016,6 @@ module ts { var filename = hostfilenames[i]; var version = hostCache.getVersion(filename); - var isOpen = hostCache.isOpen(filename); var scriptSnapshot = hostCache.getScriptSnapshot(filename); var sourceFile: SourceFile = getSourceFile(filename); @@ -2043,21 +2027,13 @@ module ts { continue; } - // Only perform incremental parsing on open files that are being edited. If a file was - // open, but is now closed, we want to re-parse entirely so we don't have any tokens that - // are holding onto expensive script snapshot instances on the host. Similarly, if a - // file was closed, then we always want to re-parse. This is so our tree doesn't keep - // the old buffer alive that represented the file on disk (as the host has moved to a - // new text buffer). var textChangeRange: TextChangeRange = null; - if (sourceFile.isOpen && isOpen) { - textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); - } + textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); - sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, isOpen, textChangeRange); + sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange); } else { - sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version, isOpen); + sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version); } // Remember the new sourceFile diff --git a/src/services/shims.ts b/src/services/shims.ts index d07c854bdc3..4d3d90cd0fa 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -50,7 +50,6 @@ module ts { /** Returns a JSON-encoded value of the type: string[] */ getScriptFileNames(): string; getScriptVersion(fileName: string): string; - getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): ScriptSnapshotShim; getLocalizedDiagnosticMessages(): string; getCancellationToken(): CancellationToken; @@ -251,10 +250,6 @@ module ts { return this.shimHost.getScriptVersion(fileName); } - public getScriptIsOpen(fileName: string): boolean { - return this.shimHost.getScriptIsOpen(fileName); - } - public getLocalizedDiagnosticMessages(): any { var diagnosticMessagesJson = this.shimHost.getLocalizedDiagnosticMessages(); if (diagnosticMessagesJson == null || diagnosticMessagesJson == "") { diff --git a/tests/cases/unittests/incrementalParser.ts b/tests/cases/unittests/incrementalParser.ts index a3875cf8e8c..b7778e4bac3 100644 --- a/tests/cases/unittests/incrementalParser.ts +++ b/tests/cases/unittests/incrementalParser.ts @@ -20,7 +20,7 @@ module ts { } function createTree(text: IScriptSnapshot, version: string) { - return createLanguageServiceSourceFile(/*fileName:*/ "", text, ScriptTarget.Latest, version, /*isOpen:*/ true, /*setNodeParents:*/ true) + return createLanguageServiceSourceFile(/*fileName:*/ "", text, ScriptTarget.Latest, version, /*setNodeParents:*/ true) } function assertSameDiagnostics(file1: SourceFile, file2: SourceFile) { @@ -57,7 +57,7 @@ module ts { Utils.assertInvariants(newTree, /*parent:*/ undefined); // Create a tree for the new text, in an incremental fashion. - var incrementalNewTree = updateLanguageServiceSourceFile(oldTree, newText, oldTree.version + ".", /*isOpen:*/ true, textChangeRange); + var incrementalNewTree = updateLanguageServiceSourceFile(oldTree, newText, oldTree.version + ".", textChangeRange); Utils.assertInvariants(incrementalNewTree, /*parent:*/ undefined); // We should get the same tree when doign a full or incremental parse. diff --git a/tests/cases/unittests/services/documentRegistry.ts b/tests/cases/unittests/services/documentRegistry.ts index 044aea0095d..50074b00db9 100644 --- a/tests/cases/unittests/services/documentRegistry.ts +++ b/tests/cases/unittests/services/documentRegistry.ts @@ -5,8 +5,8 @@ describe("DocumentRegistry", () => { var documentRegistry = ts.createDocumentRegistry(); var defaultCompilerOptions = ts.getDefaultCompilerOptions(); - var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); - var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); assert(f1 === f2, "DocumentRegistry should return the same document for the same name"); }); @@ -17,21 +17,21 @@ describe("DocumentRegistry", () => { // change compilation setting that doesn't affect parsing - should have the same document compilerOptions.declaration = true; - var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); compilerOptions.declaration = false; - var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); assert(f1 === f2, "Expected to have the same document instance"); // change value of compilation setting that is used during production of AST - new document is required compilerOptions.target = ts.ScriptTarget.ES3; - var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); assert(f1 !== f3, "Changed target: Expected to have different instances of document"); compilerOptions.module = ts.ModuleKind.CommonJS; - var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); assert(f1 !== f4, "Changed module: Expected to have different instances of document"); }); From c9b13090252d9a12ed525d55e327bf0785534ee8 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 16 Jan 2015 21:33:53 -0800 Subject: [PATCH 034/211] Gracefully handel getChangeRange in Scriptsnapshot.fromString --- src/services/services.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 5dbea510779..69d11f1ded9 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -115,7 +115,9 @@ module ts { } public getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange { - throw new Error("not yet implemented"); + // Text-based snapshots do not support incremental parsing. Return undefined + // to signal that to the caller. + return undefined; } } From 15187e5e1d42a073db08595ab8ac79710703b8e1 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 6 Jan 2015 14:19:43 -0800 Subject: [PATCH 035/211] Enable computed properties --- src/compiler/checker.ts | 12 ++--- .../diagnosticInformationMap.generated.ts | 1 - src/compiler/diagnosticMessages.json | 5 -- .../FunctionDeclaration8_es6.errors.txt | 4 +- .../FunctionDeclaration9_es6.errors.txt | 4 +- ...unctionPropertyAssignments5_es6.errors.txt | 4 +- .../computedPropertyNames1.errors.txt | 13 ----- .../reference/computedPropertyNames1.js | 14 ++++++ .../computedPropertyNames2.errors.txt | 20 +------- .../reference/computedPropertyNames2.js | 48 +++++++++++++++++++ .../computedPropertyNames3.errors.txt | 20 +------- .../reference/computedPropertyNames3.js | 47 ++++++++++++++++++ ...omputedPropertyNamesOnOverloads.errors.txt | 5 +- .../parserComputedPropertyName12.errors.txt | 9 ---- .../reference/parserComputedPropertyName12.js | 13 +++++ .../parserComputedPropertyName17.errors.txt | 7 --- .../reference/parserComputedPropertyName17.js | 6 +++ .../parserComputedPropertyName2.errors.txt | 7 --- .../reference/parserComputedPropertyName2.js | 5 ++ .../parserComputedPropertyName24.errors.txt | 9 ---- .../reference/parserComputedPropertyName24.js | 17 +++++++ .../parserComputedPropertyName3.errors.txt | 7 --- .../reference/parserComputedPropertyName3.js | 6 +++ .../parserComputedPropertyName35.errors.txt | 6 +-- .../reference/parserComputedPropertyName35.js | 9 ++++ .../parserComputedPropertyName37.errors.txt | 9 ---- .../reference/parserComputedPropertyName37.js | 9 ++++ .../parserComputedPropertyName38.errors.txt | 9 ---- .../reference/parserComputedPropertyName38.js | 13 +++++ .../parserComputedPropertyName4.errors.txt | 7 --- .../reference/parserComputedPropertyName4.js | 6 +++ .../parserComputedPropertyName40.errors.txt | 9 ---- .../reference/parserComputedPropertyName40.js | 13 +++++ .../parserComputedPropertyName41.errors.txt | 9 ---- .../reference/parserComputedPropertyName41.js | 9 ++++ .../parserComputedPropertyName5.errors.txt | 7 --- .../reference/parserComputedPropertyName5.js | 6 +++ .../parserComputedPropertyName6.errors.txt | 10 ---- .../reference/parserComputedPropertyName6.js | 5 ++ .../parserES5ComputedPropertyName2.errors.txt | 4 +- .../parserES5ComputedPropertyName3.errors.txt | 4 +- .../parserES5ComputedPropertyName4.errors.txt | 4 +- 42 files changed, 248 insertions(+), 183 deletions(-) delete mode 100644 tests/baselines/reference/computedPropertyNames1.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames1.js create mode 100644 tests/baselines/reference/computedPropertyNames2.js create mode 100644 tests/baselines/reference/computedPropertyNames3.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName12.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName12.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName17.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName17.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName2.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName2.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName24.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName24.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName3.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName3.js create mode 100644 tests/baselines/reference/parserComputedPropertyName35.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName37.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName37.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName38.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName38.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName4.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName4.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName40.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName40.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName41.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName41.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName5.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName5.js delete mode 100644 tests/baselines/reference/parserComputedPropertyName6.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName6.js diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3ad62c1d639..9a3aa0d2fc3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -10416,22 +10416,18 @@ module ts { return false; } - function checkGrammarComputedPropertyName(node: Node): void { + function checkGrammarComputedPropertyName(node: Node): boolean { // If node is not a computedPropertyName, just skip the grammar checking if (node.kind !== SyntaxKind.ComputedPropertyName) { - return; + return false; } - // Since computed properties are not supported in the type checker, disallow them in TypeScript 1.4 - // Once full support is added, remove this error. - grammarErrorOnNode(node, Diagnostics.Computed_property_names_are_not_currently_supported); - return; var computedPropertyName = node; if (compilerOptions.target < ScriptTarget.ES6) { - grammarErrorOnNode(node, Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); + return grammarErrorOnNode(node, Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); } else if (computedPropertyName.expression.kind === SyntaxKind.BinaryExpression && (computedPropertyName.expression).operator === SyntaxKind.CommaToken) { - grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); + return grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); } } diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 9d62ee0e030..03df069a9ab 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -445,6 +445,5 @@ module ts { 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.", isEarly: true }, Generators_are_not_currently_supported: { code: 9001, category: DiagnosticCategory.Error, key: "Generators are not currently supported.", isEarly: true }, - Computed_property_names_are_not_currently_supported: { code: 9002, category: DiagnosticCategory.Error, key: "Computed property names are not currently supported.", isEarly: true }, }; } \ No newline at end of file diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index ee962edc3a0..6be3bb65c77 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1880,10 +1880,5 @@ "category": "Error", "code": 9001, "isEarly": true - }, - "Computed property names are not currently supported.": { - "category": "Error", - "code": 9002, - "isEarly": true } } diff --git a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt index 08d151203c9..5232c8f1608 100644 --- a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,11): error TS9002: Computed property names are not currently supported. +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 (1 errors) ==== var v = { [yield]: foo } ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. \ 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 8333eceb267..902a195e8fc 100644 --- a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt @@ -1,5 +1,5 @@ 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(2,13): error TS9002: Computed property names are not currently supported. +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 (2 errors) ==== @@ -8,5 +8,5 @@ tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,1 !!! error TS9001: Generators are not currently supported. var v = { [yield]: foo } ~~~~~~~ -!!! error TS9002: Computed property names 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/FunctionPropertyAssignments5_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt index eff0c79d827..430dd503667 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,12): error TS9002: Computed property names 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) ==== var v = { *[foo()]() { } } ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. \ 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/computedPropertyNames1.errors.txt b/tests/baselines/reference/computedPropertyNames1.errors.txt deleted file mode 100644 index 02abbcd6b2d..00000000000 --- a/tests/baselines/reference/computedPropertyNames1.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts(2,9): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts(3,9): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames1.ts (2 errors) ==== - var v = { - get [0 + 1]() { return 0 }, - ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - set [0 + 1](v: string) { } //No error - ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames1.js b/tests/baselines/reference/computedPropertyNames1.js new file mode 100644 index 00000000000..8f3e448d698 --- /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: string) { } //No error +} + +//// [computedPropertyNames1.js] +var v = { + get [0 + 1]() { + return 0; + }, + set [0 + 1](v) { + } //No error +}; diff --git a/tests/baselines/reference/computedPropertyNames2.errors.txt b/tests/baselines/reference/computedPropertyNames2.errors.txt index 3dd4ac01d5f..d0fd1de4576 100644 --- a/tests/baselines/reference/computedPropertyNames2.errors.txt +++ b/tests/baselines/reference/computedPropertyNames2.errors.txt @@ -1,37 +1,19 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(4,5): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(5,12): error TS9002: Computed property names are not currently supported. 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(6,9): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(7,9): error TS9002: Computed property names are not currently supported. 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(8,16): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts(9,16): error TS9002: Computed property names are not currently supported. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts (8 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames2.ts (2 errors) ==== var methodName = "method"; var accessorName = "accessor"; class C { [methodName]() { } - ~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static [methodName]() { } - ~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. get [accessorName]() { } ~~~~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. - ~~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. set [accessorName](v) { } - ~~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static get [accessorName]() { } ~~~~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. - ~~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static set [accessorName](v) { } - ~~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. } \ 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 index 084a1f8889f..37a4ddaf1c0 100644 --- a/tests/baselines/reference/computedPropertyNames3.errors.txt +++ b/tests/baselines/reference/computedPropertyNames3.errors.txt @@ -1,36 +1,18 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(3,5): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(4,12): error TS9002: Computed property names are not currently supported. 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(5,9): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(6,9): error TS9002: Computed property names are not currently supported. 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(7,16): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(8,16): error TS9002: Computed property names are not currently supported. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (8 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (2 errors) ==== var id; class C { [0 + 1]() { } - ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static [() => { }]() { } - ~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. get [delete id]() { } ~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. - ~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. set [[0, 1]](v) { } - ~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static get [""]() { } ~~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. - ~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. static set [id.toString()](v) { } - ~~~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. } \ 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/computedPropertyNamesOnOverloads.errors.txt b/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt index 6329ab39f0f..b3c2957a13f 100644 --- a/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesOnOverloads.errors.txt @@ -1,9 +1,8 @@ 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(6,5): error TS9002: Computed property names are not currently supported. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts (3 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads.ts (2 errors) ==== var methodName = "method"; var accessorName = "accessor"; class C { @@ -14,6 +13,4 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNamesOnOverloads. ~~~~~~~~~~~~ !!! error TS1168: Computed property names are not allowed in method overloads. [methodName](v?: string) { } - ~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName12.errors.txt b/tests/baselines/reference/parserComputedPropertyName12.errors.txt deleted file mode 100644 index c028275369d..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName12.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts(2,4): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts (1 errors) ==== - class C { - [e]() { } - ~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ No newline at end of file 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName17.errors.txt deleted file mode 100644 index f8b1a4866e8..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName17.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts(1,15): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts (1 errors) ==== - var v = { set [e](v) { } } - ~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName2.errors.txt deleted file mode 100644 index 9eb6cdd6004..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName2.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts(1,11): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts (1 errors) ==== - var v = { [e]: 1 }; - ~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName24.errors.txt deleted file mode 100644 index fa7280a93e7..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName24.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts(2,9): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts (1 errors) ==== - class C { - set [e](v) { } - ~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ No newline at end of file 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName3.errors.txt deleted file mode 100644 index b13f453cb89..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName3.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts(1,11): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts (1 errors) ==== - var v = { [e]() { } }; - ~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName3.js b/tests/baselines/reference/parserComputedPropertyName3.js new file mode 100644 index 00000000000..2e73fe87d3a --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName3.js @@ -0,0 +1,6 @@ +//// [parserComputedPropertyName3.ts] +var v = { [e]() { } }; + +//// [parserComputedPropertyName3.js] +var v = { [e]() { +} }; diff --git a/tests/baselines/reference/parserComputedPropertyName35.errors.txt b/tests/baselines/reference/parserComputedPropertyName35.errors.txt index d68f0eb1ec7..e603d1c73fd 100644 --- a/tests/baselines/reference/parserComputedPropertyName35.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName35.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts(2,5): error TS9002: Computed property names are not currently supported. +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 TS9002: Computed property names are not currently supported. + ~~~~ +!!! 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/parserComputedPropertyName35.js b/tests/baselines/reference/parserComputedPropertyName35.js new file mode 100644 index 00000000000..15992d54ece --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName35.js @@ -0,0 +1,9 @@ +//// [parserComputedPropertyName35.ts] +var x = { + [0, 1]: { } +} + +//// [parserComputedPropertyName35.js] +var x = { + [0, 1]: {} +}; diff --git a/tests/baselines/reference/parserComputedPropertyName37.errors.txt b/tests/baselines/reference/parserComputedPropertyName37.errors.txt deleted file mode 100644 index fa1acd5dbe0..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName37.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts(2,5): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts (1 errors) ==== - var v = { - [public]: 0 - ~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - }; \ 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName38.errors.txt deleted file mode 100644 index 910a907ee0f..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName38.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts(2,5): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts (1 errors) ==== - class C { - [public]() { } - ~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ No newline at end of file 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/parserComputedPropertyName4.errors.txt b/tests/baselines/reference/parserComputedPropertyName4.errors.txt deleted file mode 100644 index c1137b15872..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName4.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts(1,15): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts (1 errors) ==== - var v = { get [e]() { } }; - ~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file 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/parserComputedPropertyName40.errors.txt b/tests/baselines/reference/parserComputedPropertyName40.errors.txt deleted file mode 100644 index 93be0ad51b7..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName40.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts(2,5): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts (1 errors) ==== - class C { - [a ? "" : ""]() {} - ~~~~~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName41.errors.txt deleted file mode 100644 index eb5e9a9ebbf..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName41.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts(2,5): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts (1 errors) ==== - var v = { - [0 in []]: true - ~~~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. - } \ No newline at end of file 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/parserComputedPropertyName5.errors.txt b/tests/baselines/reference/parserComputedPropertyName5.errors.txt deleted file mode 100644 index f0dd056fdf9..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName5.errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,22): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts (1 errors) ==== - var v = { public get [e]() { } }; - ~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName5.js b/tests/baselines/reference/parserComputedPropertyName5.js new file mode 100644 index 00000000000..aa86d54d09c --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName5.js @@ -0,0 +1,6 @@ +//// [parserComputedPropertyName5.ts] +var v = { public get [e]() { } }; + +//// [parserComputedPropertyName5.js] +var v = { get [e]() { +} }; diff --git a/tests/baselines/reference/parserComputedPropertyName6.errors.txt b/tests/baselines/reference/parserComputedPropertyName6.errors.txt deleted file mode 100644 index 893bf3da719..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName6.errors.txt +++ /dev/null @@ -1,10 +0,0 @@ -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts(1,11): error TS9002: Computed property names are not currently supported. -tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts(1,19): error TS9002: Computed property names are not currently supported. - - -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts (2 errors) ==== - var v = { [e]: 1, [e + e]: 2 }; - ~~~ -!!! error TS9002: Computed property names are not currently supported. - ~~~~~~~ -!!! error TS9002: Computed property names are not currently supported. \ No newline at end of file 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/baselines/reference/parserES5ComputedPropertyName2.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt index 7b6b74b8fd8..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 TS9002: Computed property names are not currently supported. +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 TS9002: Computed property names are not currently supported. \ 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 669fd190265..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 TS9002: Computed property names are not currently supported. +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 TS9002: Computed property names are not currently supported. \ 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 af0c6e858ad..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 TS9002: Computed property names are not currently supported. +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 TS9002: Computed property names are not currently supported. \ 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 d192fea774cda7b39bc56ee8e129f26a53d7b754 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 6 Jan 2015 15:17:07 -0800 Subject: [PATCH 036/211] Switch checkObjectLiteral to iterate over element declarations --- src/compiler/checker.ts | 78 +++++++++---------- .../lastPropertyInLiteralWins.errors.txt | 28 +++---- .../reference/memberOverride.errors.txt | 7 +- ...ypesInImplementationSignatures2.errors.txt | 5 +- 4 files changed, 55 insertions(+), 63 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9a3aa0d2fc3..a52a2765543 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5399,56 +5399,48 @@ module ts { // Grammar checking checkGrammarObjectLiteralExpression(node); - var members = node.symbol.members; var properties: SymbolTable = {}; var contextualType = getContextualType(node); var typeFlags: TypeFlags; - for (var id in members) { - if (hasProperty(members, id)) { - var member = members[id]; - if (member.flags & SymbolFlags.Property || isObjectLiteralMethod(member.declarations[0])) { - var memberDecl = member.declarations[0]; - if (memberDecl.kind === SyntaxKind.PropertyAssignment) { - var type = checkExpression((memberDecl).initializer, contextualMapper); - } - else if (memberDecl.kind === SyntaxKind.MethodDeclaration) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); - } - else { - Debug.assert(memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment); - var type = memberDecl.name.kind === SyntaxKind.ComputedPropertyName - ? unknownType - : checkExpression(memberDecl.name, contextualMapper); - } - typeFlags |= type.flags; - var prop = createSymbol(SymbolFlags.Property | SymbolFlags.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; + for (var i = 0; i < node.properties.length; i++) { + var memberDecl = node.properties[i]; + if (memberDecl.kind === SyntaxKind.PropertyAssignment || + memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment || + isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === SyntaxKind.PropertyAssignment) { + var type = checkExpression((memberDecl).initializer, contextualMapper); + } + else if (memberDecl.kind === SyntaxKind.MethodDeclaration) { + var type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { - // TypeScript 1.0 spec (April 2014) - // A get accessor declaration is processed in the same manner as - // an ordinary function declaration(section 6.1) with no parameters. - // A set accessor declaration is processed in the same manner - // as an ordinary function declaration with a single parameter and a Void return type. - var getAccessor = getDeclarationOfKind(member, SyntaxKind.GetAccessor); - if (getAccessor) { - checkAccessorDeclaration(getAccessor); - } - - var setAccessor = getDeclarationOfKind(member, SyntaxKind.SetAccessor); - if (setAccessor) { - checkAccessorDeclaration(setAccessor); - } + Debug.assert(memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment); + var type = memberDecl.name.kind === SyntaxKind.ComputedPropertyName + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); } + typeFlags |= type.flags; + var prop = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | member.flags, member.name); + var member = memberDecl.symbol; + prop.declarations = member.declarations; + prop.parent = member.parent; + if (member.valueDeclaration) { + prop.valueDeclaration = member.valueDeclaration; + } + + prop.type = type; + prop.target = member; + properties[prop.name] = prop; + } + else { + // TypeScript 1.0 spec (April 2014) + // A get accessor declaration is processed in the same manner as + // an ordinary function declaration(section 6.1) with no parameters. + // A set accessor declaration is processed in the same manner + // as an ordinary function declaration with a single parameter and a Void return type. + Debug.assert(memberDecl.kind === SyntaxKind.GetAccessor || memberDecl.kind === SyntaxKind.SetAccessor); + checkAccessorDeclaration(memberDecl); properties[member.name] = member; } } diff --git a/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt b/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt index 4bf5521d24d..d503f59c602 100644 --- a/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt +++ b/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt @@ -1,8 +1,8 @@ -tests/cases/compiler/lastPropertyInLiteralWins.ts(8,5): error TS2300: Duplicate identifier 'thunk'. -tests/cases/compiler/lastPropertyInLiteralWins.ts(9,5): error TS2300: Duplicate identifier 'thunk'. -tests/cases/compiler/lastPropertyInLiteralWins.ts(12,6): error TS2345: Argument of type '{ thunk: (num: number) => void; }' is not assignable to parameter of type 'Thing'. +tests/cases/compiler/lastPropertyInLiteralWins.ts(7,6): error TS2345: Argument of type '{ thunk: (num: number) => void; }' is not assignable to parameter of type 'Thing'. Types of property 'thunk' are incompatible. Type '(num: number) => void' is not assignable to type '(str: string) => void'. +tests/cases/compiler/lastPropertyInLiteralWins.ts(8,5): error TS2300: Duplicate identifier 'thunk'. +tests/cases/compiler/lastPropertyInLiteralWins.ts(9,5): error TS2300: Duplicate identifier 'thunk'. tests/cases/compiler/lastPropertyInLiteralWins.ts(13,5): error TS2300: Duplicate identifier 'thunk'. tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate identifier 'thunk'. @@ -15,21 +15,12 @@ tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate thing.thunk("str"); } test({ // Should error, as last one wins, and is wrong type + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thunk: (str: string) => {}, - ~~~~~ -!!! error TS2300: Duplicate identifier 'thunk'. - thunk: (num: number) => {} - ~~~~~ -!!! error TS2300: Duplicate identifier 'thunk'. - }); - - test({ // Should be OK. Last 'thunk' is of correct type - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - thunk: (num: number) => {}, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ !!! error TS2300: Duplicate identifier 'thunk'. - thunk: (str: string) => {} + thunk: (num: number) => {} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ !!! error TS2300: Duplicate identifier 'thunk'. @@ -38,4 +29,13 @@ tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate !!! error TS2345: Argument of type '{ thunk: (num: number) => void; }' is not assignable to parameter of type 'Thing'. !!! error TS2345: Types of property 'thunk' are incompatible. !!! error TS2345: Type '(num: number) => void' is not assignable to type '(str: string) => void'. + + test({ // Should be OK. Last 'thunk' is of correct type + thunk: (num: number) => {}, + ~~~~~ +!!! error TS2300: Duplicate identifier 'thunk'. + thunk: (str: string) => {} + ~~~~~ +!!! error TS2300: Duplicate identifier 'thunk'. + }); \ No newline at end of file diff --git a/tests/baselines/reference/memberOverride.errors.txt b/tests/baselines/reference/memberOverride.errors.txt index 0fd0fb57e67..b4974e69e53 100644 --- a/tests/baselines/reference/memberOverride.errors.txt +++ b/tests/baselines/reference/memberOverride.errors.txt @@ -1,9 +1,8 @@ tests/cases/compiler/memberOverride.ts(4,5): error TS2300: Duplicate identifier 'a'. tests/cases/compiler/memberOverride.ts(5,5): error TS2300: Duplicate identifier 'a'. -tests/cases/compiler/memberOverride.ts(8,5): error TS2322: Type 'string' is not assignable to type 'number'. -==== tests/cases/compiler/memberOverride.ts (3 errors) ==== +==== tests/cases/compiler/memberOverride.ts (2 errors) ==== // An object initialiser accepts the first definition for the same property with a different type signature // Should compile, since the second declaration of a overrides the first var x = { @@ -15,6 +14,4 @@ tests/cases/compiler/memberOverride.ts(8,5): error TS2322: Type 'string' is not !!! error TS2300: Duplicate identifier 'a'. } - var n: number = x.a; - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file + var n: number = x.a; \ No newline at end of file diff --git a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.errors.txt b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.errors.txt index cbc517e0520..3cc172c96d5 100644 --- a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.errors.txt +++ b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.errors.txt @@ -11,9 +11,10 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralType tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts(26,5): error TS2300: Duplicate identifier 'foo'. tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts(26,5): error TS2381: A signature with an implementation cannot use a string literal type. tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts(27,5): error TS2300: Duplicate identifier 'foo'. +tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts(27,5): error TS2381: A signature with an implementation cannot use a string literal type. -==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts (13 errors) ==== +==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts (14 errors) ==== // String literal types are only valid in overload signatures function foo(x: any); @@ -67,5 +68,7 @@ tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralType foo(x: 'a') { }, ~~~ !!! error TS2300: Duplicate identifier 'foo'. + ~~~~~~~~~~~~~~~ +!!! error TS2381: A signature with an implementation cannot use a string literal type. } \ No newline at end of file From ef06879a7519a49c537d86ea11b231225f71def1 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Fri, 9 Jan 2015 14:45:27 -0800 Subject: [PATCH 037/211] Create symbols for computed properties --- src/compiler/binder.ts | 27 +++++++++++-------- src/compiler/checker.ts | 11 ++++---- .../FunctionDeclaration8_es6.errors.txt | 7 +++-- ...unctionPropertyAssignments5_es6.errors.txt | 5 +++- .../reference/computedPropertyNames1.types | 12 +++++++++ .../parserComputedPropertyName12.types | 7 +++++ .../parserComputedPropertyName17.types | 7 +++++ .../parserComputedPropertyName2.types | 6 +++++ .../parserComputedPropertyName24.types | 8 ++++++ .../parserComputedPropertyName3.types | 6 +++++ .../parserComputedPropertyName37.types | 9 +++++++ .../parserComputedPropertyName38.types | 7 +++++ .../parserComputedPropertyName4.errors.txt | 7 +++++ .../parserComputedPropertyName40.types | 8 ++++++ .../parserComputedPropertyName41.types | 9 +++++++ .../parserComputedPropertyName5.errors.txt | 7 +++++ .../parserComputedPropertyName6.types | 9 +++++++ .../parserES5ComputedPropertyName4.errors.txt | 7 +++-- .../reference/privateIndexer2.errors.txt | 5 +++- 19 files changed, 142 insertions(+), 22 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNames1.types 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.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName40.types create mode 100644 tests/baselines/reference/parserComputedPropertyName41.types create mode 100644 tests/baselines/reference/parserComputedPropertyName5.errors.txt create mode 100644 tests/baselines/reference/parserComputedPropertyName6.types diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 201913a50b4..bbebe9e62ea 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -118,11 +118,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 (hasComputedNameButNotSymbol(node)) { - return undefined; - } + Debug.assert(!hasComputedNameButNotSymbol(node)); var name = getDeclarationName(node); if (name !== undefined) { @@ -395,14 +391,14 @@ module ts { break; case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: - bindDeclaration(node, SymbolFlags.Property | ((node).questionToken ? SymbolFlags.Optional : 0), SymbolFlags.PropertyExcludes, /*isBlockScopeContainer*/ false); + bindPropertyOrMethodOrAccessor(node, SymbolFlags.Property | ((node).questionToken ? SymbolFlags.Optional : 0), SymbolFlags.PropertyExcludes, /*isBlockScopeContainer*/ false); break; case SyntaxKind.PropertyAssignment: case SyntaxKind.ShorthandPropertyAssignment: - bindDeclaration(node, SymbolFlags.Property, SymbolFlags.PropertyExcludes, /*isBlockScopeContainer*/ false); + bindPropertyOrMethodOrAccessor(node, SymbolFlags.Property, SymbolFlags.PropertyExcludes, /*isBlockScopeContainer*/ false); break; case SyntaxKind.EnumMember: - bindDeclaration(node, SymbolFlags.EnumMember, SymbolFlags.EnumMemberExcludes, /*isBlockScopeContainer*/ false); + bindPropertyOrMethodOrAccessor(node, SymbolFlags.EnumMember, SymbolFlags.EnumMemberExcludes, /*isBlockScopeContainer*/ false); break; case SyntaxKind.CallSignature: case SyntaxKind.ConstructSignature: @@ -415,7 +411,7 @@ module ts { // as other properties in the object literal. So we use SymbolFlags.PropertyExcludes // so that it will conflict with any other object literal members with the same // name. - bindDeclaration(node, SymbolFlags.Method | ((node).questionToken ? SymbolFlags.Optional : 0), + bindPropertyOrMethodOrAccessor(node, SymbolFlags.Method | ((node).questionToken ? SymbolFlags.Optional : 0), isObjectLiteralMethod(node) ? SymbolFlags.PropertyExcludes : SymbolFlags.MethodExcludes, /*isBlockScopeContainer*/ true); break; case SyntaxKind.FunctionDeclaration: @@ -425,10 +421,10 @@ module ts { bindDeclaration(node, SymbolFlags.Constructor, /*symbolExcludes:*/ 0, /*isBlockScopeContainer:*/ true); break; case SyntaxKind.GetAccessor: - bindDeclaration(node, SymbolFlags.GetAccessor, SymbolFlags.GetAccessorExcludes, /*isBlockScopeContainer*/ true); + bindPropertyOrMethodOrAccessor(node, SymbolFlags.GetAccessor, SymbolFlags.GetAccessorExcludes, /*isBlockScopeContainer*/ true); break; case SyntaxKind.SetAccessor: - bindDeclaration(node, SymbolFlags.SetAccessor, SymbolFlags.SetAccessorExcludes, /*isBlockScopeContainer*/ true); + bindPropertyOrMethodOrAccessor(node, SymbolFlags.SetAccessor, SymbolFlags.SetAccessorExcludes, /*isBlockScopeContainer*/ true); break; case SyntaxKind.FunctionType: @@ -510,5 +506,14 @@ module ts { declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, SymbolFlags.Property, SymbolFlags.PropertyExcludes); } } + + function bindPropertyOrMethodOrAccessor(node: Declaration, symbolKind: SymbolFlags, symbolExcludes: SymbolFlags, isBlockScopeContainer: boolean) { + if (hasComputedNameButNotSymbol(node)) { + bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); + } + else { + bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer); + } + } } } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a52a2765543..a93400b9703 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5405,6 +5405,7 @@ module ts { for (var i = 0; i < node.properties.length; i++) { var memberDecl = node.properties[i]; + var member = memberDecl.symbol; if (memberDecl.kind === SyntaxKind.PropertyAssignment || memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment || isObjectLiteralMethod(memberDecl)) { @@ -5422,7 +5423,6 @@ module ts { } typeFlags |= type.flags; var prop = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | member.flags, member.name); - var member = memberDecl.symbol; prop.declarations = member.declarations; prop.parent = member.parent; if (member.valueDeclaration) { @@ -5431,7 +5431,7 @@ module ts { prop.type = type; prop.target = member; - properties[prop.name] = prop; + member = prop; } else { // TypeScript 1.0 spec (April 2014) @@ -5441,8 +5441,9 @@ module ts { // as an ordinary function declaration with a single parameter and a Void return type. Debug.assert(memberDecl.kind === SyntaxKind.GetAccessor || memberDecl.kind === SyntaxKind.SetAccessor); checkAccessorDeclaration(memberDecl); - properties[member.name] = member; } + + properties[member.name] = member; } var stringIndexType = getIndexType(IndexKind.String); @@ -7427,9 +7428,9 @@ module ts { } } } - - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } + + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } checkFunctionLikeDeclaration(node); diff --git a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt index 5232c8f1608..386e1e8f63c 100644 --- a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt @@ -1,7 +1,10 @@ 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(1,20): error TS2304: Cannot find name 'foo'. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (2 errors) ==== var v = { [yield]: foo } ~~~~~~~ -!!! error TS1167: 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. + ~~~ +!!! error TS2304: Cannot find name 'foo'. \ 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..0999186ec09 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/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/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..8a5cfafbd40 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName3.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts === +var v = { [e]() { } }; +>v : {} +>{ [e]() { } } : {} +>e : unknown + 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName4.errors.txt new file mode 100644 index 00000000000..ec90ebf8df1 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName4.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts(1,15): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts (1 errors) ==== + var v = { get [e]() { } }; + ~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file 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/parserComputedPropertyName5.errors.txt b/tests/baselines/reference/parserComputedPropertyName5.errors.txt new file mode 100644 index 00000000000..1d321dc156e --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName5.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,22): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts (1 errors) ==== + var v = { public get [e]() { } }; + ~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file 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 + diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt index e0b816f157c..df262603331 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt @@ -1,7 +1,10 @@ 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,15): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (2 errors) ==== var v = { get [e]() { } }; ~~~ -!!! error TS1167: 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. + ~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file diff --git a/tests/baselines/reference/privateIndexer2.errors.txt b/tests/baselines/reference/privateIndexer2.errors.txt index 8d3c1ec1e6d..405167d68f8 100644 --- a/tests/baselines/reference/privateIndexer2.errors.txt +++ b/tests/baselines/reference/privateIndexer2.errors.txt @@ -1,17 +1,20 @@ tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,15): error TS1005: ']' expected. +tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,17): error TS2304: Cannot find name 'string'. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,23): error TS1005: ',' expected. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,24): error TS1136: Property assignment expected. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,32): error TS1005: ':' expected. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(5,1): error TS1128: Declaration or statement expected. -==== tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts (5 errors) ==== +==== tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts (6 errors) ==== // private indexers not allowed var x = { private [x: string]: string; ~ !!! error TS1005: ']' expected. + ~~~~~~ +!!! error TS2304: Cannot find name 'string'. ~ !!! error TS1005: ',' expected. ~ From 7192767a00e5d7651fbd419c49d04bc4d477e65c Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Fri, 9 Jan 2015 17:46:16 -0800 Subject: [PATCH 038/211] Add type checking for computed properties in object literals --- src/compiler/checker.ts | 18 +++++++++++++++++- .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 8 ++++++-- src/compiler/utilities.ts | 2 ++ .../FunctionDeclaration8_es6.errors.txt | 5 ++++- .../FunctionDeclaration9_es6.errors.txt | 5 ++++- ...FunctionPropertyAssignments5_es6.errors.txt | 7 +++++-- .../parserComputedPropertyName1.errors.txt | 5 ++++- .../parserComputedPropertyName17.errors.txt | 7 +++++++ .../parserComputedPropertyName17.types | 7 ------- .../parserComputedPropertyName2.errors.txt | 7 +++++++ .../parserComputedPropertyName2.types | 6 ------ .../parserComputedPropertyName3.errors.txt | 7 +++++++ .../parserComputedPropertyName3.types | 6 ------ .../parserComputedPropertyName37.errors.txt | 9 +++++++++ .../parserComputedPropertyName37.types | 9 --------- .../parserComputedPropertyName4.errors.txt | 7 +++++-- .../parserComputedPropertyName41.errors.txt | 9 +++++++++ .../parserComputedPropertyName41.types | 9 --------- .../parserComputedPropertyName5.errors.txt | 7 +++++-- .../parserComputedPropertyName6.errors.txt | 13 +++++++++++++ .../parserComputedPropertyName6.types | 9 --------- .../parserES5ComputedPropertyName2.errors.txt | 7 +++++-- .../parserES5ComputedPropertyName3.errors.txt | 7 +++++-- .../parserES5ComputedPropertyName4.errors.txt | 7 +++++-- 25 files changed, 120 insertions(+), 64 deletions(-) create mode 100644 tests/baselines/reference/parserComputedPropertyName17.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName17.types create mode 100644 tests/baselines/reference/parserComputedPropertyName2.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName2.types create mode 100644 tests/baselines/reference/parserComputedPropertyName3.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName3.types create mode 100644 tests/baselines/reference/parserComputedPropertyName37.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName37.types create mode 100644 tests/baselines/reference/parserComputedPropertyName41.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName41.types create mode 100644 tests/baselines/reference/parserComputedPropertyName6.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName6.types diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a93400b9703..15df97de4c9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5395,6 +5395,17 @@ module ts { return (+name).toString() === name; } + function checkComputedPropertyName(node: ComputedPropertyName): void { + var computedNameType = checkExpression(node.expression); + + // This will only allow types number, string, or any. Any types more complex will + // be disallowed, even union types like string | number. In the future, we might consider + // allowing types like that. + if ((computedNameType.flags & (TypeFlags.Number | TypeFlags.String | TypeFlags.Any)) === 0) { + error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); + } + } + function checkObjectLiteral(node: ObjectLiteralExpression, contextualMapper?: TypeMapper): Type { // Grammar checking checkGrammarObjectLiteralExpression(node); @@ -5443,7 +5454,12 @@ module ts { checkAccessorDeclaration(memberDecl); } - properties[member.name] = member; + if (hasComputedNameButNotSymbol(memberDecl)) { + checkComputedPropertyName(memberDecl.name); + } + else { + properties[member.name] = member; + } } var stringIndexType = getIndexType(IndexKind.String); diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 03df069a9ab..6354633fe60 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -299,6 +299,7 @@ module ts { Type_0_is_not_an_array_type: { code: 2461, category: DiagnosticCategory.Error, key: "Type '{0}' is not an array type." }, A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: DiagnosticCategory.Error, key: "A rest element must be last in an array destructuring pattern" }, A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', or 'any'." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 6be3bb65c77..8268af730ec 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -675,7 +675,7 @@ }, "A parameter property may not be a binding pattern.": { "category": "Error", - "code": 1187 + "code": 1187 }, "Duplicate identifier '{0}'.": { @@ -1288,7 +1288,11 @@ }, "A binding pattern parameter cannot be optional in an implementation signature.": { "category": "Error", - "code": 2463 + "code": 2463 + }, + "A computed property name must be of type 'string', 'number', or 'any'.": { + "category": "Error", + "code": 2464 }, "Import declaration '{0}' is using private name '{1}'.": { diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 7494ec9f6cb..f1fab4137e2 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -527,6 +527,8 @@ module ts { return node === (parent).expression; case SyntaxKind.TemplateSpan: return node === (parent).expression; + case SyntaxKind.ComputedPropertyName: + return node === (parent).expression; default: if (isExpression(parent)) { return true; diff --git a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt index 386e1e8f63c..2c8d034649e 100644 --- a/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration8_es6.errors.txt @@ -1,10 +1,13 @@ 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(1,12): error TS2304: Cannot find name 'yield'. tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts(1,20): error TS2304: Cannot find name 'foo'. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (2 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts (3 errors) ==== var v = { [yield]: foo } ~~~~~~~ !!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. + ~~~~~ +!!! error TS2304: Cannot find name 'yield'. ~~~ !!! error TS2304: Cannot find name 'foo'. \ 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 902a195e8fc..ef744681fa1 100644 --- a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt +++ b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt @@ -1,12 +1,15 @@ 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(2,13): error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. +tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(2,14): error TS9000: 'yield' expressions are not currently supported. -==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (2 errors) ==== +==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (3 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. + ~~~~~ +!!! error TS9000: 'yield' expressions are not currently supported. } \ 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 0999186ec09..c8c356a57ad 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt @@ -1,10 +1,13 @@ 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,13): error TS2304: Cannot find name 'foo'. -==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (2 errors) ==== +==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (3 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 +!!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. + ~~~ +!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName1.errors.txt b/tests/baselines/reference/parserComputedPropertyName1.errors.txt index 508d06a915c..2258051a46e 100644 --- a/tests/baselines/reference/parserComputedPropertyName1.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName1.errors.txt @@ -1,7 +1,10 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts(1,12): error TS2304: Cannot find name 'e'. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts(1,15): error TS1005: ':' expected. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts (2 errors) ==== var v = { [e] }; + ~ +!!! error TS2304: Cannot find name 'e'. ~ !!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName17.errors.txt b/tests/baselines/reference/parserComputedPropertyName17.errors.txt new file mode 100644 index 00000000000..d8b43ada527 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName17.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts(1,16): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts (1 errors) ==== + var v = { set [e](v) { } } + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName17.types b/tests/baselines/reference/parserComputedPropertyName17.types deleted file mode 100644 index 8ae109dda37..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName17.types +++ /dev/null @@ -1,7 +0,0 @@ -=== 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.errors.txt b/tests/baselines/reference/parserComputedPropertyName2.errors.txt new file mode 100644 index 00000000000..864c7adf1b5 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName2.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts(1,12): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts (1 errors) ==== + var v = { [e]: 1 }; + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName2.types b/tests/baselines/reference/parserComputedPropertyName2.types deleted file mode 100644 index 8e533282e28..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName2.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts === -var v = { [e]: 1 }; ->v : {} ->{ [e]: 1 } : {} ->e : unknown - diff --git a/tests/baselines/reference/parserComputedPropertyName3.errors.txt b/tests/baselines/reference/parserComputedPropertyName3.errors.txt new file mode 100644 index 00000000000..4b20c55f499 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName3.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts(1,12): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts (1 errors) ==== + var v = { [e]() { } }; + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName3.types b/tests/baselines/reference/parserComputedPropertyName3.types deleted file mode 100644 index 8a5cfafbd40..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName3.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts === -var v = { [e]() { } }; ->v : {} ->{ [e]() { } } : {} ->e : unknown - diff --git a/tests/baselines/reference/parserComputedPropertyName37.errors.txt b/tests/baselines/reference/parserComputedPropertyName37.errors.txt new file mode 100644 index 00000000000..64a9e7e99dc --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName37.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts(2,6): error TS2304: Cannot find name 'public'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts (1 errors) ==== + var v = { + [public]: 0 + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + }; \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName37.types b/tests/baselines/reference/parserComputedPropertyName37.types deleted file mode 100644 index ebcd0ca276c..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName37.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts === -var v = { ->v : {} ->{ [public]: 0} : {} - - [public]: 0 ->public : unknown - -}; diff --git a/tests/baselines/reference/parserComputedPropertyName4.errors.txt b/tests/baselines/reference/parserComputedPropertyName4.errors.txt index ec90ebf8df1..bfc78b162fd 100644 --- a/tests/baselines/reference/parserComputedPropertyName4.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName4.errors.txt @@ -1,7 +1,10 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts(1,15): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts(1,16): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts (2 errors) ==== var v = { get [e]() { } }; ~~~ -!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName41.errors.txt b/tests/baselines/reference/parserComputedPropertyName41.errors.txt new file mode 100644 index 00000000000..65d4ec8627f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName41.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts(2,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts (1 errors) ==== + var v = { + [0 in []]: true + ~~~~~~~~~ +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName41.types b/tests/baselines/reference/parserComputedPropertyName41.types deleted file mode 100644 index 468a44e6b9e..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName41.types +++ /dev/null @@ -1,9 +0,0 @@ -=== 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/parserComputedPropertyName5.errors.txt b/tests/baselines/reference/parserComputedPropertyName5.errors.txt index 1d321dc156e..07cc6f3a9f0 100644 --- a/tests/baselines/reference/parserComputedPropertyName5.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName5.errors.txt @@ -1,7 +1,10 @@ tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,22): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts(1,23): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts (2 errors) ==== var v = { public get [e]() { } }; ~~~ -!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName6.errors.txt b/tests/baselines/reference/parserComputedPropertyName6.errors.txt new file mode 100644 index 00000000000..90f1b688408 --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName6.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts(1,12): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts(1,20): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts(1,24): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts (3 errors) ==== + var v = { [e]: 1, [e + e]: 2 }; + ~ +!!! 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/parserComputedPropertyName6.types b/tests/baselines/reference/parserComputedPropertyName6.types deleted file mode 100644 index 5fa7e79c32c..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName6.types +++ /dev/null @@ -1,9 +0,0 @@ -=== 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 - diff --git a/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt index dc7d7e7ba30..5918387942d 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName2.errors.txt @@ -1,7 +1,10 @@ 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,12): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts (2 errors) ==== var v = { [e]: 1 }; ~~~ -!!! error TS1167: 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. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt index 376c1a29ae4..097ab1ea9cb 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName3.errors.txt @@ -1,7 +1,10 @@ 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,12): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts (2 errors) ==== var v = { [e]() { } }; ~~~ -!!! error TS1167: 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. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt index df262603331..ca69791c93c 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.errors.txt @@ -1,10 +1,13 @@ 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,15): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts(1,16): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts (3 errors) ==== var v = { get [e]() { } }; ~~~ !!! error TS1167: Computed property names are only available when targeting ECMAScript 6 and higher. ~~~ -!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. \ No newline at end of file +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file From 4ac2b4b9c87d4025e47bde52d2cadd31b2c18870 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 12 Jan 2015 14:04:34 -0800 Subject: [PATCH 039/211] Add tests for object literals with computed properties --- .../reference/computedPropertyNames4.js | 35 ++++++++++++++ .../reference/computedPropertyNames4.types | 48 +++++++++++++++++++ .../computedPropertyNames5.errors.txt | 30 ++++++++++++ .../reference/computedPropertyNames5.js | 21 ++++++++ .../computedPropertyNames6.errors.txt | 20 ++++++++ .../reference/computedPropertyNames6.js | 19 ++++++++ .../computedPropertyNames7.errors.txt | 12 +++++ .../reference/computedPropertyNames7.js | 16 +++++++ .../computedPropertyNames8.errors.txt | 17 +++++++ .../reference/computedPropertyNames8.js | 19 ++++++++ .../computedPropertyNames9.errors.txt | 16 +++++++ .../reference/computedPropertyNames9.js | 20 ++++++++ .../computedPropertyNames4.ts | 17 +++++++ .../computedPropertyNames5.ts | 10 ++++ .../computedPropertyNames6.ts | 9 ++++ .../computedPropertyNames7.ts | 7 +++ .../computedPropertyNames8.ts | 9 ++++ .../computedPropertyNames9.ts | 11 +++++ 18 files changed, 336 insertions(+) create mode 100644 tests/baselines/reference/computedPropertyNames4.js create mode 100644 tests/baselines/reference/computedPropertyNames4.types create mode 100644 tests/baselines/reference/computedPropertyNames5.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames5.js create mode 100644 tests/baselines/reference/computedPropertyNames6.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames6.js create mode 100644 tests/baselines/reference/computedPropertyNames7.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames7.js create mode 100644 tests/baselines/reference/computedPropertyNames8.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames8.js create mode 100644 tests/baselines/reference/computedPropertyNames9.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames9.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames4.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts diff --git a/tests/baselines/reference/computedPropertyNames4.js b/tests/baselines/reference/computedPropertyNames4.js new file mode 100644 index 00000000000..5acb6d957da --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames4.js @@ -0,0 +1,35 @@ +//// [computedPropertyNames4.ts] +var s: string; +var n: number; +var a: any; +var v = { + [s]: 0, + [n]: n, + [s + s]: 1, + [s + n]: 2, + [+s]: s, + [""]: 0, + [0]: 0, + [a]: 1, + [true]: 0, + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +} + +//// [computedPropertyNames4.js] +var s; +var n; +var a; +var v = { + [s]: 0, + [n]: n, + [s + s]: 1, + [s + n]: 2, + [+s]: s, + [""]: 0, + [0]: 0, + [a]: 1, + [true]: 0, + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames4.types b/tests/baselines/reference/computedPropertyNames4.types new file mode 100644 index 00000000000..968cc86b598 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames4.types @@ -0,0 +1,48 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames4.ts === +var s: string; +>s : string + +var n: number; +>n : number + +var a: any; +>a : any + +var v = { +>v : {} +>{ [s]: 0, [n]: n, [s + s]: 1, [s + n]: 2, [+s]: s, [""]: 0, [0]: 0, [a]: 1, [true]: 0, [`hello bye`]: 0, [`hello ${a} bye`]: 0} : {} + + [s]: 0, +>s : string + + [n]: n, +>n : number +>n : number + + [s + s]: 1, +>s + s : string +>s : string +>s : string + + [s + n]: 2, +>s + n : string +>s : string +>n : number + + [+s]: s, +>+s : number +>s : string +>s : string + + [""]: 0, + [0]: 0, + [a]: 1, +>a : any + + [true]: 0, +>true : any + + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +>a : any +} diff --git a/tests/baselines/reference/computedPropertyNames5.errors.txt b/tests/baselines/reference/computedPropertyNames5.errors.txt new file mode 100644 index 00000000000..f7ca4b97e9f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames5.errors.txt @@ -0,0 +1,30 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(3,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(4,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(8,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts (6 errors) ==== + var b: boolean; + var v = { + [b]: 0, + ~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [true]: 1, + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [[]]: 0, + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [{}]: 0, + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [undefined]: undefined, + ~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [null]: null + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames5.js b/tests/baselines/reference/computedPropertyNames5.js new file mode 100644 index 00000000000..d0158da6400 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames5.js @@ -0,0 +1,21 @@ +//// [computedPropertyNames5.ts] +var b: boolean; +var v = { + [b]: 0, + [true]: 1, + [[]]: 0, + [{}]: 0, + [undefined]: undefined, + [null]: null +} + +//// [computedPropertyNames5.js] +var b; +var v = { + [b]: 0, + [true]: 1, + [[]]: 0, + [{}]: 0, + [undefined]: undefined, + [null]: null +}; diff --git a/tests/baselines/reference/computedPropertyNames6.errors.txt b/tests/baselines/reference/computedPropertyNames6.errors.txt new file mode 100644 index 00000000000..e9e150e2739 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames6.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts (3 errors) ==== + var p1: number | string; + var p2: number | number[]; + var p3: string | boolean; + var v = { + [p1]: 0, + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [p2]: 1, + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [p3]: 2 + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames6.js b/tests/baselines/reference/computedPropertyNames6.js new file mode 100644 index 00000000000..e131ef4417f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames6.js @@ -0,0 +1,19 @@ +//// [computedPropertyNames6.ts] +var p1: number | string; +var p2: number | number[]; +var p3: string | boolean; +var v = { + [p1]: 0, + [p2]: 1, + [p3]: 2 +} + +//// [computedPropertyNames6.js] +var p1; +var p2; +var p3; +var v = { + [p1]: 0, + [p2]: 1, + [p3]: 2 +}; diff --git a/tests/baselines/reference/computedPropertyNames7.errors.txt b/tests/baselines/reference/computedPropertyNames7.errors.txt new file mode 100644 index 00000000000..b519369956c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames7.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts (1 errors) ==== + enum E { + member + } + var v = { + [E.member]: 0 + ~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames7.js b/tests/baselines/reference/computedPropertyNames7.js new file mode 100644 index 00000000000..075b149522b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames7.js @@ -0,0 +1,16 @@ +//// [computedPropertyNames7.ts] +enum E { + member +} +var v = { + [E.member]: 0 +} + +//// [computedPropertyNames7.js] +var E; +(function (E) { + E[E["member"] = 0] = "member"; +})(E || (E = {})); +var v = { + [0 /* member */]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames8.errors.txt b/tests/baselines/reference/computedPropertyNames8.errors.txt new file mode 100644 index 00000000000..99aa43b9276 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames8.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts (2 errors) ==== + function f() { + var t: T; + var u: U; + var v = { + [t]: 0, + ~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [u]: 1 + ~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + }; + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames8.js b/tests/baselines/reference/computedPropertyNames8.js new file mode 100644 index 00000000000..44a21d79a1c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames8.js @@ -0,0 +1,19 @@ +//// [computedPropertyNames8.ts] +function f() { + var t: T; + var u: U; + var v = { + [t]: 0, + [u]: 1 + }; +} + +//// [computedPropertyNames8.js] +function f() { + var t; + var u; + var v = { + [t]: 0, + [u]: 1 + }; +} diff --git a/tests/baselines/reference/computedPropertyNames9.errors.txt b/tests/baselines/reference/computedPropertyNames9.errors.txt new file mode 100644 index 00000000000..8450e1fd092 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames9.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts(9,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts (1 errors) ==== + function f(s: string): string; + function f(n: number): number; + function f(x: T): T; + function f(x): any { } + + var v = { + [f("")]: 0, + [f(0)]: 0, + [f(true)]: 0 + ~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames9.js b/tests/baselines/reference/computedPropertyNames9.js new file mode 100644 index 00000000000..ede8bb3012b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames9.js @@ -0,0 +1,20 @@ +//// [computedPropertyNames9.ts] +function f(s: string): string; +function f(n: number): number; +function f(x: T): T; +function f(x): any { } + +var v = { + [f("")]: 0, + [f(0)]: 0, + [f(true)]: 0 +} + +//// [computedPropertyNames9.js] +function f(x) { +} +var v = { + [f("")]: 0, + [f(0)]: 0, + [f(true)]: 0 +}; diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames4.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames4.ts new file mode 100644 index 00000000000..a6d4e17c44a --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames4.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +var v = { + [s]: 0, + [n]: n, + [s + s]: 1, + [s + n]: 2, + [+s]: s, + [""]: 0, + [0]: 0, + [a]: 1, + [true]: 0, + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts new file mode 100644 index 00000000000..590f819c4e4 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts @@ -0,0 +1,10 @@ +// @target: es6 +var b: boolean; +var v = { + [b]: 0, + [true]: 1, + [[]]: 0, + [{}]: 0, + [undefined]: undefined, + [null]: null +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts new file mode 100644 index 00000000000..b21b76b03f2 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts @@ -0,0 +1,9 @@ +// @target: es6 +var p1: number | string; +var p2: number | number[]; +var p3: string | boolean; +var v = { + [p1]: 0, + [p2]: 1, + [p3]: 2 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts new file mode 100644 index 00000000000..5063d1e2d0c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts @@ -0,0 +1,7 @@ +// @target: es6 +enum E { + member +} +var v = { + [E.member]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts new file mode 100644 index 00000000000..95b6398a62d --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts @@ -0,0 +1,9 @@ +// @target: es6 +function f() { + var t: T; + var u: U; + var v = { + [t]: 0, + [u]: 1 + }; +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts new file mode 100644 index 00000000000..21dc4eaa1e9 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts @@ -0,0 +1,11 @@ +// @target: es6 +function f(s: string): string; +function f(n: number): number; +function f(x: T): T; +function f(x): any { } + +var v = { + [f("")]: 0, + [f(0)]: 0, + [f(true)]: 0 +} \ No newline at end of file From 4c0122d879eeb9c2b6517c84b3c0c71e21ad2eb0 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 12 Jan 2015 17:21:55 -0800 Subject: [PATCH 040/211] Move computed property checks so that they will be checked in classes and interfaces --- src/compiler/checker.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 15df97de4c9..e15dcb37d70 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5421,7 +5421,7 @@ module ts { memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment || isObjectLiteralMethod(memberDecl)) { if (memberDecl.kind === SyntaxKind.PropertyAssignment) { - var type = checkExpression((memberDecl).initializer, contextualMapper); + var type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === SyntaxKind.MethodDeclaration) { var type = checkObjectLiteralMethod(memberDecl, contextualMapper); @@ -5454,10 +5454,7 @@ module ts { checkAccessorDeclaration(memberDecl); } - if (hasComputedNameButNotSymbol(memberDecl)) { - checkComputedPropertyName(memberDecl.name); - } - else { + if (!hasComputedNameButNotSymbol(memberDecl)) { properties[member.name] = member; } } @@ -7050,10 +7047,22 @@ module ts { return links.resolvedType; } + function checkPropertyAssignment(node: PropertyAssignment, contextualMapper?: TypeMapper): Type { + if (hasComputedNameButNotSymbol(node)) { + checkComputedPropertyName(node.name); + } + + return checkExpression((node).initializer, contextualMapper); + } + function checkObjectLiteralMethod(node: MethodDeclaration, contextualMapper?: TypeMapper): Type { // Grammar checking checkGrammarMethod(node); + if (hasComputedNameButNotSymbol(node)) { + checkComputedPropertyName(node.name); + } + var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } @@ -7862,7 +7871,12 @@ module ts { function checkFunctionLikeDeclaration(node: FunctionLikeDeclaration): void { checkSignatureDeclaration(node); - if (!hasComputedNameButNotSymbol(node)) { + if (hasComputedNameButNotSymbol(node)) { + // This check will account for methods in class/interface declarations, + // as well as accessors in classes/object literals + checkComputedPropertyName(node.name); + } + else { // 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 @@ -8092,6 +8106,7 @@ module ts { checkSourceElement(node.type); // For a computed property, just check the initializer and exit if (hasComputedNameButNotSymbol(node)) { + checkComputedPropertyName(node.name); if (node.initializer) { checkExpressionCached(node.initializer); } From de3eb36b2cfa0153d5e39bd400d99c55feaa4349 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 13 Jan 2015 10:30:32 -0800 Subject: [PATCH 041/211] Update baselines --- .../MemberFunctionDeclaration3_es6.errors.txt | 5 +- .../reference/complicatedPrivacy.errors.txt | 7 +- .../computedPropertyNames3.errors.txt | 14 +- tests/baselines/reference/giant.errors.txt | 26 ++- ...SignatureMustHaveTypeAnnotation.errors.txt | 18 ++- .../indexSignatureWithInitializer.errors.txt | 13 +- .../indexWithoutParamType2.errors.txt | 8 +- .../reference/intTypeCheck.errors.txt | 150 +++++++++--------- .../parserComputedPropertyName10.errors.txt | 5 +- .../parserComputedPropertyName11.errors.txt | 5 +- .../parserComputedPropertyName12.errors.txt | 9 ++ .../parserComputedPropertyName12.types | 7 - .../parserComputedPropertyName13.errors.txt | 7 +- .../parserComputedPropertyName14.errors.txt | 7 +- .../parserComputedPropertyName15.errors.txt | 7 +- .../parserComputedPropertyName18.errors.txt | 7 +- .../parserComputedPropertyName19.errors.txt | 7 +- .../parserComputedPropertyName20.errors.txt | 5 +- .../parserComputedPropertyName21.errors.txt | 5 +- .../parserComputedPropertyName22.errors.txt | 5 +- .../parserComputedPropertyName23.errors.txt | 5 +- .../parserComputedPropertyName24.errors.txt | 9 ++ .../parserComputedPropertyName24.types | 8 - .../parserComputedPropertyName25.errors.txt | 5 +- .../parserComputedPropertyName27.errors.txt | 5 +- .../parserComputedPropertyName28.errors.txt | 8 +- .../parserComputedPropertyName29.errors.txt | 8 +- .../parserComputedPropertyName31.errors.txt | 8 +- .../parserComputedPropertyName32.errors.txt | 5 +- .../parserComputedPropertyName33.errors.txt | 5 +- .../parserComputedPropertyName36.errors.txt | 5 +- .../parserComputedPropertyName38.errors.txt | 9 ++ .../parserComputedPropertyName38.types | 7 - .../parserComputedPropertyName40.errors.txt | 9 ++ .../parserComputedPropertyName40.types | 8 - .../parserComputedPropertyName7.errors.txt | 5 +- .../parserComputedPropertyName8.errors.txt | 5 +- .../parserComputedPropertyName9.errors.txt | 5 +- .../parserES5ComputedPropertyName1.errors.txt | 5 +- ...parserES5ComputedPropertyName10.errors.txt | 5 +- ...parserES5ComputedPropertyName11.errors.txt | 5 +- .../parserES5ComputedPropertyName5.errors.txt | 5 +- .../parserES5ComputedPropertyName7.errors.txt | 5 +- .../parserES5ComputedPropertyName8.errors.txt | 7 +- .../parserES5ComputedPropertyName9.errors.txt | 5 +- .../parserIndexSignature11.errors.txt | 7 +- .../parserIndexSignature4.errors.txt | 7 +- .../parserIndexSignature5.errors.txt | 7 +- .../reference/propertyAssignment.errors.txt | 7 +- tests/cases/compiler/complicatedPrivacy.ts | 2 +- .../indexSignatureMustHaveTypeAnnotation.ts | 2 + .../compiler/indexSignatureWithInitializer.ts | 1 + .../cases/compiler/indexWithoutParamType2.ts | 1 + tests/cases/compiler/intTypeCheck.ts | 8 +- tests/cases/compiler/propertyAssignment.ts | 2 +- .../IndexSignatures/parserIndexSignature11.ts | 2 +- .../IndexSignatures/parserIndexSignature4.ts | 2 +- .../IndexSignatures/parserIndexSignature5.ts | 2 +- 58 files changed, 356 insertions(+), 167 deletions(-) create mode 100644 tests/baselines/reference/parserComputedPropertyName12.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName12.types create mode 100644 tests/baselines/reference/parserComputedPropertyName24.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName24.types create mode 100644 tests/baselines/reference/parserComputedPropertyName38.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName38.types create mode 100644 tests/baselines/reference/parserComputedPropertyName40.errors.txt delete mode 100644 tests/baselines/reference/parserComputedPropertyName40.types diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt index b43e266e2a5..826c1d7fd75 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt +++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'foo'. -==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (1 errors) ==== +==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (2 errors) ==== class C { *[foo]() { } ~ !!! error TS9001: Generators are not currently supported. + ~~~ +!!! error TS2304: Cannot find name 'foo'. } \ No newline at end of file diff --git a/tests/baselines/reference/complicatedPrivacy.errors.txt b/tests/baselines/reference/complicatedPrivacy.errors.txt index fd47927f883..5aa399d1d84 100644 --- a/tests/baselines/reference/complicatedPrivacy.errors.txt +++ b/tests/baselines/reference/complicatedPrivacy.errors.txt @@ -1,8 +1,9 @@ tests/cases/compiler/complicatedPrivacy.ts(24,38): error TS1005: ';' expected. +tests/cases/compiler/complicatedPrivacy.ts(35,6): error TS2304: Cannot find name 'number'. tests/cases/compiler/complicatedPrivacy.ts(73,49): error TS2305: Module 'mglo5' has no exported member 'i6'. -==== tests/cases/compiler/complicatedPrivacy.ts (2 errors) ==== +==== tests/cases/compiler/complicatedPrivacy.ts (3 errors) ==== module m1 { export module m2 { @@ -39,7 +40,9 @@ tests/cases/compiler/complicatedPrivacy.ts(73,49): error TS2305: Module 'mglo5' export function f4(arg1: { - [number]: C1; + [number]: C1; // Used to be indexer, now it is a computed property + ~~~~~~ +!!! error TS2304: Cannot find name 'number'. }) { } diff --git a/tests/baselines/reference/computedPropertyNames3.errors.txt b/tests/baselines/reference/computedPropertyNames3.errors.txt index 37a4ddaf1c0..ad98baf6a14 100644 --- a/tests/baselines/reference/computedPropertyNames3.errors.txt +++ b/tests/baselines/reference/computedPropertyNames3.errors.txt @@ -1,18 +1,30 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(4,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. 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(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. 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(7,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (2 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (6 errors) ==== var id; class C { [0 + 1]() { } static [() => { }]() { } + ~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. get [delete id]() { } ~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. set [[0, 1]](v) { } + ~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. static get [""]() { } ~~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. static set [id.toString()](v) { } } \ No newline at end of file diff --git a/tests/baselines/reference/giant.errors.txt b/tests/baselines/reference/giant.errors.txt index fbe05bbfc79..e8c574d2115 100644 --- a/tests/baselines/reference/giant.errors.txt +++ b/tests/baselines/reference/giant.errors.txt @@ -17,6 +17,7 @@ tests/cases/compiler/giant.ts(35,12): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(36,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(36,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(61,5): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(61,6): error TS2304: Cannot find name 'p'. 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(76,5): error TS2386: Overload signatures must all be optional or required. @@ -39,6 +40,7 @@ tests/cases/compiler/giant.ts(99,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(100,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(100,20): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(125,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(125,10): error TS2304: Cannot find name 'p'. 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(140,9): error TS2386: Overload signatures must all be optional or required. @@ -62,6 +64,7 @@ tests/cases/compiler/giant.ts(178,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(179,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(179,20): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(204,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(204,10): error TS2304: Cannot find name 'p'. 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(219,9): error TS2386: Overload signatures must all be optional or required. @@ -117,6 +120,7 @@ tests/cases/compiler/giant.ts(293,12): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(294,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(294,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(319,5): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(319,6): error TS2304: Cannot find name 'p'. 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(334,5): error TS2386: Overload signatures must all be optional or required. @@ -139,6 +143,7 @@ tests/cases/compiler/giant.ts(357,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(358,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(358,20): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(383,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(383,10): error TS2304: Cannot find name 'p'. 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(398,9): error TS2386: Overload signatures must all be optional or required. @@ -162,6 +167,7 @@ tests/cases/compiler/giant.ts(436,16): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(437,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/giant.ts(437,20): error TS2300: Duplicate identifier 'tgF'. tests/cases/compiler/giant.ts(462,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(462,10): error TS2304: Cannot find name 'p'. 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(477,9): error TS2386: Overload signatures must all be optional or required. @@ -233,6 +239,7 @@ tests/cases/compiler/giant.ts(558,24): error TS1184: An implementation cannot be tests/cases/compiler/giant.ts(561,21): error TS1184: An implementation cannot be declared in ambient contexts. tests/cases/compiler/giant.ts(563,21): error TS1184: An implementation cannot be declared in ambient contexts. tests/cases/compiler/giant.ts(587,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(587,10): error TS2304: Cannot find name 'p'. 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(602,9): error TS2386: Overload signatures must all be optional or required. @@ -249,6 +256,7 @@ tests/cases/compiler/giant.ts(623,24): error TS1184: An implementation cannot be tests/cases/compiler/giant.ts(626,21): error TS1184: An implementation cannot be declared in ambient contexts. tests/cases/compiler/giant.ts(628,21): error TS1184: An implementation cannot be declared in ambient contexts. tests/cases/compiler/giant.ts(653,9): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/giant.ts(653,10): error TS2304: Cannot find name 'p'. 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(668,9): error TS2386: Overload signatures must all be optional or required. @@ -257,7 +265,7 @@ tests/cases/compiler/giant.ts(672,25): error TS1036: Statements are not allowed tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be declared in ambient contexts. -==== tests/cases/compiler/giant.ts (257 errors) ==== +==== tests/cases/compiler/giant.ts (265 errors) ==== /* Prefixes @@ -357,6 +365,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -465,6 +475,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -590,6 +602,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -815,6 +829,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -923,6 +939,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1048,6 +1066,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1315,6 +1335,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [p1: string]; ~~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. @@ -1413,6 +1435,8 @@ tests/cases/compiler/giant.ts(676,30): error TS1184: An implementation cannot be [p]; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [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 294282d1e9e..82e96bf3846 100644 --- a/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt +++ b/tests/baselines/reference/indexSignatureMustHaveTypeAnnotation.errors.txt @@ -1,23 +1,31 @@ -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. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(3,5): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(3,6): error TS2304: Cannot find name 'x'. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(4,5): error TS1021: An index signature must have a type annotation. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(9,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(9,6): error TS2304: Cannot find name 'x'. +tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts(14,5): error TS1021: An index signature must have a type annotation. -==== tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts (4 errors) ==== +==== tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts (6 errors) ==== interface I { + // Used to be indexer, now it is a computed property [x]: string; ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'x'. [x: string]; ~~~~~~~~~~~~ !!! error TS1021: An index signature must have a type annotation. } class C { + // Used to be indexer, now it is a computed property [x]: string ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'x'. } diff --git a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt index 6fb708a3b80..d6f547a25cb 100644 --- a/tests/baselines/reference/indexSignatureWithInitializer.errors.txt +++ b/tests/baselines/reference/indexSignatureWithInitializer.errors.txt @@ -1,16 +1,23 @@ -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. +tests/cases/compiler/indexSignatureWithInitializer.ts(3,5): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/compiler/indexSignatureWithInitializer.ts(3,6): error TS2304: Cannot find name 'x'. +tests/cases/compiler/indexSignatureWithInitializer.ts(7,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexSignatureWithInitializer.ts(7,6): error TS2304: Cannot find name 'x'. -==== tests/cases/compiler/indexSignatureWithInitializer.ts (2 errors) ==== +==== tests/cases/compiler/indexSignatureWithInitializer.ts (4 errors) ==== + // These used to be indexers, now they are computed properties interface I { [x = '']: string; ~~~~~~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'x'. } class C { [x = 0]: string ~~~~~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'x'. } \ No newline at end of file diff --git a/tests/baselines/reference/indexWithoutParamType2.errors.txt b/tests/baselines/reference/indexWithoutParamType2.errors.txt index 41527d0859f..468368b5f23 100644 --- a/tests/baselines/reference/indexWithoutParamType2.errors.txt +++ b/tests/baselines/reference/indexWithoutParamType2.errors.txt @@ -1,9 +1,13 @@ -tests/cases/compiler/indexWithoutParamType2.ts(2,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexWithoutParamType2.ts(3,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/compiler/indexWithoutParamType2.ts(3,6): error TS2304: Cannot find name 'x'. -==== tests/cases/compiler/indexWithoutParamType2.ts (1 errors) ==== +==== tests/cases/compiler/indexWithoutParamType2.ts (2 errors) ==== class C { + // Used to be indexer, now it is a computed property [x]: string ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'x'. } \ No newline at end of file diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index 5f7c213a916..bd8b2048045 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -1,91 +1,93 @@ -tests/cases/compiler/intTypeCheck.ts(83,5): error TS2386: Overload signatures must all be optional or required. -tests/cases/compiler/intTypeCheck.ts(97,5): error TS2322: Type 'Object' is not assignable to type 'i1'. +tests/cases/compiler/intTypeCheck.ts(35,6): error TS2304: Cannot find name 'p'. +tests/cases/compiler/intTypeCheck.ts(71,6): error TS2304: Cannot find name 'p'. +tests/cases/compiler/intTypeCheck.ts(85,5): error TS2386: Overload signatures must all be optional or required. +tests/cases/compiler/intTypeCheck.ts(99,5): error TS2322: Type 'Object' is not assignable to type 'i1'. Property 'p' is missing in type 'Object'. -tests/cases/compiler/intTypeCheck.ts(98,16): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(99,5): error TS2322: Type 'Base' is not assignable to type 'i1'. +tests/cases/compiler/intTypeCheck.ts(100,16): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(101,5): error TS2322: Type 'Base' is not assignable to type 'i1'. Property 'p' is missing in type 'Base'. -tests/cases/compiler/intTypeCheck.ts(101,5): error TS2322: Type '() => void' is not assignable to type 'i1'. +tests/cases/compiler/intTypeCheck.ts(103,5): error TS2322: Type '() => void' is not assignable to type 'i1'. Property 'p' is missing in type '() => void'. -tests/cases/compiler/intTypeCheck.ts(104,5): error TS2322: Type 'boolean' is not assignable to type 'i1'. +tests/cases/compiler/intTypeCheck.ts(106,5): error TS2322: Type 'boolean' is not assignable to type 'i1'. Property 'p' is missing in type 'Boolean'. -tests/cases/compiler/intTypeCheck.ts(104,20): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(104,21): error TS2304: Cannot find name 'i1'. -tests/cases/compiler/intTypeCheck.ts(105,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(110,5): error TS2322: Type '{}' is not assignable to type 'i2'. -tests/cases/compiler/intTypeCheck.ts(111,5): error TS2322: Type 'Object' is not assignable to type 'i2'. -tests/cases/compiler/intTypeCheck.ts(112,17): error TS2350: Only a void function can be called with the 'new' keyword. -tests/cases/compiler/intTypeCheck.ts(113,5): error TS2322: Type 'Base' is not assignable to type 'i2'. -tests/cases/compiler/intTypeCheck.ts(118,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. -tests/cases/compiler/intTypeCheck.ts(118,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(118,22): error TS2304: Cannot find name 'i2'. -tests/cases/compiler/intTypeCheck.ts(119,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(124,5): error TS2322: Type '{}' is not assignable to type 'i3'. -tests/cases/compiler/intTypeCheck.ts(125,5): error TS2322: Type 'Object' is not assignable to type 'i3'. -tests/cases/compiler/intTypeCheck.ts(127,5): error TS2322: Type 'Base' is not assignable to type 'i3'. -tests/cases/compiler/intTypeCheck.ts(129,5): error TS2322: Type '() => void' is not assignable to type 'i3'. -tests/cases/compiler/intTypeCheck.ts(132,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. -tests/cases/compiler/intTypeCheck.ts(132,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(132,22): error TS2304: Cannot find name 'i3'. -tests/cases/compiler/intTypeCheck.ts(133,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(139,5): error TS2322: Type 'Object' is not assignable to type 'i4'. +tests/cases/compiler/intTypeCheck.ts(106,20): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(106,21): error TS2304: Cannot find name 'i1'. +tests/cases/compiler/intTypeCheck.ts(107,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(112,5): error TS2322: Type '{}' is not assignable to type 'i2'. +tests/cases/compiler/intTypeCheck.ts(113,5): error TS2322: Type 'Object' is not assignable to type 'i2'. +tests/cases/compiler/intTypeCheck.ts(114,17): error TS2350: Only a void function can be called with the 'new' keyword. +tests/cases/compiler/intTypeCheck.ts(115,5): error TS2322: Type 'Base' is not assignable to type 'i2'. +tests/cases/compiler/intTypeCheck.ts(120,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. +tests/cases/compiler/intTypeCheck.ts(120,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(120,22): error TS2304: Cannot find name 'i2'. +tests/cases/compiler/intTypeCheck.ts(121,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(126,5): error TS2322: Type '{}' is not assignable to type 'i3'. +tests/cases/compiler/intTypeCheck.ts(127,5): error TS2322: Type 'Object' is not assignable to type 'i3'. +tests/cases/compiler/intTypeCheck.ts(129,5): error TS2322: Type 'Base' is not assignable to type 'i3'. +tests/cases/compiler/intTypeCheck.ts(131,5): error TS2322: Type '() => void' is not assignable to type 'i3'. +tests/cases/compiler/intTypeCheck.ts(134,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. +tests/cases/compiler/intTypeCheck.ts(134,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(134,22): error TS2304: Cannot find name 'i3'. +tests/cases/compiler/intTypeCheck.ts(135,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(141,5): error TS2322: Type 'Object' is not assignable to type 'i4'. Index signature is missing in type 'Object'. -tests/cases/compiler/intTypeCheck.ts(140,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(141,5): error TS2322: Type 'Base' is not assignable to type 'i4'. +tests/cases/compiler/intTypeCheck.ts(142,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(143,5): error TS2322: Type 'Base' is not assignable to type 'i4'. Index signature is missing in type 'Base'. -tests/cases/compiler/intTypeCheck.ts(143,5): error TS2322: Type '() => void' is not assignable to type 'i4'. +tests/cases/compiler/intTypeCheck.ts(145,5): error TS2322: Type '() => void' is not assignable to type 'i4'. Index signature is missing in type '() => void'. -tests/cases/compiler/intTypeCheck.ts(146,5): error TS2322: Type 'boolean' is not assignable to type 'i4'. +tests/cases/compiler/intTypeCheck.ts(148,5): error TS2322: Type 'boolean' is not assignable to type 'i4'. Index signature is missing in type 'Boolean'. -tests/cases/compiler/intTypeCheck.ts(146,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(146,22): error TS2304: Cannot find name 'i4'. -tests/cases/compiler/intTypeCheck.ts(147,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(152,5): error TS2322: Type '{}' is not assignable to type 'i5'. +tests/cases/compiler/intTypeCheck.ts(148,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(148,22): error TS2304: Cannot find name 'i4'. +tests/cases/compiler/intTypeCheck.ts(149,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(154,5): error TS2322: Type '{}' is not assignable to type 'i5'. Property 'p' is missing in type '{}'. -tests/cases/compiler/intTypeCheck.ts(153,5): error TS2322: Type 'Object' is not assignable to type 'i5'. +tests/cases/compiler/intTypeCheck.ts(155,5): error TS2322: Type 'Object' is not assignable to type 'i5'. Property 'p' is missing in type 'Object'. -tests/cases/compiler/intTypeCheck.ts(154,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(155,5): error TS2322: Type 'Base' is not assignable to type 'i5'. +tests/cases/compiler/intTypeCheck.ts(156,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(157,5): error TS2322: Type 'Base' is not assignable to type 'i5'. Property 'p' is missing in type 'Base'. -tests/cases/compiler/intTypeCheck.ts(157,5): error TS2322: Type '() => void' is not assignable to type 'i5'. +tests/cases/compiler/intTypeCheck.ts(159,5): error TS2322: Type '() => void' is not assignable to type 'i5'. Property 'p' is missing in type '() => void'. -tests/cases/compiler/intTypeCheck.ts(160,5): error TS2322: Type 'boolean' is not assignable to type 'i5'. +tests/cases/compiler/intTypeCheck.ts(162,5): error TS2322: Type 'boolean' is not assignable to type 'i5'. Property 'p' is missing in type 'Boolean'. -tests/cases/compiler/intTypeCheck.ts(160,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(160,22): error TS2304: Cannot find name 'i5'. -tests/cases/compiler/intTypeCheck.ts(161,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(166,5): error TS2322: Type '{}' is not assignable to type 'i6'. -tests/cases/compiler/intTypeCheck.ts(167,5): error TS2322: Type 'Object' is not assignable to type 'i6'. -tests/cases/compiler/intTypeCheck.ts(168,17): error TS2350: Only a void function can be called with the 'new' keyword. -tests/cases/compiler/intTypeCheck.ts(169,5): error TS2322: Type 'Base' is not assignable to type 'i6'. -tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type '() => void' is not assignable to type 'i6'. +tests/cases/compiler/intTypeCheck.ts(162,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(162,22): error TS2304: Cannot find name 'i5'. +tests/cases/compiler/intTypeCheck.ts(163,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(168,5): error TS2322: Type '{}' is not assignable to type 'i6'. +tests/cases/compiler/intTypeCheck.ts(169,5): error TS2322: Type 'Object' is not assignable to type 'i6'. +tests/cases/compiler/intTypeCheck.ts(170,17): error TS2350: Only a void function can be called with the 'new' keyword. +tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not assignable to type 'i6'. +tests/cases/compiler/intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. Type 'void' is not assignable to type 'number'. -tests/cases/compiler/intTypeCheck.ts(174,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. -tests/cases/compiler/intTypeCheck.ts(174,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(174,22): error TS2304: Cannot find name 'i6'. -tests/cases/compiler/intTypeCheck.ts(175,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(180,5): error TS2322: Type '{}' is not assignable to type 'i7'. -tests/cases/compiler/intTypeCheck.ts(181,5): error TS2322: Type 'Object' is not assignable to type 'i7'. -tests/cases/compiler/intTypeCheck.ts(183,17): error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. -tests/cases/compiler/intTypeCheck.ts(185,5): error TS2322: Type '() => void' is not assignable to type 'i7'. -tests/cases/compiler/intTypeCheck.ts(188,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. -tests/cases/compiler/intTypeCheck.ts(188,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(188,22): error TS2304: Cannot find name 'i7'. -tests/cases/compiler/intTypeCheck.ts(189,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(195,5): error TS2322: Type 'Object' is not assignable to type 'i8'. +tests/cases/compiler/intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. +tests/cases/compiler/intTypeCheck.ts(176,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(176,22): error TS2304: Cannot find name 'i6'. +tests/cases/compiler/intTypeCheck.ts(177,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(182,5): error TS2322: Type '{}' is not assignable to type 'i7'. +tests/cases/compiler/intTypeCheck.ts(183,5): error TS2322: Type 'Object' is not assignable to type 'i7'. +tests/cases/compiler/intTypeCheck.ts(185,17): error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. +tests/cases/compiler/intTypeCheck.ts(187,5): error TS2322: Type '() => void' is not assignable to type 'i7'. +tests/cases/compiler/intTypeCheck.ts(190,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. +tests/cases/compiler/intTypeCheck.ts(190,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(190,22): error TS2304: Cannot find name 'i7'. +tests/cases/compiler/intTypeCheck.ts(191,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(197,5): error TS2322: Type 'Object' is not assignable to type 'i8'. Index signature is missing in type 'Object'. -tests/cases/compiler/intTypeCheck.ts(196,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(197,5): error TS2322: Type 'Base' is not assignable to type 'i8'. +tests/cases/compiler/intTypeCheck.ts(198,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(199,5): error TS2322: Type 'Base' is not assignable to type 'i8'. Index signature is missing in type 'Base'. -tests/cases/compiler/intTypeCheck.ts(199,5): error TS2322: Type '() => void' is not assignable to type 'i8'. +tests/cases/compiler/intTypeCheck.ts(201,5): error TS2322: Type '() => void' is not assignable to type 'i8'. Index signature is missing in type '() => void'. -tests/cases/compiler/intTypeCheck.ts(202,5): error TS2322: Type 'boolean' is not assignable to type 'i8'. +tests/cases/compiler/intTypeCheck.ts(204,5): error TS2322: Type 'boolean' is not assignable to type 'i8'. Index signature is missing in type 'Boolean'. -tests/cases/compiler/intTypeCheck.ts(202,21): error TS1109: Expression expected. -tests/cases/compiler/intTypeCheck.ts(202,22): error TS2304: Cannot find name 'i8'. -tests/cases/compiler/intTypeCheck.ts(203,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. +tests/cases/compiler/intTypeCheck.ts(204,21): error TS1109: Expression expected. +tests/cases/compiler/intTypeCheck.ts(204,22): error TS2304: Cannot find name 'i8'. +tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -==== tests/cases/compiler/intTypeCheck.ts (67 errors) ==== +==== tests/cases/compiler/intTypeCheck.ts (69 errors) ==== interface i1 { //Property Signatures p; @@ -119,8 +121,11 @@ tests/cases/compiler/intTypeCheck.ts(203,17): error TS2351: Cannot use 'new' wit new (p6: string, ...p7: any[]); } interface i4 { - //Index Signatures + // Used to be indexer, now it is a computed property [p]; + ~ +!!! error TS2304: Cannot find name 'p'. + //Index Signatures [p1: string]; [p2: string, p3: number]; } @@ -153,9 +158,12 @@ tests/cases/compiler/intTypeCheck.ts(203,17): error TS2351: Cannot use 'new' wit new (...p3: any[]); new (p4: string, p5?: string); new (p6: string, ...p7: any[]); - - //Index Signatures + + // Used to be indexer, now it is a computed property [p]; + ~ +!!! error TS2304: Cannot find name 'p'. + //Index Signatures [p1: string]; [p2: string, p3: number]; diff --git a/tests/baselines/reference/parserComputedPropertyName10.errors.txt b/tests/baselines/reference/parserComputedPropertyName10.errors.txt index 704c37ebf45..061e2c40c2d 100644 --- a/tests/baselines/reference/parserComputedPropertyName10.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName10.errors.txt @@ -1,9 +1,12 @@ 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(2,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts (2 errors) ==== class C { [e] = 1 ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName11.errors.txt b/tests/baselines/reference/parserComputedPropertyName11.errors.txt index f47aa75031d..65748f72b24 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 TS1168: Computed property names are not allowed in method overloads. +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts(2,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts (2 errors) ==== class C { [e](); ~~~ !!! error TS1168: Computed property names are not allowed in method overloads. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName12.errors.txt b/tests/baselines/reference/parserComputedPropertyName12.errors.txt new file mode 100644 index 00000000000..46baacf402d --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName12.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts(2,5): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts (1 errors) ==== + class C { + [e]() { } + ~ +!!! error TS2304: Cannot find name 'e'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName12.types b/tests/baselines/reference/parserComputedPropertyName12.types deleted file mode 100644 index fcc96bc4d51..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName12.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts === -class C { ->C : C - - [e]() { } ->e : unknown -} diff --git a/tests/baselines/reference/parserComputedPropertyName13.errors.txt b/tests/baselines/reference/parserComputedPropertyName13.errors.txt index 33ef5f9141a..b209f3c7d01 100644 --- a/tests/baselines/reference/parserComputedPropertyName13.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName13.errors.txt @@ -1,7 +1,10 @@ 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,11): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts (2 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName14.errors.txt b/tests/baselines/reference/parserComputedPropertyName14.errors.txt index d2f7ad34ed9..6ac2d276a80 100644 --- a/tests/baselines/reference/parserComputedPropertyName14.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName14.errors.txt @@ -1,7 +1,10 @@ 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,11): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts (2 errors) ==== var v: { [e](): number }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName15.errors.txt b/tests/baselines/reference/parserComputedPropertyName15.errors.txt index b09ddb73112..f66e5930c26 100644 --- a/tests/baselines/reference/parserComputedPropertyName15.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName15.errors.txt @@ -1,7 +1,10 @@ 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,32): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts (2 errors) ==== var v: { [e: number]: string; [e]: number }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName18.errors.txt b/tests/baselines/reference/parserComputedPropertyName18.errors.txt index 72833dda837..f7485a127cb 100644 --- a/tests/baselines/reference/parserComputedPropertyName18.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName18.errors.txt @@ -1,7 +1,10 @@ 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,11): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts (2 errors) ==== var v: { [e]?(): number }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName19.errors.txt b/tests/baselines/reference/parserComputedPropertyName19.errors.txt index 22dbfff3c61..65c22ff36c3 100644 --- a/tests/baselines/reference/parserComputedPropertyName19.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName19.errors.txt @@ -1,7 +1,10 @@ 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,11): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts (2 errors) ==== var v: { [e]? }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName20.errors.txt b/tests/baselines/reference/parserComputedPropertyName20.errors.txt index 36a7e2d4866..d65dfede1d2 100644 --- a/tests/baselines/reference/parserComputedPropertyName20.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName20.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts (2 errors) ==== interface I { [e](): number ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName21.errors.txt b/tests/baselines/reference/parserComputedPropertyName21.errors.txt index 5850de24b76..5a9738a23a6 100644 --- a/tests/baselines/reference/parserComputedPropertyName21.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName21.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts (2 errors) ==== interface I { [e]: number ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName22.errors.txt b/tests/baselines/reference/parserComputedPropertyName22.errors.txt index 5149c937108..ce20dd0c587 100644 --- a/tests/baselines/reference/parserComputedPropertyName22.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName22.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts (2 errors) ==== declare class C { [e]: number ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName23.errors.txt b/tests/baselines/reference/parserComputedPropertyName23.errors.txt index 2018032ef94..8c95992253c 100644 --- a/tests/baselines/reference/parserComputedPropertyName23.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName23.errors.txt @@ -1,9 +1,12 @@ 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(2,10): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts (2 errors) ==== declare class C { get [e](): number ~~~ !!! error TS1086: An accessor cannot be declared in an ambient context. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName24.errors.txt b/tests/baselines/reference/parserComputedPropertyName24.errors.txt new file mode 100644 index 00000000000..29bcb05ea0f --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName24.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts(2,10): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts (1 errors) ==== + class C { + set [e](v) { } + ~ +!!! error TS2304: Cannot find name 'e'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName24.types b/tests/baselines/reference/parserComputedPropertyName24.types deleted file mode 100644 index d2de5244057..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName24.types +++ /dev/null @@ -1,8 +0,0 @@ -=== 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/parserComputedPropertyName25.errors.txt b/tests/baselines/reference/parserComputedPropertyName25.errors.txt index c8dd6b3bc7c..8d26c8afdb7 100644 --- a/tests/baselines/reference/parserComputedPropertyName25.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName25.errors.txt @@ -1,13 +1,16 @@ 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(3,6): error TS2304: Cannot find name 'e'. 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) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts (3 errors) ==== class C { // No ASI [e] = 0 ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. [e2] = 1 ~~ !!! error TS2304: Cannot find name 'e2'. diff --git a/tests/baselines/reference/parserComputedPropertyName27.errors.txt b/tests/baselines/reference/parserComputedPropertyName27.errors.txt index 7c8e30bf25d..3792cf0eccd 100644 --- a/tests/baselines/reference/parserComputedPropertyName27.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName27.errors.txt @@ -1,11 +1,14 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts(3,6): error TS2304: Cannot find name 'e'. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts(4,6): error TS2304: Cannot find name 'e2'. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts(4,9): error TS1005: ';' expected. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts (3 errors) ==== class C { // No ASI [e]: number = 0 + ~ +!!! error TS2304: Cannot find name 'e'. [e2]: number ~~ !!! error TS2304: Cannot find name 'e2'. diff --git a/tests/baselines/reference/parserComputedPropertyName28.errors.txt b/tests/baselines/reference/parserComputedPropertyName28.errors.txt index bc32f34c151..c522ec031eb 100644 --- a/tests/baselines/reference/parserComputedPropertyName28.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName28.errors.txt @@ -1,13 +1,19 @@ 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(2,6): error TS2304: Cannot find name 'e'. 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(3,6): error TS2304: Cannot find name 'e2'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts (4 errors) ==== class C { [e]: number = 0; ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. [e2]: number ~~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~~ +!!! error TS2304: Cannot find name 'e2'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName29.errors.txt b/tests/baselines/reference/parserComputedPropertyName29.errors.txt index 691a240375a..5e6baed0f06 100644 --- a/tests/baselines/reference/parserComputedPropertyName29.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName29.errors.txt @@ -1,17 +1,23 @@ 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(3,6): error TS2304: Cannot find name 'e'. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts(3,11): error TS2304: Cannot find name 'id'. 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(4,6): error TS2304: Cannot find name 'e2'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts (3 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts (5 errors) ==== class C { // yes ASI [e] = id++ ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. ~~ !!! error TS2304: Cannot find name 'id'. [e2]: number ~~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~~ +!!! error TS2304: Cannot find name 'e2'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName31.errors.txt b/tests/baselines/reference/parserComputedPropertyName31.errors.txt index 6dddbd859c9..97a3b1ee187 100644 --- a/tests/baselines/reference/parserComputedPropertyName31.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName31.errors.txt @@ -1,14 +1,20 @@ 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(3,6): error TS2304: Cannot find name 'e'. 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(4,6): error TS2304: Cannot find name 'e2'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts (4 errors) ==== class C { // yes ASI [e]: number ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. [e2]: number ~~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~~ +!!! error TS2304: Cannot find name 'e2'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName32.errors.txt b/tests/baselines/reference/parserComputedPropertyName32.errors.txt index 4407014cf99..da423baaa05 100644 --- a/tests/baselines/reference/parserComputedPropertyName32.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName32.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts (2 errors) ==== declare class C { [e](): number ~~~ !!! error TS1165: Computed property names are not allowed in an ambient context. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName33.errors.txt b/tests/baselines/reference/parserComputedPropertyName33.errors.txt index d56ee49863f..5ce420ceb60 100644 --- a/tests/baselines/reference/parserComputedPropertyName33.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName33.errors.txt @@ -1,12 +1,15 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts(3,6): error TS2304: Cannot find name 'e'. tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts(4,6): error TS2304: Cannot find name 'e2'. 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 (3 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts (4 errors) ==== class C { // No ASI [e] = 0 + ~ +!!! error TS2304: Cannot find name 'e'. [e2]() { } ~~ !!! error TS2304: Cannot find name 'e2'. diff --git a/tests/baselines/reference/parserComputedPropertyName36.errors.txt b/tests/baselines/reference/parserComputedPropertyName36.errors.txt index d10d826d1a9..1b4130b0e27 100644 --- a/tests/baselines/reference/parserComputedPropertyName36.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName36.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'public'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts (2 errors) ==== class C { [public ]: string; ~~~~~~~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName38.errors.txt b/tests/baselines/reference/parserComputedPropertyName38.errors.txt new file mode 100644 index 00000000000..4322abf44ed --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName38.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts(2,6): error TS2304: Cannot find name 'public'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts (1 errors) ==== + class C { + [public]() { } + ~~~~~~ +!!! error TS2304: Cannot find name 'public'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName38.types b/tests/baselines/reference/parserComputedPropertyName38.types deleted file mode 100644 index c77b9fcc67f..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName38.types +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts === -class C { ->C : C - - [public]() { } ->public : unknown -} diff --git a/tests/baselines/reference/parserComputedPropertyName40.errors.txt b/tests/baselines/reference/parserComputedPropertyName40.errors.txt new file mode 100644 index 00000000000..862836ae47d --- /dev/null +++ b/tests/baselines/reference/parserComputedPropertyName40.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts(2,6): error TS2304: Cannot find name 'a'. + + +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts (1 errors) ==== + class C { + [a ? "" : ""]() {} + ~ +!!! error TS2304: Cannot find name 'a'. + } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName40.types b/tests/baselines/reference/parserComputedPropertyName40.types deleted file mode 100644 index 1b0b3ae49f0..00000000000 --- a/tests/baselines/reference/parserComputedPropertyName40.types +++ /dev/null @@ -1,8 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts === -class C { ->C : C - - [a ? "" : ""]() {} ->a ? "" : "" : string ->a : unknown -} diff --git a/tests/baselines/reference/parserComputedPropertyName7.errors.txt b/tests/baselines/reference/parserComputedPropertyName7.errors.txt index 21147be3074..bcf39b0ca0a 100644 --- a/tests/baselines/reference/parserComputedPropertyName7.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName7.errors.txt @@ -1,9 +1,12 @@ 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(2,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts (2 errors) ==== class C { [e] ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName8.errors.txt b/tests/baselines/reference/parserComputedPropertyName8.errors.txt index 75352ec9e51..250c7a52c6e 100644 --- a/tests/baselines/reference/parserComputedPropertyName8.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName8.errors.txt @@ -1,9 +1,12 @@ 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(2,12): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts (2 errors) ==== class C { public [e] ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserComputedPropertyName9.errors.txt b/tests/baselines/reference/parserComputedPropertyName9.errors.txt index eb5cfd28d73..fd434046564 100644 --- a/tests/baselines/reference/parserComputedPropertyName9.errors.txt +++ b/tests/baselines/reference/parserComputedPropertyName9.errors.txt @@ -1,12 +1,15 @@ 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,5): error TS2304: Cannot find name 'e'. 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) ==== +==== tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts (3 errors) ==== class C { [e]: Type ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. ~~~~ !!! 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 5bae79b95aa..55af923e54b 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName1.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts (2 errors) ==== declare class C { [e]: number ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt index 40bec1b4f38..7db85cdef35 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName10.errors.txt @@ -1,9 +1,12 @@ 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(2,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts (2 errors) ==== class C { [e] = 1 ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt index 124db7da75a..ead27a994d1 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName11.errors.txt @@ -1,9 +1,12 @@ 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,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts (2 errors) ==== class C { [e](); ~~~ !!! error TS1168: Computed property names are not allowed in method overloads. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt index 8eeeef1516f..122ca20a0e4 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName5.errors.txt @@ -1,9 +1,12 @@ 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(2,6): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts (2 errors) ==== interface I { [e]: number ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt index 6aefd27ef58..d38d57d87be 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName7.errors.txt @@ -1,9 +1,12 @@ 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(2,5): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts (2 errors) ==== class C { [e] ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt index 4595081c145..e52727c6929 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName8.errors.txt @@ -1,7 +1,10 @@ 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,11): error TS2304: Cannot find name 'e'. -==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts (2 errors) ==== var v: { [e]: number }; ~~~ -!!! error TS1170: Computed property names are not allowed in type literals. \ No newline at end of file +!!! error TS1170: Computed property names are not allowed in type literals. + ~ +!!! error TS2304: Cannot find name 'e'. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt index 6d035a7c610..8cbe0ffcf8d 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt +++ b/tests/baselines/reference/parserES5ComputedPropertyName9.errors.txt @@ -1,12 +1,15 @@ 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,5): error TS2304: Cannot find name 'e'. 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) ==== +==== tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts (3 errors) ==== class C { [e]: Type ~~~ !!! error TS1166: Computed property names are not allowed in class property declarations. + ~ +!!! error TS2304: Cannot find name 'e'. ~~~~ !!! 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 c9976e2bc4a..8cf474b19bb 100644 --- a/tests/baselines/reference/parserIndexSignature11.errors.txt +++ b/tests/baselines/reference/parserIndexSignature11.errors.txt @@ -1,13 +1,16 @@ 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(2,10): error TS2304: Cannot find name 'p'. 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. -==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts (3 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts (4 errors) ==== interface I { - [p]; + [p]; // Used to be indexer, now it is a computed property ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'p'. [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 0f11eb17f3c..d625f27eb6f 100644 --- a/tests/baselines/reference/parserIndexSignature4.errors.txt +++ b/tests/baselines/reference/parserIndexSignature4.errors.txt @@ -1,9 +1,12 @@ 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(2,4): error TS2304: Cannot find name 'a'. -==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts (2 errors) ==== interface I { - [a = 0] + [a = 0] // Used to be indexer, now it is a computed property ~~~~~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'a'. } \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexSignature5.errors.txt b/tests/baselines/reference/parserIndexSignature5.errors.txt index 6400383f9d2..3f3415973d9 100644 --- a/tests/baselines/reference/parserIndexSignature5.errors.txt +++ b/tests/baselines/reference/parserIndexSignature5.errors.txt @@ -1,9 +1,12 @@ 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(2,4): error TS2304: Cannot find name 'a'. -==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts (2 errors) ==== interface I { - [a] + [a] // Used to be indexer, now it is a computed property ~~~ !!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2304: Cannot find name 'a'. } \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index 2ea55a1a2d3..51850754a9a 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,17 +1,20 @@ tests/cases/compiler/propertyAssignment.ts(6,13): error TS1170: Computed property names are not allowed in type literals. +tests/cases/compiler/propertyAssignment.ts(6,14): error TS2304: Cannot find name 'index'. 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'. -==== tests/cases/compiler/propertyAssignment.ts (3 errors) ==== +==== tests/cases/compiler/propertyAssignment.ts (4 errors) ==== var foo1: { new ():any; } var bar1: { x : number; } - var foo2: { [index]; } // should be an error + var foo2: { [index]; } // should be an error, used to be indexer, now it is a computed property ~~~~~~~ !!! error TS1170: Computed property names are not allowed in type literals. + ~~~~~ +!!! error TS2304: Cannot find name 'index'. var bar2: { x : number; } var foo3: { ():void; } diff --git a/tests/cases/compiler/complicatedPrivacy.ts b/tests/cases/compiler/complicatedPrivacy.ts index 6c1e3fa8527..6fe144d237c 100644 --- a/tests/cases/compiler/complicatedPrivacy.ts +++ b/tests/cases/compiler/complicatedPrivacy.ts @@ -33,7 +33,7 @@ module m1 { export function f4(arg1: { - [number]: C1; + [number]: C1; // Used to be indexer, now it is a computed property }) { } diff --git a/tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts b/tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts index fbe24e975e9..47d818065a1 100644 --- a/tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts +++ b/tests/cases/compiler/indexSignatureMustHaveTypeAnnotation.ts @@ -1,9 +1,11 @@ interface I { + // Used to be indexer, now it is a computed property [x]: string; [x: string]; } class C { + // Used to be indexer, now it is a computed property [x]: string } diff --git a/tests/cases/compiler/indexSignatureWithInitializer.ts b/tests/cases/compiler/indexSignatureWithInitializer.ts index a7b185eee0e..f9a4aafc699 100644 --- a/tests/cases/compiler/indexSignatureWithInitializer.ts +++ b/tests/cases/compiler/indexSignatureWithInitializer.ts @@ -1,3 +1,4 @@ +// These used to be indexers, now they are computed properties interface I { [x = '']: string; } diff --git a/tests/cases/compiler/indexWithoutParamType2.ts b/tests/cases/compiler/indexWithoutParamType2.ts index 9a1976fe9ef..0def5dc06a9 100644 --- a/tests/cases/compiler/indexWithoutParamType2.ts +++ b/tests/cases/compiler/indexWithoutParamType2.ts @@ -1,3 +1,4 @@ class C { + // Used to be indexer, now it is a computed property [x]: string } \ No newline at end of file diff --git a/tests/cases/compiler/intTypeCheck.ts b/tests/cases/compiler/intTypeCheck.ts index 787dc944c43..a1563097863 100644 --- a/tests/cases/compiler/intTypeCheck.ts +++ b/tests/cases/compiler/intTypeCheck.ts @@ -31,8 +31,9 @@ interface i3 { new (p6: string, ...p7: any[]); } interface i4 { - //Index Signatures + // Used to be indexer, now it is a computed property [p]; + //Index Signatures [p1: string]; [p2: string, p3: number]; } @@ -65,9 +66,10 @@ interface i11 { new (...p3: any[]); new (p4: string, p5?: string); new (p6: string, ...p7: any[]); - - //Index Signatures + + // Used to be indexer, now it is a computed property [p]; + //Index Signatures [p1: string]; [p2: string, p3: number]; diff --git a/tests/cases/compiler/propertyAssignment.ts b/tests/cases/compiler/propertyAssignment.ts index 0afb8fb60a7..0c8351fb05d 100644 --- a/tests/cases/compiler/propertyAssignment.ts +++ b/tests/cases/compiler/propertyAssignment.ts @@ -3,7 +3,7 @@ var foo1: { new ():any; } var bar1: { x : number; } -var foo2: { [index]; } // should be an error +var foo2: { [index]; } // should be an error, used to be indexer, now it is a computed property var bar2: { x : number; } var foo3: { ():void; } diff --git a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts index 4ef57a277ac..1c78f24a213 100644 --- a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts +++ b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts @@ -1,5 +1,5 @@ interface I { - [p]; + [p]; // Used to be indexer, now it is a computed property [p1: string]; [p2: string, p3: number]; } \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts index a12f8aecf21..a6cf3a720a9 100644 --- a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts +++ b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts @@ -1,3 +1,3 @@ interface I { - [a = 0] + [a = 0] // Used to be indexer, now it is a computed property } \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts index 5970ab6d8fb..e77c8fe9bb0 100644 --- a/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts +++ b/tests/cases/conformance/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts @@ -1,3 +1,3 @@ interface I { - [a] + [a] // Used to be indexer, now it is a computed property } \ No newline at end of file From 96b5f1fe431673619d0559d96b17afe22dc0d0aa Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 13 Jan 2015 16:10:24 -0800 Subject: [PATCH 042/211] Add tests for classes, methods, accessors with computed properties --- .../reference/computedPropertyNames10.js | 46 +++++++++ .../reference/computedPropertyNames10.types | 46 +++++++++ .../reference/computedPropertyNames11.js | 52 ++++++++++ .../reference/computedPropertyNames11.types | 53 ++++++++++ .../computedPropertyNames12.errors.txt | 52 ++++++++++ .../reference/computedPropertyNames13.js | 49 +++++++++ .../reference/computedPropertyNames13.types | 45 +++++++++ .../computedPropertyNames14.errors.txt | 30 ++++++ .../reference/computedPropertyNames14.js | 30 ++++++ .../computedPropertyNames15.errors.txt | 20 ++++ .../reference/computedPropertyNames15.js | 25 +++++ .../reference/computedPropertyNames16.js | 99 +++++++++++++++++++ .../reference/computedPropertyNames16.types | 52 ++++++++++ .../computedPropertyNames17.errors.txt | 30 ++++++ .../reference/computedPropertyNames17.js | 57 +++++++++++ .../computedPropertyNames10.ts | 17 ++++ .../computedPropertyNames11.ts | 17 ++++ .../computedPropertyNames12.ts | 17 ++++ .../computedPropertyNames13.ts | 17 ++++ .../computedPropertyNames14.ts | 10 ++ .../computedPropertyNames15.ts | 9 ++ .../computedPropertyNames16.ts | 17 ++++ .../computedPropertyNames17.ts | 10 ++ 23 files changed, 800 insertions(+) create mode 100644 tests/baselines/reference/computedPropertyNames10.js create mode 100644 tests/baselines/reference/computedPropertyNames10.types create mode 100644 tests/baselines/reference/computedPropertyNames11.js create mode 100644 tests/baselines/reference/computedPropertyNames11.types create mode 100644 tests/baselines/reference/computedPropertyNames12.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames13.js create mode 100644 tests/baselines/reference/computedPropertyNames13.types create mode 100644 tests/baselines/reference/computedPropertyNames14.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames14.js create mode 100644 tests/baselines/reference/computedPropertyNames15.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames15.js create mode 100644 tests/baselines/reference/computedPropertyNames16.js create mode 100644 tests/baselines/reference/computedPropertyNames16.types create mode 100644 tests/baselines/reference/computedPropertyNames17.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames17.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames10.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames11.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames13.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames16.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts diff --git a/tests/baselines/reference/computedPropertyNames10.js b/tests/baselines/reference/computedPropertyNames10.js new file mode 100644 index 00000000000..138cbd7a4b2 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames10.js @@ -0,0 +1,46 @@ +//// [computedPropertyNames10.ts] +var s: string; +var n: number; +var a: any; +var v = { + [s]() { }, + [n]() { }, + [s + s]() { }, + [s + n]() { }, + [+s]() { }, + [""]() { }, + [0]() { }, + [a]() { }, + [true]() { }, + [`hello bye`]() { }, + [`hello ${a} bye`]() { } +} + +//// [computedPropertyNames10.js] +var s; +var n; +var a; +var v = { + [s]() { + }, + [n]() { + }, + [s + s]() { + }, + [s + n]() { + }, + [+s]() { + }, + [""]() { + }, + [0]() { + }, + [a]() { + }, + [true]() { + }, + [`hello bye`]() { + }, + [`hello ${a} bye`]() { + } +}; diff --git a/tests/baselines/reference/computedPropertyNames10.types b/tests/baselines/reference/computedPropertyNames10.types new file mode 100644 index 00000000000..29bf6c43bef --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames10.types @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames10.ts === +var s: string; +>s : string + +var n: number; +>n : number + +var a: any; +>a : any + +var v = { +>v : {} +>{ [s]() { }, [n]() { }, [s + s]() { }, [s + n]() { }, [+s]() { }, [""]() { }, [0]() { }, [a]() { }, [true]() { }, [`hello bye`]() { }, [`hello ${a} bye`]() { }} : {} + + [s]() { }, +>s : string + + [n]() { }, +>n : number + + [s + s]() { }, +>s + s : string +>s : string +>s : string + + [s + n]() { }, +>s + n : string +>s : string +>n : number + + [+s]() { }, +>+s : number +>s : string + + [""]() { }, + [0]() { }, + [a]() { }, +>a : any + + [true]() { }, +>true : any + + [`hello bye`]() { }, + [`hello ${a} bye`]() { } +>a : any +} diff --git a/tests/baselines/reference/computedPropertyNames11.js b/tests/baselines/reference/computedPropertyNames11.js new file mode 100644 index 00000000000..d82a7c4e512 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames11.js @@ -0,0 +1,52 @@ +//// [computedPropertyNames11.ts] +var s: string; +var n: number; +var a: any; +var v = { + get [s]() { return 0; }, + set [n](v) { }, + get [s + s]() { return 0; }, + set [s + n](v) { }, + get [+s]() { return 0; }, + set [""](v) { }, + get [0]() { return 0; }, + set [a](v) { }, + get [true]() { return 0; }, + set [`hello bye`](v) { }, + get [`hello ${a} bye`]() { return 0; } +} + +//// [computedPropertyNames11.js] +var s; +var n; +var a; +var v = { + get [s]() { + return 0; + }, + set [n](v) { + }, + get [s + s]() { + return 0; + }, + set [s + n](v) { + }, + get [+s]() { + return 0; + }, + set [""](v) { + }, + get [0]() { + return 0; + }, + set [a](v) { + }, + get [true]() { + return 0; + }, + set [`hello bye`](v) { + }, + get [`hello ${a} bye`]() { + return 0; + } +}; diff --git a/tests/baselines/reference/computedPropertyNames11.types b/tests/baselines/reference/computedPropertyNames11.types new file mode 100644 index 00000000000..ee0796320d6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames11.types @@ -0,0 +1,53 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames11.ts === +var s: string; +>s : string + +var n: number; +>n : number + +var a: any; +>a : any + +var v = { +>v : {} +>{ get [s]() { return 0; }, set [n](v) { }, get [s + s]() { return 0; }, set [s + n](v) { }, get [+s]() { return 0; }, set [""](v) { }, get [0]() { return 0; }, set [a](v) { }, get [true]() { return 0; }, set [`hello bye`](v) { }, get [`hello ${a} bye`]() { return 0; }} : {} + + get [s]() { return 0; }, +>s : string + + set [n](v) { }, +>n : number +>v : any + + get [s + s]() { return 0; }, +>s + s : string +>s : string +>s : string + + set [s + n](v) { }, +>s + n : string +>s : string +>n : number +>v : any + + get [+s]() { return 0; }, +>+s : number +>s : string + + set [""](v) { }, +>v : any + + get [0]() { return 0; }, + set [a](v) { }, +>a : any +>v : any + + get [true]() { return 0; }, +>true : any + + set [`hello bye`](v) { }, +>v : any + + get [`hello ${a} bye`]() { return 0; } +>a : any +} diff --git a/tests/baselines/reference/computedPropertyNames12.errors.txt b/tests/baselines/reference/computedPropertyNames12.errors.txt new file mode 100644 index 00000000000..56774fe8dae --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames12.errors.txt @@ -0,0 +1,52 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(5,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(6,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(7,12): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(8,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(9,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(10,12): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(11,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(12,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(13,12): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(14,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts(15,12): error TS1166: Computed property names are not allowed in class property declarations. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts (11 errors) ==== + var s: string; + var n: number; + var a: any; + class C { + [s]: number; + ~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [n] = n; + ~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + static [s + s]: string; + ~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [s + n] = 2; + ~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [+s]: typeof s; + ~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + static [""]: number; + ~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [0]: number; + ~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [a]: number; + ~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + static [true]: number; + ~~~~~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + [`hello bye`] = 0; + ~~~~~~~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + static [`hello ${a} bye`] = 0 + ~~~~~~~~~~~~~~~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames13.js b/tests/baselines/reference/computedPropertyNames13.js new file mode 100644 index 00000000000..ea531a9c644 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames13.js @@ -0,0 +1,49 @@ +//// [computedPropertyNames13.ts] +var s: string; +var n: number; +var a: any; +class C { + [s]() {} + [n]() { } + static [s + s]() { } + [s + n]() { } + [+s]() { } + static [""]() { } + [0]() { } + [a]() { } + static [true]() { } + [`hello bye`]() { } + static [`hello ${a} bye`]() { } +} + +//// [computedPropertyNames13.js] +var s; +var n; +var a; +var C = (function () { + function C() { + } + C.prototype[s] = function () { + }; + C.prototype[n] = function () { + }; + C[s + s] = function () { + }; + C.prototype[s + n] = function () { + }; + C.prototype[+s] = function () { + }; + C[""] = function () { + }; + C.prototype[0] = function () { + }; + C.prototype[a] = function () { + }; + C[true] = function () { + }; + C.prototype[`hello bye`] = function () { + }; + C[`hello ${a} bye`] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames13.types b/tests/baselines/reference/computedPropertyNames13.types new file mode 100644 index 00000000000..4f267f2e893 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames13.types @@ -0,0 +1,45 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames13.ts === +var s: string; +>s : string + +var n: number; +>n : number + +var a: any; +>a : any + +class C { +>C : C + + [s]() {} +>s : string + + [n]() { } +>n : number + + static [s + s]() { } +>s + s : string +>s : string +>s : string + + [s + n]() { } +>s + n : string +>s : string +>n : number + + [+s]() { } +>+s : number +>s : string + + static [""]() { } + [0]() { } + [a]() { } +>a : any + + static [true]() { } +>true : any + + [`hello bye`]() { } + static [`hello ${a} bye`]() { } +>a : any +} diff --git a/tests/baselines/reference/computedPropertyNames14.errors.txt b/tests/baselines/reference/computedPropertyNames14.errors.txt new file mode 100644 index 00000000000..fe38166f9ab --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames14.errors.txt @@ -0,0 +1,30 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(3,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(4,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(6,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(8,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts (6 errors) ==== + var b: boolean; + class C { + [b]() {} + ~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + static [true]() { } + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [[]]() { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + static [{}]() { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [undefined]() { } + ~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + static [null]() { } + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames14.js b/tests/baselines/reference/computedPropertyNames14.js new file mode 100644 index 00000000000..aa551795da6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames14.js @@ -0,0 +1,30 @@ +//// [computedPropertyNames14.ts] +var b: boolean; +class C { + [b]() {} + static [true]() { } + [[]]() { } + static [{}]() { } + [undefined]() { } + static [null]() { } +} + +//// [computedPropertyNames14.js] +var b; +var C = (function () { + function C() { + } + C.prototype[b] = function () { + }; + C[true] = function () { + }; + C.prototype[[]] = function () { + }; + C[{}] = function () { + }; + C.prototype[undefined] = function () { + }; + C[null] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames15.errors.txt b/tests/baselines/reference/computedPropertyNames15.errors.txt new file mode 100644 index 00000000000..ee8d5b96bca --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames15.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts (3 errors) ==== + var p1: number | string; + var p2: number | number[]; + var p3: string | boolean; + class C { + [p1]() { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [p2]() { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + [p3]() { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames15.js b/tests/baselines/reference/computedPropertyNames15.js new file mode 100644 index 00000000000..1b506bbeb90 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames15.js @@ -0,0 +1,25 @@ +//// [computedPropertyNames15.ts] +var p1: number | string; +var p2: number | number[]; +var p3: string | boolean; +class C { + [p1]() { } + [p2]() { } + [p3]() { } +} + +//// [computedPropertyNames15.js] +var p1; +var p2; +var p3; +var C = (function () { + function C() { + } + C.prototype[p1] = function () { + }; + C.prototype[p2] = function () { + }; + C.prototype[p3] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames16.js b/tests/baselines/reference/computedPropertyNames16.js new file mode 100644 index 00000000000..295deb9ee82 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames16.js @@ -0,0 +1,99 @@ +//// [computedPropertyNames16.ts] +var s: string; +var n: number; +var a: any; +class C { + get [s]() { return 0;} + set [n](v) { } + static get [s + s]() { return 0; } + set [s + n](v) { } + get [+s]() { return 0; } + static set [""](v) { } + get [0]() { return 0; } + set [a](v) { } + static get [true]() { return 0; } + set [`hello bye`](v) { } + get [`hello ${a} bye`]() { return 0; } +} + +//// [computedPropertyNames16.js] +var s; +var n; +var a; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, s, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, n, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, s + s, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, s + n, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, +s, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, "", { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, 0, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, a, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, true, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, `hello bye`, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, `hello ${a} bye`, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames16.types b/tests/baselines/reference/computedPropertyNames16.types new file mode 100644 index 00000000000..ccfa7996066 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames16.types @@ -0,0 +1,52 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames16.ts === +var s: string; +>s : string + +var n: number; +>n : number + +var a: any; +>a : any + +class C { +>C : C + + get [s]() { return 0;} +>s : string + + set [n](v) { } +>n : number +>v : any + + static get [s + s]() { return 0; } +>s + s : string +>s : string +>s : string + + set [s + n](v) { } +>s + n : string +>s : string +>n : number +>v : any + + get [+s]() { return 0; } +>+s : number +>s : string + + static set [""](v) { } +>v : any + + get [0]() { return 0; } + set [a](v) { } +>a : any +>v : any + + static get [true]() { return 0; } +>true : any + + set [`hello bye`](v) { } +>v : any + + get [`hello ${a} bye`]() { return 0; } +>a : any +} diff --git a/tests/baselines/reference/computedPropertyNames17.errors.txt b/tests/baselines/reference/computedPropertyNames17.errors.txt new file mode 100644 index 00000000000..3b0ceb2c653 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames17.errors.txt @@ -0,0 +1,30 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(3,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(4,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(7,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(8,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts (6 errors) ==== + var b: boolean; + class C { + get [b]() { return 0;} + ~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + static set [true](v) { } + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + get [[]]() { return 0; } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + set [{}](v) { } + ~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + static get [undefined]() { return 0; } + ~~~~~~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + set [null](v) { } + ~~~~~~ +!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames17.js b/tests/baselines/reference/computedPropertyNames17.js new file mode 100644 index 00000000000..5a55dbf7e1b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames17.js @@ -0,0 +1,57 @@ +//// [computedPropertyNames17.ts] +var b: boolean; +class C { + get [b]() { return 0;} + static set [true](v) { } + get [[]]() { return 0; } + set [{}](v) { } + static get [undefined]() { return 0; } + set [null](v) { } +} + +//// [computedPropertyNames17.js] +var b; +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, b, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, true, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, [], { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, {}, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, undefined, { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, null, { + set: function (v) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames10.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames10.ts new file mode 100644 index 00000000000..0ab74d788c8 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames10.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +var v = { + [s]() { }, + [n]() { }, + [s + s]() { }, + [s + n]() { }, + [+s]() { }, + [""]() { }, + [0]() { }, + [a]() { }, + [true]() { }, + [`hello bye`]() { }, + [`hello ${a} bye`]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames11.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames11.ts new file mode 100644 index 00000000000..d41c56fe953 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames11.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +var v = { + get [s]() { return 0; }, + set [n](v) { }, + get [s + s]() { return 0; }, + set [s + n](v) { }, + get [+s]() { return 0; }, + set [""](v) { }, + get [0]() { return 0; }, + set [a](v) { }, + get [true]() { return 0; }, + set [`hello bye`](v) { }, + get [`hello ${a} bye`]() { return 0; } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts new file mode 100644 index 00000000000..e046899d331 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames12.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +class C { + [s]: number; + [n] = n; + static [s + s]: string; + [s + n] = 2; + [+s]: typeof s; + static [""]: number; + [0]: number; + [a]: number; + static [true]: number; + [`hello bye`] = 0; + static [`hello ${a} bye`] = 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames13.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames13.ts new file mode 100644 index 00000000000..de40dc4e774 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames13.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +class C { + [s]() {} + [n]() { } + static [s + s]() { } + [s + n]() { } + [+s]() { } + static [""]() { } + [0]() { } + [a]() { } + static [true]() { } + [`hello bye`]() { } + static [`hello ${a} bye`]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts new file mode 100644 index 00000000000..d90f2d7f976 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts @@ -0,0 +1,10 @@ +// @target: es6 +var b: boolean; +class C { + [b]() {} + static [true]() { } + [[]]() { } + static [{}]() { } + [undefined]() { } + static [null]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts new file mode 100644 index 00000000000..60b62d29034 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts @@ -0,0 +1,9 @@ +// @target: es6 +var p1: number | string; +var p2: number | number[]; +var p3: string | boolean; +class C { + [p1]() { } + [p2]() { } + [p3]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames16.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames16.ts new file mode 100644 index 00000000000..c42e6e97177 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames16.ts @@ -0,0 +1,17 @@ +// @target: es6 +var s: string; +var n: number; +var a: any; +class C { + get [s]() { return 0;} + set [n](v) { } + static get [s + s]() { return 0; } + set [s + n](v) { } + get [+s]() { return 0; } + static set [""](v) { } + get [0]() { return 0; } + set [a](v) { } + static get [true]() { return 0; } + set [`hello bye`](v) { } + get [`hello ${a} bye`]() { return 0; } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts new file mode 100644 index 00000000000..d795b527d06 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts @@ -0,0 +1,10 @@ +// @target: es6 +var b: boolean; +class C { + get [b]() { return 0;} + static set [true](v) { } + get [[]]() { return 0; } + set [{}](v) { } + static get [undefined]() { return 0; } + set [null](v) { } +} \ No newline at end of file From 4c5db716f951e2a01241437aa7d36535ed5e22bc Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 13 Jan 2015 17:18:12 -0800 Subject: [PATCH 043/211] Remove some unnecessary TODOs --- src/compiler/checker.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e15dcb37d70..79b7efc395d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8518,7 +8518,6 @@ module ts { } } - // TODO(jfreeman): Decide what to do for computed properties function checkTypeNameIsReserved(name: DeclarationName, message: DiagnosticMessage): void { // TS 1.0 spec (April 2014): 3.6.1 // The predefined type keywords are reserved and cannot be used as names of user defined types. @@ -8812,8 +8811,7 @@ module ts { var enumIsConst = isConst(node); forEach(node.members, member => { - // TODO(jfreeman): Check that it is not a computed name - if(isNumericName((member.name).text)) { + if (member.name.kind !== SyntaxKind.ComputedPropertyName && isNumericName((member.name).text)) { error(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name); } var initializer = member.initializer; From 1b35a1be2522736ebe708f2acf64863447f06783 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 14 Jan 2015 12:09:46 -0800 Subject: [PATCH 044/211] Contextual typing for computed properties --- src/compiler/checker.ts | 46 ++++++++++++++----- .../computedPropertyNamesContextualType1.js | 18 ++++++++ ...computedPropertyNamesContextualType1.types | 33 +++++++++++++ .../computedPropertyNamesContextualType2.js | 18 ++++++++ ...computedPropertyNamesContextualType2.types | 33 +++++++++++++ .../computedPropertyNamesContextualType3.js | 17 +++++++ ...computedPropertyNamesContextualType3.types | 29 ++++++++++++ .../computedPropertyNamesContextualType1.ts | 10 ++++ .../computedPropertyNamesContextualType2.ts | 10 ++++ .../computedPropertyNamesContextualType3.ts | 9 ++++ 10 files changed, 211 insertions(+), 12 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType1.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType1.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType2.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType2.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType3.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType3.types create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 79b7efc395d..e37e9484ef7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5165,13 +5165,26 @@ module ts { function getContextualTypeForObjectLiteralElement(element: ObjectLiteralElement) { var objectLiteral = element.parent; var type = getContextualType(objectLiteral); - // TODO(jfreeman): Handle this case for computed names and symbols - var name = (element.name).text; - if (type && name) { - return getTypeOfPropertyOfContextualType(type, name) || - isNumericName(name) && getIndexTypeOfContextualType(type, IndexKind.Number) || + if (type) { + if (!hasComputedNameButNotSymbol(element)) { + // For a (non-symbol) computed property, there is no reason to look up the name + // in the type. It will just be "__computed", which does not appear in any + // SymbolTable. + var symbolName = getSymbolOfNode(element).name; + var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); + if (propertyType) { + return propertyType; + } + } + + var nameNode = element.name; + var propertyHasNumericName = nameNode.kind === SyntaxKind.ComputedPropertyName + ? isNumericComputedName(nameNode) + : isNumericName((nameNode).text); + return propertyHasNumericName && getIndexTypeOfContextualType(type, IndexKind.Number) || getIndexTypeOfContextualType(type, IndexKind.String); } + return undefined; } @@ -5370,6 +5383,10 @@ module ts { return createArrayType(getUnionType(elementTypes)); } + function isNumericComputedName(name: ComputedPropertyName): boolean { + return !!(checkExpression(name.expression).flags & TypeFlags.Number); + } + function isNumericName(name: string) { // The intent of numeric names is that // - they are names with text in a numeric form, and that @@ -5395,15 +5412,20 @@ module ts { return (+name).toString() === name; } - function checkComputedPropertyName(node: ComputedPropertyName): void { - var computedNameType = checkExpression(node.expression); + function checkComputedPropertyName(node: ComputedPropertyName): Type { + var links = getNodeLinks(node.expression); + if (!links.resolvedType) { + links.resolvedType = checkExpression(node.expression); - // This will only allow types number, string, or any. Any types more complex will - // be disallowed, even union types like string | number. In the future, we might consider - // allowing types like that. - if ((computedNameType.flags & (TypeFlags.Number | TypeFlags.String | TypeFlags.Any)) === 0) { - error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); + // This will only allow types number, string, or any. Any types more complex will + // be disallowed, even union types like string | number. In the future, we might consider + // allowing types like that. + if ((links.resolvedType.flags & (TypeFlags.Number | TypeFlags.String | TypeFlags.Any)) === 0) { + error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); + } } + + return links.resolvedType; } function checkObjectLiteral(node: ObjectLiteralExpression, contextualMapper?: TypeMapper): Type { diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1.js b/tests/baselines/reference/computedPropertyNamesContextualType1.js new file mode 100644 index 00000000000..d7704c8c377 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType1.js @@ -0,0 +1,18 @@ +//// [computedPropertyNamesContextualType1.ts] +interface I { + [s: string]: (x: string) => number; + [s: number]: (x: any) => number; // Doesn't get hit +} + +var o: I = { + ["" + 0](y) { return y.length; }, + ["" + 1]: y => y.length +} + +//// [computedPropertyNamesContextualType1.js] +var o = { + ["" + 0](y) { + return y.length; + }, + ["" + 1]: function (y) { return y.length; } +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1.types b/tests/baselines/reference/computedPropertyNamesContextualType1.types new file mode 100644 index 00000000000..2394eb96323 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType1.types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1.ts === +interface I { +>I : I + + [s: string]: (x: string) => number; +>s : string +>x : string + + [s: number]: (x: any) => number; // Doesn't get hit +>s : number +>x : any +} + +var o: I = { +>o : I +>I : I +>{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: undefined; [x: number]: undefined; } + + ["" + 0](y) { return y.length; }, +>"" + 0 : string +>y : string +>y.length : number +>y : string +>length : number + + ["" + 1]: y => y.length +>"" + 1 : string +>y => y.length : (y: string) => number +>y : string +>y.length : number +>y : string +>length : number +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2.js b/tests/baselines/reference/computedPropertyNamesContextualType2.js new file mode 100644 index 00000000000..7b9f98402f5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType2.js @@ -0,0 +1,18 @@ +//// [computedPropertyNamesContextualType2.ts] +interface I { + [s: string]: (x: any) => number; // Doesn't get hit + [s: number]: (x: string) => number; +} + +var o: I = { + [+"foo"](y) { return y.length; }, + [+"bar"]: y => y.length +} + +//// [computedPropertyNamesContextualType2.js] +var o = { + [+"foo"](y) { + return y.length; + }, + [+"bar"]: function (y) { return y.length; } +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2.types b/tests/baselines/reference/computedPropertyNamesContextualType2.types new file mode 100644 index 00000000000..cb6842d4820 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType2.types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2.ts === +interface I { +>I : I + + [s: string]: (x: any) => number; // Doesn't get hit +>s : string +>x : any + + [s: number]: (x: string) => number; +>s : number +>x : string +} + +var o: I = { +>o : I +>I : I +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: undefined; [x: number]: undefined; } + + [+"foo"](y) { return y.length; }, +>+"foo" : number +>y : string +>y.length : number +>y : string +>length : number + + [+"bar"]: y => y.length +>+"bar" : number +>y => y.length : (y: string) => number +>y : string +>y.length : number +>y : string +>length : number +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3.js b/tests/baselines/reference/computedPropertyNamesContextualType3.js new file mode 100644 index 00000000000..f5b2c71bc18 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType3.js @@ -0,0 +1,17 @@ +//// [computedPropertyNamesContextualType3.ts] +interface I { + [s: string]: (x: string) => number; +} + +var o: I = { + [+"foo"](y) { return y.length; }, + [+"bar"]: y => y.length +} + +//// [computedPropertyNamesContextualType3.js] +var o = { + [+"foo"](y) { + return y.length; + }, + [+"bar"]: function (y) { return y.length; } +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3.types b/tests/baselines/reference/computedPropertyNamesContextualType3.types new file mode 100644 index 00000000000..d13670eb4b1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType3.types @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3.ts === +interface I { +>I : I + + [s: string]: (x: string) => number; +>s : string +>x : string +} + +var o: I = { +>o : I +>I : I +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: undefined; } + + [+"foo"](y) { return y.length; }, +>+"foo" : number +>y : string +>y.length : number +>y : string +>length : number + + [+"bar"]: y => y.length +>+"bar" : number +>y => y.length : (y: string) => number +>y : string +>y.length : number +>y : string +>length : number +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1.ts new file mode 100644 index 00000000000..69c7c3ce958 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: (x: string) => number; + [s: number]: (x: any) => number; // Doesn't get hit +} + +var o: I = { + ["" + 0](y) { return y.length; }, + ["" + 1]: y => y.length +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2.ts new file mode 100644 index 00000000000..e9d289c5cd3 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: (x: any) => number; // Doesn't get hit + [s: number]: (x: string) => number; +} + +var o: I = { + [+"foo"](y) { return y.length; }, + [+"bar"]: y => y.length +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3.ts new file mode 100644 index 00000000000..dd2aff2931b --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3.ts @@ -0,0 +1,9 @@ +// @target: es6 +interface I { + [s: string]: (x: string) => number; +} + +var o: I = { + [+"foo"](y) { return y.length; }, + [+"bar"]: y => y.length +} \ No newline at end of file From 1973b42946999e59d22c5b5db6c59ca8d1745345 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 14 Jan 2015 17:09:33 -0800 Subject: [PATCH 045/211] Indexers in object literals include computed property types --- src/compiler/checker.ts | 35 ++++++++-------- ...computedPropertyNamesContextualType1.types | 2 +- ...edPropertyNamesContextualType10.errors.txt | 20 ++++++++++ .../computedPropertyNamesContextualType10.js | 15 +++++++ ...computedPropertyNamesContextualType2.types | 2 +- ...computedPropertyNamesContextualType3.types | 2 +- .../computedPropertyNamesContextualType4.js | 16 ++++++++ ...computedPropertyNamesContextualType4.types | 22 ++++++++++ .../computedPropertyNamesContextualType5.js | 16 ++++++++ ...computedPropertyNamesContextualType5.types | 22 ++++++++++ .../computedPropertyNamesContextualType6.js | 24 +++++++++++ ...computedPropertyNamesContextualType6.types | 40 +++++++++++++++++++ .../computedPropertyNamesContextualType7.js | 24 +++++++++++ ...computedPropertyNamesContextualType7.types | 40 +++++++++++++++++++ ...tedPropertyNamesContextualType8.errors.txt | 21 ++++++++++ .../computedPropertyNamesContextualType8.js | 16 ++++++++ ...tedPropertyNamesContextualType9.errors.txt | 21 ++++++++++ .../computedPropertyNamesContextualType9.js | 16 ++++++++ .../computedPropertyNamesContextualType10.ts | 9 +++++ .../computedPropertyNamesContextualType4.ts | 10 +++++ .../computedPropertyNamesContextualType5.ts | 10 +++++ .../computedPropertyNamesContextualType6.ts | 14 +++++++ .../computedPropertyNamesContextualType7.ts | 14 +++++++ .../computedPropertyNamesContextualType8.ts | 10 +++++ .../computedPropertyNamesContextualType9.ts | 10 +++++ 25 files changed, 410 insertions(+), 21 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType10.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType10.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType4.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType4.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType5.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType5.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType6.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType6.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType7.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType7.types create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType8.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType8.js create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType9.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNamesContextualType9.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e37e9484ef7..3232fe1749a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1658,7 +1658,7 @@ module ts { // Use type of the specified property, or otherwise, for a numeric name, the type of the numeric index signature, // or otherwise the type of the string index signature. var type = getTypeOfPropertyOfType(parentType, name.text) || - isNumericName(name.text) && getIndexTypeOfType(parentType, IndexKind.Number) || + isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, IndexKind.Number) || getIndexTypeOfType(parentType, IndexKind.String); if (!type) { error(name, Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), declarationNameToString(name)); @@ -5176,12 +5176,8 @@ module ts { return propertyType; } } - - var nameNode = element.name; - var propertyHasNumericName = nameNode.kind === SyntaxKind.ComputedPropertyName - ? isNumericComputedName(nameNode) - : isNumericName((nameNode).text); - return propertyHasNumericName && getIndexTypeOfContextualType(type, IndexKind.Number) || + + return isNumericName(element.name) && getIndexTypeOfContextualType(type, IndexKind.Number) || getIndexTypeOfContextualType(type, IndexKind.String); } @@ -5383,11 +5379,15 @@ module ts { return createArrayType(getUnionType(elementTypes)); } + function isNumericName(name: DeclarationName): boolean { + return name.kind === SyntaxKind.ComputedPropertyName ? isNumericComputedName(name) : isNumericLiteralName((name).text); + } + function isNumericComputedName(name: ComputedPropertyName): boolean { return !!(checkExpression(name.expression).flags & TypeFlags.Number); } - function isNumericName(name: string) { + function isNumericLiteralName(name: string) { // The intent of numeric names is that // - they are names with text in a numeric form, and that // - setting properties/indexing with them is always equivalent to doing so with the numeric literal 'numLit', @@ -5490,13 +5490,12 @@ module ts { function getIndexType(kind: IndexKind) { if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { var propTypes: Type[] = []; - for (var id in properties) { - if (hasProperty(properties, id)) { - if (kind === IndexKind.String || isNumericName(id)) { - var type = getTypeOfSymbol(properties[id]); - if (!contains(propTypes, type)) { - propTypes.push(type); - } + for (var i = 0; i < node.properties.length; i++) { + var propertyDecl = node.properties[i]; + if (kind === IndexKind.String || isNumericName(propertyDecl.name)) { + var type = getTypeOfSymbol(getSymbolOfNode(propertyDecl)); + if (!contains(propTypes, type)) { + propTypes.push(type); } } } @@ -6788,7 +6787,7 @@ module ts { var name = (p).name; var type = sourceType.flags & TypeFlags.Any ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || - isNumericName(name.text) && getIndexTypeOfType(sourceType, IndexKind.Number) || + isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, IndexKind.Number) || getIndexTypeOfType(sourceType, IndexKind.String); if (type) { checkDestructuringAssignment((p).initializer || name, type); @@ -8479,7 +8478,7 @@ module ts { } // index is numeric and property name is not valid numeric literal - if (indexKind === IndexKind.Number && !isNumericName(prop.name)) { + if (indexKind === IndexKind.Number && !isNumericLiteralName(prop.name)) { return; } @@ -8833,7 +8832,7 @@ module ts { var enumIsConst = isConst(node); forEach(node.members, member => { - if (member.name.kind !== SyntaxKind.ComputedPropertyName && isNumericName((member.name).text)) { + if (member.name.kind !== SyntaxKind.ComputedPropertyName && isNumericLiteralName((member.name).text)) { error(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name); } var initializer = member.initializer; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1.types b/tests/baselines/reference/computedPropertyNamesContextualType1.types index 2394eb96323..1697542fba6 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType1.types @@ -14,7 +14,7 @@ interface I { var o: I = { >o : I >I : I ->{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: undefined; [x: number]: undefined; } +>{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: undefined; } ["" + 0](y) { return y.length; }, >"" + 0 : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType10.errors.txt new file mode 100644 index 00000000000..5e9fbe7b45b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType10.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts(5,5): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. + Index signatures are incompatible. + Type 'string | number' is not assignable to type 'boolean'. + Type 'string' is not assignable to type 'boolean'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts (1 errors) ==== + interface I { + [s: number]: boolean; + } + + var o: I = { + ~ +!!! error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. +!!! error TS2322: Index signatures are incompatible. +!!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. + [+"foo"]: "", + [+"bar"]: 0 + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10.js b/tests/baselines/reference/computedPropertyNamesContextualType10.js new file mode 100644 index 00000000000..125a014852e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType10.js @@ -0,0 +1,15 @@ +//// [computedPropertyNamesContextualType10.ts] +interface I { + [s: number]: boolean; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} + +//// [computedPropertyNamesContextualType10.js] +var o = { + [+"foo"]: "", + [+"bar"]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2.types b/tests/baselines/reference/computedPropertyNamesContextualType2.types index cb6842d4820..408fd6a5062 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType2.types @@ -14,7 +14,7 @@ interface I { var o: I = { >o : I >I : I ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: undefined; [x: number]: undefined; } +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3.types b/tests/baselines/reference/computedPropertyNamesContextualType3.types index d13670eb4b1..a1a36c1b7e9 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType3.types @@ -10,7 +10,7 @@ interface I { var o: I = { >o : I >I : I ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: undefined; } +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4.js b/tests/baselines/reference/computedPropertyNamesContextualType4.js new file mode 100644 index 00000000000..6ddd22baf6e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType4.js @@ -0,0 +1,16 @@ +//// [computedPropertyNamesContextualType4.ts] +interface I { + [s: string]: any; + [s: number]: any; +} + +var o: I = { + [""+"foo"]: "", + [""+"bar"]: 0 +} + +//// [computedPropertyNamesContextualType4.js] +var o = { + ["" + "foo"]: "", + ["" + "bar"]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4.types b/tests/baselines/reference/computedPropertyNamesContextualType4.types new file mode 100644 index 00000000000..d22f56f24fe --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType4.types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4.ts === +interface I { +>I : I + + [s: string]: any; +>s : string + + [s: number]: any; +>s : number +} + +var o: I = { +>o : I +>I : I +>{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; [x: number]: undefined; } + + [""+"foo"]: "", +>""+"foo" : string + + [""+"bar"]: 0 +>""+"bar" : string +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5.js b/tests/baselines/reference/computedPropertyNamesContextualType5.js new file mode 100644 index 00000000000..f2bd79644a0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType5.js @@ -0,0 +1,16 @@ +//// [computedPropertyNamesContextualType5.ts] +interface I { + [s: string]: any; + [s: number]: any; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} + +//// [computedPropertyNamesContextualType5.js] +var o = { + [+"foo"]: "", + [+"bar"]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5.types b/tests/baselines/reference/computedPropertyNamesContextualType5.types new file mode 100644 index 00000000000..12c3332acfa --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType5.types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5.ts === +interface I { +>I : I + + [s: string]: any; +>s : string + + [s: number]: any; +>s : number +} + +var o: I = { +>o : I +>I : I +>{ [+"foo"]: "", [+"bar"]: 0} : { [x: string]: string | number; [x: number]: string | number; } + + [+"foo"]: "", +>+"foo" : number + + [+"bar"]: 0 +>+"bar" : number +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6.js b/tests/baselines/reference/computedPropertyNamesContextualType6.js new file mode 100644 index 00000000000..5d0cc149b2c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType6.js @@ -0,0 +1,24 @@ +//// [computedPropertyNamesContextualType6.ts] +interface I { + [s: string]: T; +} + +declare function foo(obj: I): T + +foo({ + p: "", + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); + +//// [computedPropertyNamesContextualType6.js] +foo({ + p: "", + 0: function () { + }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6.types b/tests/baselines/reference/computedPropertyNamesContextualType6.types new file mode 100644 index 00000000000..acbae75ad4c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType6.types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6.ts === +interface I { +>I : I +>T : T + + [s: string]: T; +>s : string +>T : T +} + +declare function foo(obj: I): T +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T + +foo({ +>foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | number[] | (() => void) +>foo : (obj: I) => T +>{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | boolean | number[] | (() => void); 0: () => void; p: string; } + + p: "", +>p : string + + 0: () => { }, +>() => { } : () => void + + ["hi" + "bye"]: true, +>"hi" + "bye" : string + + [0 + 1]: 0, +>0 + 1 : number + + [+"hi"]: [0] +>+"hi" : number +>[0] : number[] + +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7.js b/tests/baselines/reference/computedPropertyNamesContextualType7.js new file mode 100644 index 00000000000..74030be6f2a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType7.js @@ -0,0 +1,24 @@ +//// [computedPropertyNamesContextualType7.ts] +interface I { + [s: number]: T; +} + +declare function foo(obj: I): T + +foo({ + p: "", + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); + +//// [computedPropertyNamesContextualType7.js] +foo({ + p: "", + 0: function () { + }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7.types b/tests/baselines/reference/computedPropertyNamesContextualType7.types new file mode 100644 index 00000000000..da059d490b0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType7.types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7.ts === +interface I { +>I : I +>T : T + + [s: number]: T; +>s : number +>T : T +} + +declare function foo(obj: I): T +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T + +foo({ +>foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | number[] | (() => void) +>foo : (obj: I) => T +>{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: number]: number | number[] | (() => void); 0: () => void; p: string; } + + p: "", +>p : string + + 0: () => { }, +>() => { } : () => void + + ["hi" + "bye"]: true, +>"hi" + "bye" : string + + [0 + 1]: 0, +>0 + 1 : number + + [+"hi"]: [0] +>+"hi" : number +>[0] : number[] + +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType8.errors.txt new file mode 100644 index 00000000000..07b55b799e4 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType8.errors.txt @@ -0,0 +1,21 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts(6,5): error TS2322: Type '{ [x: string]: string | number; [x: number]: undefined; }' is not assignable to type 'I'. + Index signatures are incompatible. + Type 'string | number' is not assignable to type 'boolean'. + Type 'string' is not assignable to type 'boolean'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts (1 errors) ==== + interface I { + [s: string]: boolean; + [s: number]: boolean; + } + + var o: I = { + ~ +!!! error TS2322: Type '{ [x: string]: string | number; [x: number]: undefined; }' is not assignable to type 'I'. +!!! error TS2322: Index signatures are incompatible. +!!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. + [""+"foo"]: "", + [""+"bar"]: 0 + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8.js b/tests/baselines/reference/computedPropertyNamesContextualType8.js new file mode 100644 index 00000000000..d98538c40c1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType8.js @@ -0,0 +1,16 @@ +//// [computedPropertyNamesContextualType8.ts] +interface I { + [s: string]: boolean; + [s: number]: boolean; +} + +var o: I = { + [""+"foo"]: "", + [""+"bar"]: 0 +} + +//// [computedPropertyNamesContextualType8.js] +var o = { + ["" + "foo"]: "", + ["" + "bar"]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType9.errors.txt new file mode 100644 index 00000000000..6a1d9316fd7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType9.errors.txt @@ -0,0 +1,21 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts(6,5): error TS2322: Type '{ [x: string]: string | number; [x: number]: string | number; }' is not assignable to type 'I'. + Index signatures are incompatible. + Type 'string | number' is not assignable to type 'boolean'. + Type 'string' is not assignable to type 'boolean'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts (1 errors) ==== + interface I { + [s: string]: boolean; + [s: number]: boolean; + } + + var o: I = { + ~ +!!! error TS2322: Type '{ [x: string]: string | number; [x: number]: string | number; }' is not assignable to type 'I'. +!!! error TS2322: Index signatures are incompatible. +!!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. + [+"foo"]: "", + [+"bar"]: 0 + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9.js b/tests/baselines/reference/computedPropertyNamesContextualType9.js new file mode 100644 index 00000000000..ed8791a51e0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType9.js @@ -0,0 +1,16 @@ +//// [computedPropertyNamesContextualType9.ts] +interface I { + [s: string]: boolean; + [s: number]: boolean; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} + +//// [computedPropertyNamesContextualType9.js] +var o = { + [+"foo"]: "", + [+"bar"]: 0 +}; diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts new file mode 100644 index 00000000000..f19c7fcab9d --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType10.ts @@ -0,0 +1,9 @@ +// @target: es6 +interface I { + [s: number]: boolean; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4.ts new file mode 100644 index 00000000000..ff191a3e80d --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: any; + [s: number]: any; +} + +var o: I = { + [""+"foo"]: "", + [""+"bar"]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5.ts new file mode 100644 index 00000000000..a78ddef37fc --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: any; + [s: number]: any; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6.ts new file mode 100644 index 00000000000..70f31378b56 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6.ts @@ -0,0 +1,14 @@ +// @target: es6 +interface I { + [s: string]: T; +} + +declare function foo(obj: I): T + +foo({ + p: "", + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7.ts new file mode 100644 index 00000000000..1ddb966488d --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7.ts @@ -0,0 +1,14 @@ +// @target: es6 +interface I { + [s: number]: T; +} + +declare function foo(obj: I): T + +foo({ + p: "", + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts new file mode 100644 index 00000000000..b5caf1e717c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType8.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: boolean; + [s: number]: boolean; +} + +var o: I = { + [""+"foo"]: "", + [""+"bar"]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts new file mode 100644 index 00000000000..8282fab0035 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType9.ts @@ -0,0 +1,10 @@ +// @target: es6 +interface I { + [s: string]: boolean; + [s: number]: boolean; +} + +var o: I = { + [+"foo"]: "", + [+"bar"]: 0 +} \ No newline at end of file From f943f6c486988a1bb65b88a2916c420bbf00144f Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Thu, 15 Jan 2015 17:54:34 -0800 Subject: [PATCH 046/211] Adjust error numbers --- .../computedPropertyNames14.errors.txt | 24 +++++++++---------- .../computedPropertyNames15.errors.txt | 12 +++++----- .../computedPropertyNames17.errors.txt | 24 +++++++++---------- .../computedPropertyNames3.errors.txt | 16 ++++++------- .../computedPropertyNames5.errors.txt | 24 +++++++++---------- .../computedPropertyNames6.errors.txt | 12 +++++----- .../computedPropertyNames7.errors.txt | 4 ++-- .../computedPropertyNames8.errors.txt | 8 +++---- .../computedPropertyNames9.errors.txt | 4 ++-- 9 files changed, 64 insertions(+), 64 deletions(-) diff --git a/tests/baselines/reference/computedPropertyNames14.errors.txt b/tests/baselines/reference/computedPropertyNames14.errors.txt index fe38166f9ab..1cf5b1445f2 100644 --- a/tests/baselines/reference/computedPropertyNames14.errors.txt +++ b/tests/baselines/reference/computedPropertyNames14.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(3,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(4,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(6,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(8,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(3,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(4,12): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(6,12): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(8,12): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts (6 errors) ==== @@ -11,20 +11,20 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames14.ts(8,12): class C { [b]() {} ~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static [true]() { } ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [[]]() { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static [{}]() { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [undefined]() { } ~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static [null]() { } ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames15.errors.txt b/tests/baselines/reference/computedPropertyNames15.errors.txt index ee8d5b96bca..69d997d7737 100644 --- a/tests/baselines/reference/computedPropertyNames15.errors.txt +++ b/tests/baselines/reference/computedPropertyNames15.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(6,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts (3 errors) ==== @@ -10,11 +10,11 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(7,5): class C { [p1]() { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p2]() { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p3]() { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames17.errors.txt b/tests/baselines/reference/computedPropertyNames17.errors.txt index 3b0ceb2c653..b236ae3245e 100644 --- a/tests/baselines/reference/computedPropertyNames17.errors.txt +++ b/tests/baselines/reference/computedPropertyNames17.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(3,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(4,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(7,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(8,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(3,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(4,16): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(5,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(6,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(7,16): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(8,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts (6 errors) ==== @@ -11,20 +11,20 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames17.ts(8,9): class C { get [b]() { return 0;} ~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static set [true](v) { } ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. get [[]]() { return 0; } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. set [{}](v) { } ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static get [undefined]() { return 0; } ~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. set [null](v) { } ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames3.errors.txt b/tests/baselines/reference/computedPropertyNames3.errors.txt index ad98baf6a14..080bff1ab9a 100644 --- a/tests/baselines/reference/computedPropertyNames3.errors.txt +++ b/tests/baselines/reference/computedPropertyNames3.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(4,12): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(4,12): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. 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(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(5,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(6,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. 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(7,16): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(7,16): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts (6 errors) ==== @@ -12,19 +12,19 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames3.ts(7,16): [0 + 1]() { } static [() => { }]() { } ~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. get [delete id]() { } ~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. ~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. set [[0, 1]](v) { } ~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static get [""]() { } ~~~~~~~~~~~~ !!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. ~~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. static set [id.toString()](v) { } } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames5.errors.txt b/tests/baselines/reference/computedPropertyNames5.errors.txt index f7ca4b97e9f..2b8cf5503b8 100644 --- a/tests/baselines/reference/computedPropertyNames5.errors.txt +++ b/tests/baselines/reference/computedPropertyNames5.errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(3,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(4,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(8,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(3,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(4,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(6,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(8,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts (6 errors) ==== @@ -11,20 +11,20 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames5.ts(8,5): e var v = { [b]: 0, ~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [true]: 1, ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [[]]: 0, ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [{}]: 0, ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [undefined]: undefined, ~~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [null]: null ~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames6.errors.txt b/tests/baselines/reference/computedPropertyNames6.errors.txt index e9e150e2739..100afc85992 100644 --- a/tests/baselines/reference/computedPropertyNames6.errors.txt +++ b/tests/baselines/reference/computedPropertyNames6.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(6,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(7,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(6,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts (3 errors) ==== @@ -10,11 +10,11 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(7,5): e var v = { [p1]: 0, ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p2]: 1, ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p3]: 2 ~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames7.errors.txt b/tests/baselines/reference/computedPropertyNames7.errors.txt index b519369956c..e98be616a3a 100644 --- a/tests/baselines/reference/computedPropertyNames7.errors.txt +++ b/tests/baselines/reference/computedPropertyNames7.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts(5,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts (1 errors) ==== @@ -8,5 +8,5 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts(5,5): e var v = { [E.member]: 0 ~~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames8.errors.txt b/tests/baselines/reference/computedPropertyNames8.errors.txt index 99aa43b9276..515af1f4fc4 100644 --- a/tests/baselines/reference/computedPropertyNames8.errors.txt +++ b/tests/baselines/reference/computedPropertyNames8.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(5,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. -tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(6,9): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(5,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(6,9): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts (2 errors) ==== @@ -9,9 +9,9 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames8.ts(6,9): e var v = { [t]: 0, ~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [u]: 1 ~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. }; } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames9.errors.txt b/tests/baselines/reference/computedPropertyNames9.errors.txt index 8450e1fd092..d87576f1f77 100644 --- a/tests/baselines/reference/computedPropertyNames9.errors.txt +++ b/tests/baselines/reference/computedPropertyNames9.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts(9,5): error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts(9,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts (1 errors) ==== @@ -12,5 +12,5 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames9.ts(9,5): e [f(0)]: 0, [f(true)]: 0 ~~~~~~~~~ -!!! error TS2463: A computed property name must be of type 'string', 'number', or 'any'. +!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. } \ No newline at end of file From 4cc27227001d7d9895bf930f750eb57955ac4214 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Fri, 16 Jan 2015 19:15:24 -0800 Subject: [PATCH 047/211] Disallow this in computed properties in classes --- src/compiler/checker.ts | 3 +++ .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 ++++ src/compiler/utilities.ts | 8 +++++++ src/services/services.ts | 2 ++ .../reference/computedPropertyNames18.js | 13 +++++++++++ .../reference/computedPropertyNames18.types | 14 +++++++++++ .../computedPropertyNames19.errors.txt | 11 +++++++++ .../reference/computedPropertyNames19.js | 14 +++++++++++ .../reference/computedPropertyNames20.js | 9 ++++++++ .../reference/computedPropertyNames20.types | 10 ++++++++ .../computedPropertyNames21.errors.txt | 12 ++++++++++ .../reference/computedPropertyNames21.js | 19 +++++++++++++++ .../reference/computedPropertyNames22.js | 23 +++++++++++++++++++ .../reference/computedPropertyNames22.types | 21 +++++++++++++++++ .../computedPropertyNames23.errors.txt | 14 +++++++++++ .../reference/computedPropertyNames23.js | 21 +++++++++++++++++ .../computedPropertyNames18.ts | 6 +++++ .../computedPropertyNames19.ts | 6 +++++ .../computedPropertyNames20.ts | 4 ++++ .../computedPropertyNames21.ts | 7 ++++++ .../computedPropertyNames22.ts | 9 ++++++++ .../computedPropertyNames23.ts | 9 ++++++++ 23 files changed, 240 insertions(+) create mode 100644 tests/baselines/reference/computedPropertyNames18.js create mode 100644 tests/baselines/reference/computedPropertyNames18.types create mode 100644 tests/baselines/reference/computedPropertyNames19.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames19.js create mode 100644 tests/baselines/reference/computedPropertyNames20.js create mode 100644 tests/baselines/reference/computedPropertyNames20.types create mode 100644 tests/baselines/reference/computedPropertyNames21.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames21.js create mode 100644 tests/baselines/reference/computedPropertyNames22.js create mode 100644 tests/baselines/reference/computedPropertyNames22.types create mode 100644 tests/baselines/reference/computedPropertyNames23.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames23.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames18.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames20.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames22.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3232fe1749a..8c5b49014ad 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4853,6 +4853,9 @@ module ts { // do not return here so in case if lexical this is captured - it will be reflected in flags on NodeLinks } break; + case SyntaxKind.ComputedPropertyName: + error(node, Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); + break; } if (needToCaptureLexicalThis) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 6354633fe60..fb9811b396b 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -300,6 +300,7 @@ module ts { A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: DiagnosticCategory.Error, key: "A rest element must be last in an array destructuring pattern" }, A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." }, A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 8268af730ec..940b66c4efc 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1294,6 +1294,10 @@ "category": "Error", "code": 2464 }, + "'this' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2465 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index f1fab4137e2..6f3460244b3 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -399,6 +399,14 @@ module ts { return undefined; } switch (node.kind) { + case SyntaxKind.ComputedPropertyName: + // If the grandparent node is an object literal (as opposed to a class), + // then the computed property is not a 'this' container. + // A computed property name in a class needs to be a this container + // so that we can error on it. + if (node.parent.parent.kind !== SyntaxKind.ClassDeclaration) { + continue; + } case SyntaxKind.ArrowFunction: if (!includeArrowFunctions) { continue; diff --git a/src/services/services.ts b/src/services/services.ts index 84e5e7fefa5..8c6ebecf469 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -4191,6 +4191,8 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: break; + // Computed properties in classes are not handled here because references to this are illegal, + // so there is no point finding references to them. default: return undefined; } diff --git a/tests/baselines/reference/computedPropertyNames18.js b/tests/baselines/reference/computedPropertyNames18.js new file mode 100644 index 00000000000..af2d68b3095 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames18.js @@ -0,0 +1,13 @@ +//// [computedPropertyNames18.ts] +function foo() { + var obj = { + [this.bar]: 0 + } +} + +//// [computedPropertyNames18.js] +function foo() { + var obj = { + [this.bar]: 0 + }; +} diff --git a/tests/baselines/reference/computedPropertyNames18.types b/tests/baselines/reference/computedPropertyNames18.types new file mode 100644 index 00000000000..0976e5fc3ca --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames18.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames18.ts === +function foo() { +>foo : () => void + + var obj = { +>obj : {} +>{ [this.bar]: 0 } : {} + + [this.bar]: 0 +>this.bar : any +>this : any +>bar : any + } +} diff --git a/tests/baselines/reference/computedPropertyNames19.errors.txt b/tests/baselines/reference/computedPropertyNames19.errors.txt new file mode 100644 index 00000000000..2037008992f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames19.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts(3,10): error TS2331: 'this' cannot be referenced in a module body. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts (1 errors) ==== + module M { + var obj = { + [this.bar]: 0 + ~~~~ +!!! error TS2331: 'this' cannot be referenced in a module body. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames19.js b/tests/baselines/reference/computedPropertyNames19.js new file mode 100644 index 00000000000..3fd2f99eea6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames19.js @@ -0,0 +1,14 @@ +//// [computedPropertyNames19.ts] +module M { + var obj = { + [this.bar]: 0 + } +} + +//// [computedPropertyNames19.js] +var M; +(function (M) { + var obj = { + [this.bar]: 0 + }; +})(M || (M = {})); diff --git a/tests/baselines/reference/computedPropertyNames20.js b/tests/baselines/reference/computedPropertyNames20.js new file mode 100644 index 00000000000..2a1edf06142 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames20.js @@ -0,0 +1,9 @@ +//// [computedPropertyNames20.ts] +var obj = { + [this.bar]: 0 +} + +//// [computedPropertyNames20.js] +var obj = { + [this.bar]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames20.types b/tests/baselines/reference/computedPropertyNames20.types new file mode 100644 index 00000000000..abd1b203e87 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames20.types @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames20.ts === +var obj = { +>obj : {} +>{ [this.bar]: 0} : {} + + [this.bar]: 0 +>this.bar : any +>this : any +>bar : any +} diff --git a/tests/baselines/reference/computedPropertyNames21.errors.txt b/tests/baselines/reference/computedPropertyNames21.errors.txt new file mode 100644 index 00000000000..a44c8d60ee8 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames21.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts(5,6): error TS2465: 'this' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts (1 errors) ==== + class C { + bar() { + return 0; + } + [this.bar()]() { } + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames21.js b/tests/baselines/reference/computedPropertyNames21.js new file mode 100644 index 00000000000..250d9142aa5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames21.js @@ -0,0 +1,19 @@ +//// [computedPropertyNames21.ts] +class C { + bar() { + return 0; + } + [this.bar()]() { } +} + +//// [computedPropertyNames21.js] +var C = (function () { + function C() { + } + C.prototype.bar = function () { + return 0; + }; + C.prototype[this.bar()] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames22.js b/tests/baselines/reference/computedPropertyNames22.js new file mode 100644 index 00000000000..b42946536d0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames22.js @@ -0,0 +1,23 @@ +//// [computedPropertyNames22.ts] +class C { + bar() { + var obj = { + [this.bar()]() { } + }; + return 0; + } +} + +//// [computedPropertyNames22.js] +var C = (function () { + function C() { + } + C.prototype.bar = function () { + var obj = { + [this.bar()]() { + } + }; + return 0; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames22.types b/tests/baselines/reference/computedPropertyNames22.types new file mode 100644 index 00000000000..52dff9a4f41 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames22.types @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames22.ts === +class C { +>C : C + + bar() { +>bar : () => number + + var obj = { +>obj : {} +>{ [this.bar()]() { } } : {} + + [this.bar()]() { } +>this.bar() : any +>this.bar : any +>this : any +>bar : any + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames23.errors.txt b/tests/baselines/reference/computedPropertyNames23.errors.txt new file mode 100644 index 00000000000..0846ba4d6c6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames23.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts(6,12): error TS2465: 'this' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts (1 errors) ==== + class C { + bar() { + return 0; + } + [ + { [this.bar()]: 1 }[0] + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + ]() { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames23.js b/tests/baselines/reference/computedPropertyNames23.js new file mode 100644 index 00000000000..9d71ef34c1e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames23.js @@ -0,0 +1,21 @@ +//// [computedPropertyNames23.ts] +class C { + bar() { + return 0; + } + [ + { [this.bar()]: 1 }[0] + ]() { } +} + +//// [computedPropertyNames23.js] +var C = (function () { + function C() { + } + C.prototype.bar = function () { + return 0; + }; + C.prototype[{ [this.bar()]: 1 }[0]] = function () { + }; + return C; +})(); diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames18.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames18.ts new file mode 100644 index 00000000000..cd7a43f233f --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames18.ts @@ -0,0 +1,6 @@ +// @target: es6 +function foo() { + var obj = { + [this.bar]: 0 + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts new file mode 100644 index 00000000000..3dbf97d7f7a --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames19.ts @@ -0,0 +1,6 @@ +// @target: es6 +module M { + var obj = { + [this.bar]: 0 + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames20.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames20.ts new file mode 100644 index 00000000000..d31f63d2e87 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames20.ts @@ -0,0 +1,4 @@ +// @target: es6 +var obj = { + [this.bar]: 0 +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts new file mode 100644 index 00000000000..654f1b29985 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames21.ts @@ -0,0 +1,7 @@ +// @target: es6 +class C { + bar() { + return 0; + } + [this.bar()]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames22.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames22.ts new file mode 100644 index 00000000000..c999e0d642c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames22.ts @@ -0,0 +1,9 @@ +// @target: es6 +class C { + bar() { + var obj = { + [this.bar()]() { } + }; + return 0; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts new file mode 100644 index 00000000000..9c7c5bb6539 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames23.ts @@ -0,0 +1,9 @@ +// @target: es6 +class C { + bar() { + return 0; + } + [ + { [this.bar()]: 1 }[0] + ]() { } +} \ No newline at end of file From e317767966aa175d2e1f167ba1e5d3686eee1479 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Fri, 16 Jan 2015 19:46:32 -0800 Subject: [PATCH 048/211] Consolidate getSuperContainer --- src/compiler/checker.ts | 24 ++---------------------- src/compiler/utilities.ts | 12 ++++++++---- src/services/services.ts | 4 ++-- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 8c5b49014ad..98fcd90b623 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4870,26 +4870,6 @@ module ts { return anyType; } - function getSuperContainer(node: Node): Node { - while (true) { - node = node.parent; - if (!node) return node; - switch (node.kind) { - case SyntaxKind.FunctionDeclaration: - case SyntaxKind.FunctionExpression: - case SyntaxKind.ArrowFunction: - case SyntaxKind.PropertyDeclaration: - case SyntaxKind.PropertySignature: - case SyntaxKind.MethodDeclaration: - case SyntaxKind.MethodSignature: - case SyntaxKind.Constructor: - case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: - return node; - } - } - } - function isInConstructorArgumentInitializer(node: Node, constructorDecl: Node): boolean { for (var n = node; n && n !== constructorDecl; n = n.parent) { if (n.kind === SyntaxKind.Parameter) { @@ -4913,7 +4893,7 @@ module ts { return unknownType; } - var container = getSuperContainer(node); + var container = getSuperContainer(node, /*includeFunctions*/ true); if (container) { var canUseSuperExpression = false; @@ -4931,7 +4911,7 @@ module ts { // super property access might appear in arrow functions with arbitrary deep nesting var needToCaptureLexicalThis = false; while (container && container.kind === SyntaxKind.ArrowFunction) { - container = getSuperContainer(container); + container = getSuperContainer(container, /*includeFunctions*/ true); needToCaptureLexicalThis = true; } diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 6f3460244b3..d41b7ea6b24 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -429,13 +429,17 @@ module ts { } } - export function getSuperContainer(node: Node): Node { + export function getSuperContainer(node: Node, includeFunctions: boolean): Node { while (true) { node = node.parent; - if (!node) { - return undefined; - } + if (!node) return node; switch (node.kind) { + case SyntaxKind.FunctionDeclaration: + case SyntaxKind.FunctionExpression: + case SyntaxKind.ArrowFunction: + if (!includeFunctions) { + continue; + } case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: case SyntaxKind.MethodDeclaration: diff --git a/src/services/services.ts b/src/services/services.ts index 8c6ebecf469..848c22b52a3 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -4114,7 +4114,7 @@ module ts { } function getReferencesForSuperKeyword(superKeyword: Node): ReferenceEntry[] { - var searchSpaceNode = getSuperContainer(superKeyword); + var searchSpaceNode = getSuperContainer(superKeyword, /*includeFunctions*/ false); if (!searchSpaceNode) { return undefined; } @@ -4149,7 +4149,7 @@ module ts { return; } - var container = getSuperContainer(node); + var container = getSuperContainer(node, /*includeFunctions*/ false); // If we have a 'super' container, we must have an enclosing class. // Now make sure the owning class is the same as the search-space From b5349a5038b66c7d2461a765ccc33dbfa0f16423 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 19 Jan 2015 16:27:58 -0800 Subject: [PATCH 049/211] Disallow super and fix this capturing for computed properties --- src/compiler/checker.ts | 5 +- .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 ++ src/compiler/utilities.ts | 26 +++++++++- .../reference/computedPropertyNames22.types | 8 +-- .../computedPropertyNames24.errors.txt | 16 ++++++ .../reference/computedPropertyNames24.js | 38 ++++++++++++++ .../reference/computedPropertyNames25.js | 44 +++++++++++++++++ .../reference/computedPropertyNames25.types | 31 ++++++++++++ .../computedPropertyNames26.errors.txt | 18 +++++++ .../reference/computedPropertyNames26.js | 40 +++++++++++++++ .../computedPropertyNames27.errors.txt | 11 +++++ .../reference/computedPropertyNames27.js | 28 +++++++++++ .../reference/computedPropertyNames28.js | 35 +++++++++++++ .../reference/computedPropertyNames28.types | 26 ++++++++++ .../reference/computedPropertyNames29.js | 28 +++++++++++ .../reference/computedPropertyNames29.types | 25 ++++++++++ .../computedPropertyNames30.errors.txt | 21 ++++++++ .../reference/computedPropertyNames30.js | 45 +++++++++++++++++ .../reference/computedPropertyNames31.js | 49 +++++++++++++++++++ .../reference/computedPropertyNames31.types | 35 +++++++++++++ .../computedPropertyNames24.ts | 11 +++++ .../computedPropertyNames25.ts | 14 ++++++ .../computedPropertyNames26.ts | 13 +++++ .../computedPropertyNames27.ts | 6 +++ .../computedPropertyNames28.ts | 11 +++++ .../computedPropertyNames29.ts | 11 +++++ .../computedPropertyNames30.ts | 16 ++++++ .../computedPropertyNames31.ts | 16 ++++++ 29 files changed, 625 insertions(+), 7 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNames24.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames24.js create mode 100644 tests/baselines/reference/computedPropertyNames25.js create mode 100644 tests/baselines/reference/computedPropertyNames25.types create mode 100644 tests/baselines/reference/computedPropertyNames26.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames26.js create mode 100644 tests/baselines/reference/computedPropertyNames27.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames27.js create mode 100644 tests/baselines/reference/computedPropertyNames28.js create mode 100644 tests/baselines/reference/computedPropertyNames28.types create mode 100644 tests/baselines/reference/computedPropertyNames29.js create mode 100644 tests/baselines/reference/computedPropertyNames29.types create mode 100644 tests/baselines/reference/computedPropertyNames30.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames30.js create mode 100644 tests/baselines/reference/computedPropertyNames31.js create mode 100644 tests/baselines/reference/computedPropertyNames31.types create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames25.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames28.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames29.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames31.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 98fcd90b623..1fc3227e5ec 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4966,7 +4966,10 @@ module ts { } } - if (isCallExpression) { + if (container.kind === SyntaxKind.ComputedPropertyName) { + error(node, Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); + } + else if (isCallExpression) { error(node, Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); } else { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index fb9811b396b..0a8c3a7edfe 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -301,6 +301,7 @@ module ts { A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." }, A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', or 'any'." }, this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 940b66c4efc..2d1b4e4daf0 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1298,6 +1298,10 @@ "category": "Error", "code": 2465 }, + "'super' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2466 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index d41b7ea6b24..6c894ad7d9c 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -404,9 +404,16 @@ module ts { // then the computed property is not a 'this' container. // A computed property name in a class needs to be a this container // so that we can error on it. - if (node.parent.parent.kind !== SyntaxKind.ClassDeclaration) { - continue; + if (node.parent.parent.kind === SyntaxKind.ClassDeclaration) { + return node; } + // If this is a computed property, then the parent should not + // make it a this container. The parent might be a property + // in an object literal, like a method or accessor. But in order for + // such a parent to be a this container, the reference must be in + // the *body* of the container. + node = node.parent; + break; case SyntaxKind.ArrowFunction: if (!includeArrowFunctions) { continue; @@ -434,6 +441,21 @@ module ts { node = node.parent; if (!node) return node; switch (node.kind) { + case SyntaxKind.ComputedPropertyName: + // If the grandparent node is an object literal (as opposed to a class), + // then the computed property is not a 'super' container. + // A computed property name in a class needs to be a super container + // so that we can error on it. + if (node.parent.parent.kind === SyntaxKind.ClassDeclaration) { + return node; + } + // If this is a computed property, then the parent should not + // make it a super container. The parent might be a property + // in an object literal, like a method or accessor. But in order for + // such a parent to be a super container, the reference must be in + // the *body* of the container. + node = node.parent; + break; case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: diff --git a/tests/baselines/reference/computedPropertyNames22.types b/tests/baselines/reference/computedPropertyNames22.types index 52dff9a4f41..d23546192c0 100644 --- a/tests/baselines/reference/computedPropertyNames22.types +++ b/tests/baselines/reference/computedPropertyNames22.types @@ -10,10 +10,10 @@ class C { >{ [this.bar()]() { } } : {} [this.bar()]() { } ->this.bar() : any ->this.bar : any ->this : any ->bar : any +>this.bar() : number +>this.bar : () => number +>this : C +>bar : () => number }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames24.errors.txt b/tests/baselines/reference/computedPropertyNames24.errors.txt new file mode 100644 index 00000000000..938fb64b82e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames24.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts(9,6): error TS2466: 'super' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts (1 errors) ==== + class Base { + bar() { + return 0; + } + } + class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [super.bar()]() { } + ~~~~~ +!!! error TS2466: 'super' cannot be referenced in a computed property name. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames24.js b/tests/baselines/reference/computedPropertyNames24.js new file mode 100644 index 00000000000..2ef2826ee22 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames24.js @@ -0,0 +1,38 @@ +//// [computedPropertyNames24.ts] +class Base { + bar() { + return 0; + } +} +class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [super.bar()]() { } +} + +//// [computedPropertyNames24.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 Base = (function () { + function Base() { + } + Base.prototype.bar = function () { + return 0; + }; + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.apply(this, arguments); + } + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + C.prototype[super.bar.call(this)] = function () { + }; + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames25.js b/tests/baselines/reference/computedPropertyNames25.js new file mode 100644 index 00000000000..a15fcb217e7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames25.js @@ -0,0 +1,44 @@ +//// [computedPropertyNames25.ts] +class Base { + bar() { + return 0; + } +} +class C extends Base { + foo() { + var obj = { + [super.bar()]() { } + }; + return 0; + } +} + +//// [computedPropertyNames25.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 Base = (function () { + function Base() { + } + Base.prototype.bar = function () { + return 0; + }; + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.apply(this, arguments); + } + C.prototype.foo = function () { + var obj = { + [_super.prototype.bar.call(this)]() { + } + }; + return 0; + }; + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames25.types b/tests/baselines/reference/computedPropertyNames25.types new file mode 100644 index 00000000000..d8567dc86ad --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames25.types @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames25.ts === +class Base { +>Base : Base + + bar() { +>bar : () => number + + return 0; + } +} +class C extends Base { +>C : C +>Base : Base + + foo() { +>foo : () => number + + var obj = { +>obj : {} +>{ [super.bar()]() { } } : {} + + [super.bar()]() { } +>super.bar() : number +>super.bar : () => number +>super : Base +>bar : () => number + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames26.errors.txt b/tests/baselines/reference/computedPropertyNames26.errors.txt new file mode 100644 index 00000000000..bbe51c6a0c8 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames26.errors.txt @@ -0,0 +1,18 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts(10,12): error TS2466: 'super' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts (1 errors) ==== + class Base { + bar() { + return 0; + } + } + class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [ + { [super.bar()]: 1 }[0] + ~~~~~ +!!! error TS2466: 'super' cannot be referenced in a computed property name. + ]() { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames26.js b/tests/baselines/reference/computedPropertyNames26.js new file mode 100644 index 00000000000..96760fc279c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames26.js @@ -0,0 +1,40 @@ +//// [computedPropertyNames26.ts] +class Base { + bar() { + return 0; + } +} +class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [ + { [super.bar()]: 1 }[0] + ]() { } +} + +//// [computedPropertyNames26.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 Base = (function () { + function Base() { + } + Base.prototype.bar = function () { + return 0; + }; + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.apply(this, arguments); + } + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + C.prototype[{ [super.bar.call(this)]: 1 }[0]] = function () { + }; + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames27.errors.txt b/tests/baselines/reference/computedPropertyNames27.errors.txt new file mode 100644 index 00000000000..c2872197363 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames27.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts(4,7): error TS2466: 'super' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts (1 errors) ==== + class Base { + } + class C extends Base { + [(super(), "prop")]() { } + ~~~~~ +!!! error TS2466: 'super' cannot be referenced in a computed property name. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames27.js b/tests/baselines/reference/computedPropertyNames27.js new file mode 100644 index 00000000000..71db977e9b6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames27.js @@ -0,0 +1,28 @@ +//// [computedPropertyNames27.ts] +class Base { +} +class C extends Base { + [(super(), "prop")]() { } +} + +//// [computedPropertyNames27.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 Base = (function () { + function Base() { + } + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.apply(this, arguments); + } + C.prototype[(_super.call(this), "prop")] = function () { + }; + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames28.js b/tests/baselines/reference/computedPropertyNames28.js new file mode 100644 index 00000000000..96c7cd082f1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames28.js @@ -0,0 +1,35 @@ +//// [computedPropertyNames28.ts] +class Base { +} +class C extends Base { + constructor() { + super(); + var obj = { + [(super(), "prop")]() { } + }; + } +} + +//// [computedPropertyNames28.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 Base = (function () { + function Base() { + } + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.call(this); + var obj = { + [(_super.call(this), "prop")]() { + } + }; + } + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames28.types b/tests/baselines/reference/computedPropertyNames28.types new file mode 100644 index 00000000000..2adf52f8c5f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames28.types @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames28.ts === +class Base { +>Base : Base +} +class C extends Base { +>C : C +>Base : Base + + constructor() { + super(); +>super() : void +>super : typeof Base + + var obj = { +>obj : {} +>{ [(super(), "prop")]() { } } : {} + + [(super(), "prop")]() { } +>(super(), "prop") : string +>super(), "prop" : string +>super() : void +>super : typeof Base + + }; + } +} diff --git a/tests/baselines/reference/computedPropertyNames29.js b/tests/baselines/reference/computedPropertyNames29.js new file mode 100644 index 00000000000..dc45746c63c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames29.js @@ -0,0 +1,28 @@ +//// [computedPropertyNames29.ts] +class C { + bar() { + () => { + var obj = { + [this.bar()]() { } // needs capture + }; + } + return 0; + } +} + +//// [computedPropertyNames29.js] +var C = (function () { + function C() { + } + C.prototype.bar = function () { + var _this = this; + (function () { + var obj = { + [_this.bar()]() { + } // needs capture + }; + }); + return 0; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames29.types b/tests/baselines/reference/computedPropertyNames29.types new file mode 100644 index 00000000000..ed4db5862e9 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames29.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames29.ts === +class C { +>C : C + + bar() { +>bar : () => number + + () => { +>() => { var obj = { [this.bar()]() { } // needs capture }; } : () => void + + var obj = { +>obj : {} +>{ [this.bar()]() { } // needs capture } : {} + + [this.bar()]() { } // needs capture +>this.bar() : number +>this.bar : () => number +>this : C +>bar : () => number + + }; + } + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames30.errors.txt b/tests/baselines/reference/computedPropertyNames30.errors.txt new file mode 100644 index 00000000000..f7b6411f867 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames30.errors.txt @@ -0,0 +1,21 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts(11,19): error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts (1 errors) ==== + class Base { + } + class C extends Base { + constructor() { + super(); + () => { + var obj = { + // Ideally, we would capture this. But the reference is + // illegal, and not capturing this is consistent with + //treatment of other similar violations. + [(super(), "prop")]() { } + ~~~~~ +!!! error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors + }; + } + } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames30.js b/tests/baselines/reference/computedPropertyNames30.js new file mode 100644 index 00000000000..c10ba51316d --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames30.js @@ -0,0 +1,45 @@ +//// [computedPropertyNames30.ts] +class Base { +} +class C extends Base { + constructor() { + super(); + () => { + var obj = { + // Ideally, we would capture this. But the reference is + // illegal, and not capturing this is consistent with + //treatment of other similar violations. + [(super(), "prop")]() { } + }; + } + } +} + +//// [computedPropertyNames30.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 Base = (function () { + function Base() { + } + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.call(this); + (function () { + var obj = { + // Ideally, we would capture this. But the reference is + // illegal, and not capturing this is consistent with + //treatment of other similar violations. + [(_super.call(this), "prop")]() { + } + }; + }); + } + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames31.js b/tests/baselines/reference/computedPropertyNames31.js new file mode 100644 index 00000000000..bf75ac2be74 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames31.js @@ -0,0 +1,49 @@ +//// [computedPropertyNames31.ts] +class Base { + bar() { + return 0; + } +} +class C extends Base { + foo() { + () => { + var obj = { + [super.bar()]() { } // needs capture + }; + } + return 0; + } +} + +//// [computedPropertyNames31.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 Base = (function () { + function Base() { + } + Base.prototype.bar = function () { + return 0; + }; + return Base; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + _super.apply(this, arguments); + } + C.prototype.foo = function () { + var _this = this; + (function () { + var obj = { + [_super.prototype.bar.call(_this)]() { + } // needs capture + }; + }); + return 0; + }; + return C; +})(Base); diff --git a/tests/baselines/reference/computedPropertyNames31.types b/tests/baselines/reference/computedPropertyNames31.types new file mode 100644 index 00000000000..90e73bc3dcb --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames31.types @@ -0,0 +1,35 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames31.ts === +class Base { +>Base : Base + + bar() { +>bar : () => number + + return 0; + } +} +class C extends Base { +>C : C +>Base : Base + + foo() { +>foo : () => number + + () => { +>() => { var obj = { [super.bar()]() { } // needs capture }; } : () => void + + var obj = { +>obj : {} +>{ [super.bar()]() { } // needs capture } : {} + + [super.bar()]() { } // needs capture +>super.bar() : number +>super.bar : () => number +>super : Base +>bar : () => number + + }; + } + return 0; + } +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts new file mode 100644 index 00000000000..dc3a9541e11 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames24.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Base { + bar() { + return 0; + } +} +class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [super.bar()]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames25.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames25.ts new file mode 100644 index 00000000000..bc07847b251 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames25.ts @@ -0,0 +1,14 @@ +// @target: es6 +class Base { + bar() { + return 0; + } +} +class C extends Base { + foo() { + var obj = { + [super.bar()]() { } + }; + return 0; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts new file mode 100644 index 00000000000..6ef32397f54 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames26.ts @@ -0,0 +1,13 @@ +// @target: es6 +class Base { + bar() { + return 0; + } +} +class C extends Base { + // Gets emitted as super, not _super, which is consistent with + // use of super in static properties initializers. + [ + { [super.bar()]: 1 }[0] + ]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts new file mode 100644 index 00000000000..be19acd4729 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames27.ts @@ -0,0 +1,6 @@ +// @target: es6 +class Base { +} +class C extends Base { + [(super(), "prop")]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames28.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames28.ts new file mode 100644 index 00000000000..f9b14c3a75c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames28.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Base { +} +class C extends Base { + constructor() { + super(); + var obj = { + [(super(), "prop")]() { } + }; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames29.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames29.ts new file mode 100644 index 00000000000..abf213b4c75 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames29.ts @@ -0,0 +1,11 @@ +// @target: es6 +class C { + bar() { + () => { + var obj = { + [this.bar()]() { } // needs capture + }; + } + return 0; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts new file mode 100644 index 00000000000..5fba13388f8 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames30.ts @@ -0,0 +1,16 @@ +// @target: es6 +class Base { +} +class C extends Base { + constructor() { + super(); + () => { + var obj = { + // Ideally, we would capture this. But the reference is + // illegal, and not capturing this is consistent with + //treatment of other similar violations. + [(super(), "prop")]() { } + }; + } + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames31.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames31.ts new file mode 100644 index 00000000000..0ee8a0284a3 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames31.ts @@ -0,0 +1,16 @@ +// @target: es6 +class Base { + bar() { + return 0; + } +} +class C extends Base { + foo() { + () => { + var obj = { + [super.bar()]() { } // needs capture + }; + } + return 0; + } +} \ No newline at end of file From 1d2554b166792f2887dec7baaa0266900baab606 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 19 Jan 2015 16:42:35 -0800 Subject: [PATCH 050/211] Fix to make the completionlist work correctly when typing a new generic type + fourslash tests --- src/services/services.ts | 18 ++++++++++- ...tIdentifierDefinitionLocations_Generics.ts | 18 +++++++++++ ...dentifierDefinitionLocations_properties.ts | 32 ------------------- 3 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_Generics.ts delete mode 100644 tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts diff --git a/src/services/services.ts b/src/services/services.ts index 438bb0163f8..7d33e56c9a7 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2366,6 +2366,13 @@ module ts { return result; } + function isCompletionListBuilder(previousToken: Node): boolean { + var start = new Date().getTime(); + + host.log("getCompletionsAtPosition: isCompletionListBuilder: " + (new Date().getTime() - start)); + return true; + } + function isInStringOrRegularExpressionOrTemplateLiteral(previousToken: Node): boolean { if (previousToken.kind === SyntaxKind.StringLiteral || previousToken.kind === SyntaxKind.RegularExpressionLiteral @@ -2432,7 +2439,10 @@ module ts { containingNodeKind === SyntaxKind.VariableDeclarationList || containingNodeKind === SyntaxKind.VariableStatement || containingNodeKind === SyntaxKind.EnumDeclaration || // enum a { foo, | - isFunction(containingNodeKind); + isFunction(containingNodeKind) || + containingNodeKind === SyntaxKind.ClassDeclaration || // class A + +////interface A { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts deleted file mode 100644 index f38e9920b82..00000000000 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts +++ /dev/null @@ -1,32 +0,0 @@ -/// - -////var aa = 1; - -////class A1 { -//// public /*property1*/ -////} - -////class A2 { -//// public a/*property2*/ -////} - -////class A3 { -//// private /*property3*/ -////} - -////class A4 { -//// private a/*property4*/ -////} - -////class A5 { -//// public static /*property5*/ -////} - -////class A6 { -//// public static a/*property6*/ -////} - -test.markers().forEach((m) => { - goTo.position(m.position, m.fileName); - verify.completionListIsEmpty(); -}); \ No newline at end of file From 8c26917146b61e2eb6fa95b8caa7fba90c50ff4f Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 19 Jan 2015 16:57:06 -0800 Subject: [PATCH 051/211] Fourslash support for the builder property on completion lists. --- src/harness/fourslash.ts | 12 ++++++++++++ tests/cases/fourslash/fourslash.ts | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index cfc83af76e5..21c54d8b0cf 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -657,6 +657,18 @@ module FourSlash { } } + public verifyCompletionListIsBuilder(negative: boolean) { + var completions = this.getCompletionListAtCaret(); + + if (!completions) { + this.raiseError("Expected completion list"); + } else if ((completions && !completions.isBuilder) && !negative) { + this.raiseError("Expected builder completion entry"); + } else if ((completions && completions.isBuilder) && negative) { + this.raiseError("Un expected the builder completion entry"); + } + } + public verifyCompletionListContains(symbol: string, text?: string, documentation?: string, kind?: string) { var completions = this.getCompletionListAtCaret(); this.assertItemInCompletionList(completions.entries, symbol, text, documentation, kind); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 0f458041521..243629fa347 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -172,6 +172,10 @@ module FourSlashInterface { FourSlash.currentTestState.verifyCompletionListIsEmpty(this.negative); } + public completionListIsBuilder() { + FourSlash.currentTestState.verifyCompletionListIsBuilder(this.negative); + } + public memberListIsEmpty() { FourSlash.currentTestState.verifyMemberListIsEmpty(this.negative); } From 8bcf376f2b0e5bc51b33d08a7806548820e8e2ad Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 19 Jan 2015 17:01:39 -0800 Subject: [PATCH 052/211] Clean up --- src/harness/fourslash.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 21c54d8b0cf..8ffdef428eb 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -653,7 +653,6 @@ module FourSlash { Harness.IO.log(errorMsg); this.raiseError("Completion list is not empty at Caret"); - } } @@ -665,7 +664,7 @@ module FourSlash { } else if ((completions && !completions.isBuilder) && !negative) { this.raiseError("Expected builder completion entry"); } else if ((completions && completions.isBuilder) && negative) { - this.raiseError("Un expected the builder completion entry"); + this.raiseError("Un-expected builder completion entry"); } } From 34cc5ccb387cce5fdd4452ef6e45f31cfb722c82 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 19 Jan 2015 17:29:39 -0800 Subject: [PATCH 053/211] First try at getting logic in for showing the builder. --- src/services/services.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 7d33e56c9a7..bb98fd7d5db 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2320,7 +2320,7 @@ module ts { else { // Get scope members isMemberCompletion = false; - isBuilder = true; + isBuilder = isCompletionListBuilder(previousToken); /// TODO filter meaning based on the current context var symbolMeanings = SymbolFlags.Type | SymbolFlags.Value | SymbolFlags.Namespace | SymbolFlags.Import; @@ -2367,10 +2367,19 @@ module ts { } function isCompletionListBuilder(previousToken: Node): boolean { - var start = new Date().getTime(); + if (previousToken) { + var containingNodeKind = previousToken.parent.kind; + // identifiers in method/function calls + // variable declarations + switch (previousToken.kind) { + case SyntaxKind.CommaToken: + return containingNodeKind === SyntaxKind.CallExpression; + case SyntaxKind.OpenParenToken: + return containingNodeKind === SyntaxKind.CallExpression; + } + } - host.log("getCompletionsAtPosition: isCompletionListBuilder: " + (new Date().getTime() - start)); - return true; + return false; } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken: Node): boolean { From 89f36bb9c53b7c9511736c179aeda072179ff943 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 19 Jan 2015 18:44:15 -0800 Subject: [PATCH 054/211] Disallow computed properties referencing type parameters from containing type --- src/compiler/checker.ts | 10 +++++++ .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 +++ .../computedPropertyNames32.errors.txt | 13 +++++++++ .../reference/computedPropertyNames32.js | 23 ++++++++++++++++ .../reference/computedPropertyNames33.js | 27 +++++++++++++++++++ .../reference/computedPropertyNames33.types | 25 +++++++++++++++++ .../computedPropertyNames34.errors.txt | 15 +++++++++++ .../reference/computedPropertyNames34.js | 27 +++++++++++++++++++ .../computedPropertyNames35.errors.txt | 14 ++++++++++ .../computedPropertyNames32.ts | 8 ++++++ .../computedPropertyNames33.ts | 10 +++++++ .../computedPropertyNames34.ts | 10 +++++++ .../computedPropertyNames35.ts | 6 +++++ 14 files changed, 193 insertions(+) create mode 100644 tests/baselines/reference/computedPropertyNames32.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames32.js create mode 100644 tests/baselines/reference/computedPropertyNames33.js create mode 100644 tests/baselines/reference/computedPropertyNames33.types create mode 100644 tests/baselines/reference/computedPropertyNames34.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames34.js create mode 100644 tests/baselines/reference/computedPropertyNames35.errors.txt create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames33.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1fc3227e5ec..42612ed4cdc 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -335,6 +335,16 @@ module ts { break loop; } break; + case SyntaxKind.ComputedPropertyName: + var grandparent = location.parent.parent; + if (grandparent.kind === SyntaxKind.ClassDeclaration || grandparent.kind === SyntaxKind.InterfaceDeclaration) { + // A reference to this grandparent's type parameters would be an error + if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & SymbolFlags.Type)) { + error(errorLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_contained_type); + return undefined; + } + } + break; case SyntaxKind.MethodDeclaration: case SyntaxKind.MethodSignature: case SyntaxKind.Constructor: diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 0a8c3a7edfe..fc47f0257a7 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -302,6 +302,7 @@ module ts { A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', or 'any'." }, this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_contained_type: { code: 2466, category: DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its contained type." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 2d1b4e4daf0..6b00591556f 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1302,6 +1302,10 @@ "category": "Error", "code": 2466 }, + "A computed property name cannot reference a type parameter from its contained type.": { + "category": "Error", + "code": 2466 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", diff --git a/tests/baselines/reference/computedPropertyNames32.errors.txt b/tests/baselines/reference/computedPropertyNames32.errors.txt new file mode 100644 index 00000000000..8a7b0995153 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames32.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts(6,10): error TS2466: A computed property name cannot reference a type parameter from its contained type. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts (1 errors) ==== + function foo() { return '' } + class C { + bar() { + return 0; + } + [foo()]() { } + ~ +!!! error TS2466: A computed property name cannot reference a type parameter from its contained type. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames32.js b/tests/baselines/reference/computedPropertyNames32.js new file mode 100644 index 00000000000..d3e98681369 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames32.js @@ -0,0 +1,23 @@ +//// [computedPropertyNames32.ts] +function foo() { return '' } +class C { + bar() { + return 0; + } + [foo()]() { } +} + +//// [computedPropertyNames32.js] +function foo() { + return ''; +} +var C = (function () { + function C() { + } + C.prototype.bar = function () { + return 0; + }; + C.prototype[foo()] = function () { + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames33.js b/tests/baselines/reference/computedPropertyNames33.js new file mode 100644 index 00000000000..554ec315897 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames33.js @@ -0,0 +1,27 @@ +//// [computedPropertyNames33.ts] +function foo() { return '' } +class C { + bar() { + var obj = { + [foo()]() { } + }; + return 0; + } +} + +//// [computedPropertyNames33.js] +function foo() { + return ''; +} +var C = (function () { + function C() { + } + C.prototype.bar = function () { + var obj = { + [foo()]() { + } + }; + return 0; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames33.types b/tests/baselines/reference/computedPropertyNames33.types new file mode 100644 index 00000000000..8cbe8e93ef2 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames33.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames33.ts === +function foo() { return '' } +>foo : () => string +>T : T + +class C { +>C : C +>T : T + + bar() { +>bar : () => number + + var obj = { +>obj : {} +>{ [foo()]() { } } : {} + + [foo()]() { } +>foo() : string +>foo : () => string +>T : T + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames34.errors.txt b/tests/baselines/reference/computedPropertyNames34.errors.txt new file mode 100644 index 00000000000..c6d4a9aa4eb --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames34.errors.txt @@ -0,0 +1,15 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts(5,18): error TS2302: Static members cannot reference class type parameters. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts (1 errors) ==== + function foo() { return '' } + class C { + static bar() { + var obj = { + [foo()]() { } + ~ +!!! error TS2302: Static members cannot reference class type parameters. + }; + return 0; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames34.js b/tests/baselines/reference/computedPropertyNames34.js new file mode 100644 index 00000000000..f1d774139b1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames34.js @@ -0,0 +1,27 @@ +//// [computedPropertyNames34.ts] +function foo() { return '' } +class C { + static bar() { + var obj = { + [foo()]() { } + }; + return 0; + } +} + +//// [computedPropertyNames34.js] +function foo() { + return ''; +} +var C = (function () { + function C() { + } + C.bar = function () { + var obj = { + [foo()]() { + } + }; + return 0; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames35.errors.txt b/tests/baselines/reference/computedPropertyNames35.errors.txt new file mode 100644 index 00000000000..665831d6382 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames35.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,5): error TS1169: Computed property names are not allowed in interfaces. +tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,10): error TS2466: A computed property name cannot reference a type parameter from its contained type. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts (2 errors) ==== + function foo() { return '' } + interface I { + bar(): string; + [foo()](): void; + ~~~~~~~~~~ +!!! error TS1169: Computed property names are not allowed in interfaces. + ~ +!!! error TS2466: A computed property name cannot reference a type parameter from its contained type. + } \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts new file mode 100644 index 00000000000..bf888a0c44b --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts @@ -0,0 +1,8 @@ +// @target: es6 +function foo() { return '' } +class C { + bar() { + return 0; + } + [foo()]() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames33.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames33.ts new file mode 100644 index 00000000000..2a62d003a2e --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames33.ts @@ -0,0 +1,10 @@ +// @target: es6 +function foo() { return '' } +class C { + bar() { + var obj = { + [foo()]() { } + }; + return 0; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts new file mode 100644 index 00000000000..2a56735701c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames34.ts @@ -0,0 +1,10 @@ +// @target: es6 +function foo() { return '' } +class C { + static bar() { + var obj = { + [foo()]() { } + }; + return 0; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts new file mode 100644 index 00000000000..f2e2929bf75 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts @@ -0,0 +1,6 @@ +// @target: es6 +function foo() { return '' } +interface I { + bar(): string; + [foo()](): void; +} \ No newline at end of file From 000206fd8fdb5118d14371b0f5f033c311653ca5 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 19 Jan 2015 20:03:35 -0800 Subject: [PATCH 055/211] Update servicesVersion --- 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 69d11f1ded9..76cdbade325 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -9,7 +9,7 @@ /// module ts { - export var servicesVersion = "0.4" + export var servicesVersion = "0.4.1" export interface Node { getSourceFile(): SourceFile; From 1b1a45be6b870cf386f4ef3d8b564aaf989361ea Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 20 Jan 2015 11:03:51 -0800 Subject: [PATCH 056/211] update unit test contents --- tests/cases/unittests/services/documentRegistry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cases/unittests/services/documentRegistry.ts b/tests/cases/unittests/services/documentRegistry.ts index 50074b00db9..598416b9812 100644 --- a/tests/cases/unittests/services/documentRegistry.ts +++ b/tests/cases/unittests/services/documentRegistry.ts @@ -33,6 +33,6 @@ describe("DocumentRegistry", () => { compilerOptions.module = ts.ModuleKind.CommonJS; var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); - assert(f1 !== f4, "Changed module: Expected to have different instances of document"); + assert(f3 === f4, "Changed module: Expected to have the same instance of the document"); }); }); \ No newline at end of file From fe96258920dc5b4baf44425c0e29dd013e5f1b29 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 20 Jan 2015 11:06:21 -0800 Subject: [PATCH 057/211] revert serviceVersion change as the API is still compatible --- src/services/services.js | 4423 ++++++++++++++++++++++++++++++++++++++ src/services/services.ts | 2 +- 2 files changed, 4424 insertions(+), 1 deletion(-) create mode 100644 src/services/services.js diff --git a/src/services/services.js b/src/services/services.js new file mode 100644 index 00000000000..2f3a191d5d6 --- /dev/null +++ b/src/services/services.js @@ -0,0 +1,4423 @@ +/// +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +/// +/// +/// +/// +/// +/// +/// +var ts; +(function (ts) { + ts.servicesVersion = "0.4"; + var ScriptSnapshot; + (function (ScriptSnapshot) { + var StringScriptSnapshot = (function () { + function StringScriptSnapshot(text) { + this.text = text; + this._lineStartPositions = undefined; + } + StringScriptSnapshot.prototype.getText = function (start, end) { + return this.text.substring(start, end); + }; + StringScriptSnapshot.prototype.getLength = function () { + return this.text.length; + }; + StringScriptSnapshot.prototype.getLineStartPositions = function () { + if (!this._lineStartPositions) { + this._lineStartPositions = ts.computeLineStarts(this.text); + } + return this._lineStartPositions; + }; + StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { + // Text-based snapshots do not support incremental parsing. Return undefined + // to signal that to the caller. + return undefined; + }; + return StringScriptSnapshot; + })(); + function fromString(text) { + return new StringScriptSnapshot(text); + } + ScriptSnapshot.fromString = fromString; + })(ScriptSnapshot = ts.ScriptSnapshot || (ts.ScriptSnapshot = {})); + var scanner = ts.createScanner(ts.ScriptTarget.Latest, true); + var emptyArray = []; + function createNode(kind, pos, end, flags, parent) { + var node = new (ts.getNodeConstructor(kind))(); + node.pos = pos; + node.end = end; + node.flags = flags; + node.parent = parent; + return node; + } + var NodeObject = (function () { + function NodeObject() { + } + NodeObject.prototype.getSourceFile = function () { + return ts.getSourceFileOfNode(this); + }; + NodeObject.prototype.getStart = function (sourceFile) { + return ts.getTokenPosOfNode(this, sourceFile); + }; + NodeObject.prototype.getFullStart = function () { + return this.pos; + }; + NodeObject.prototype.getEnd = function () { + return this.end; + }; + NodeObject.prototype.getWidth = function (sourceFile) { + return this.getEnd() - this.getStart(sourceFile); + }; + NodeObject.prototype.getFullWidth = function () { + return this.end - this.getFullStart(); + }; + NodeObject.prototype.getLeadingTriviaWidth = function (sourceFile) { + return this.getStart(sourceFile) - this.pos; + }; + NodeObject.prototype.getFullText = function (sourceFile) { + return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); + }; + NodeObject.prototype.getText = function (sourceFile) { + return (sourceFile || this.getSourceFile()).text.substring(this.getStart(), this.getEnd()); + }; + NodeObject.prototype.addSyntheticNodes = function (nodes, pos, end) { + scanner.setTextPos(pos); + while (pos < end) { + var token = scanner.scan(); + var textPos = scanner.getTextPos(); + nodes.push(createNode(token, pos, textPos, ts.NodeFlags.Synthetic, this)); + pos = textPos; + } + return pos; + }; + NodeObject.prototype.createSyntaxList = function (nodes) { + var list = createNode(ts.SyntaxKind.SyntaxList, nodes.pos, nodes.end, ts.NodeFlags.Synthetic, this); + list._children = []; + var pos = nodes.pos; + for (var i = 0, len = nodes.length; i < len; i++) { + var node = nodes[i]; + if (pos < node.pos) { + pos = this.addSyntheticNodes(list._children, pos, node.pos); + } + list._children.push(node); + pos = node.end; + } + if (pos < nodes.end) { + this.addSyntheticNodes(list._children, pos, nodes.end); + } + return list; + }; + NodeObject.prototype.createChildren = function (sourceFile) { + var _this = this; + if (this.kind >= ts.SyntaxKind.FirstNode) { + scanner.setText((sourceFile || this.getSourceFile()).text); + var children = []; + var pos = this.pos; + var processNode = function (node) { + if (pos < node.pos) { + pos = _this.addSyntheticNodes(children, pos, node.pos); + } + children.push(node); + pos = node.end; + }; + var processNodes = function (nodes) { + if (pos < nodes.pos) { + pos = _this.addSyntheticNodes(children, pos, nodes.pos); + } + children.push(_this.createSyntaxList(nodes)); + pos = nodes.end; + }; + ts.forEachChild(this, processNode, processNodes); + if (pos < this.end) { + this.addSyntheticNodes(children, pos, this.end); + } + scanner.setText(undefined); + } + this._children = children || emptyArray; + }; + NodeObject.prototype.getChildCount = function (sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children.length; + }; + NodeObject.prototype.getChildAt = function (index, sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children[index]; + }; + NodeObject.prototype.getChildren = function (sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children; + }; + NodeObject.prototype.getFirstToken = function (sourceFile) { + var children = this.getChildren(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + if (child.kind < ts.SyntaxKind.FirstNode) { + return child; + } + return child.getFirstToken(sourceFile); + } + }; + NodeObject.prototype.getLastToken = function (sourceFile) { + var children = this.getChildren(sourceFile); + for (var i = children.length - 1; i >= 0; i--) { + var child = children[i]; + if (child.kind < ts.SyntaxKind.FirstNode) { + return child; + } + return child.getLastToken(sourceFile); + } + }; + return NodeObject; + })(); + var SymbolObject = (function () { + function SymbolObject(flags, name) { + this.flags = flags; + this.name = name; + } + SymbolObject.prototype.getFlags = function () { + return this.flags; + }; + SymbolObject.prototype.getName = function () { + return this.name; + }; + SymbolObject.prototype.getDeclarations = function () { + return this.declarations; + }; + SymbolObject.prototype.getDocumentationComment = function () { + if (this.documentationComment === undefined) { + this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & ts.SymbolFlags.Property)); + } + return this.documentationComment; + }; + return SymbolObject; + })(); + function getJsDocCommentsFromDeclarations(declarations, name, canUseParsedParamTagComments) { + var documentationComment = []; + var docComments = getJsDocCommentsSeparatedByNewLines(); + ts.forEach(docComments, function (docComment) { + if (documentationComment.length) { + documentationComment.push(ts.lineBreakPart()); + } + documentationComment.push(docComment); + }); + return documentationComment; + function getJsDocCommentsSeparatedByNewLines() { + var paramTag = "@param"; + var jsDocCommentParts = []; + ts.forEach(declarations, function (declaration) { + var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); + // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments + if (canUseParsedParamTagComments && declaration.kind === ts.SyntaxKind.Parameter) { + ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedParamJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); + } + }); + } + // If this is left side of dotted module declaration, there is no doc comments associated with this node + if (declaration.kind === ts.SyntaxKind.ModuleDeclaration && declaration.body.kind === ts.SyntaxKind.ModuleDeclaration) { + return; + } + while (declaration.kind === ts.SyntaxKind.ModuleDeclaration && declaration.parent.kind === ts.SyntaxKind.ModuleDeclaration) { + declaration = declaration.parent; + } + // Get the cleaned js doc comment text from the declaration + ts.forEach(getJsDocCommentTextRange(declaration.kind === ts.SyntaxKind.VariableDeclaration ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); + } + }); + }); + return jsDocCommentParts; + function getJsDocCommentTextRange(node, sourceFile) { + return ts.map(ts.getJsDocComments(node, sourceFile), function (jsDocComment) { + return { + pos: jsDocComment.pos + "/*".length, + end: jsDocComment.end - "*/".length // Trim off comment end indicator + }; + }); + } + function consumeWhiteSpacesOnTheLine(pos, end, sourceFile, maxSpacesToRemove) { + if (maxSpacesToRemove !== undefined) { + end = Math.min(end, pos + maxSpacesToRemove); + } + for (; pos < end; pos++) { + var ch = sourceFile.text.charCodeAt(pos); + if (!ts.isWhiteSpace(ch) || ts.isLineBreak(ch)) { + // Either found lineBreak or non whiteSpace + return pos; + } + } + return end; + } + function consumeLineBreaks(pos, end, sourceFile) { + while (pos < end && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + pos++; + } + return pos; + } + function isName(pos, end, sourceFile, name) { + return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + } + function isParamTag(pos, end, sourceFile) { + // If it is @param tag + return isName(pos, end, sourceFile, paramTag); + } + function pushDocCommentLineText(docComments, text, blankLineCount) { + while (blankLineCount--) + docComments.push(ts.textPart("")); + docComments.push(ts.textPart(text)); + } + function getCleanedJsDocComment(pos, end, sourceFile) { + var spacesToRemoveAfterAsterisk; + var docComments = []; + var blankLineCount = 0; + var isInParamTag = false; + while (pos < end) { + var docCommentTextOfLine = ""; + // First consume leading white space + pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); + // If the comment starts with '*' consume the spaces on this line + if (pos < end && sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.asterisk) { + var lineStartPos = pos + 1; + pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); + // Set the spaces to remove after asterisk as margin if not already set + if (spacesToRemoveAfterAsterisk === undefined && pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + spacesToRemoveAfterAsterisk = pos - lineStartPos; + } + } + else if (spacesToRemoveAfterAsterisk === undefined) { + spacesToRemoveAfterAsterisk = 0; + } + while (pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + var ch = sourceFile.text.charAt(pos); + if (ch === "@") { + // If it is @param tag + if (isParamTag(pos, end, sourceFile)) { + isInParamTag = true; + pos += paramTag.length; + continue; + } + else { + isInParamTag = false; + } + } + // Add the ch to doc text if we arent in param tag + if (!isInParamTag) { + docCommentTextOfLine += ch; + } + // Scan next character + pos++; + } + // Continue with next line + pos = consumeLineBreaks(pos, end, sourceFile); + if (docCommentTextOfLine) { + pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); + blankLineCount = 0; + } + else if (!isInParamTag && docComments.length) { + // This is blank line when there is text already parsed + blankLineCount++; + } + } + return docComments; + } + function getCleanedParamJsDocComment(pos, end, sourceFile) { + var paramHelpStringMargin; + var paramDocComments = []; + while (pos < end) { + if (isParamTag(pos, end, sourceFile)) { + var blankLineCount = 0; + var recordedParamTag = false; + // Consume leading spaces + pos = consumeWhiteSpaces(pos + paramTag.length); + if (pos >= end) { + break; + } + // Ignore type expression + if (sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.openBrace) { + pos++; + for (var curlies = 1; pos < end; pos++) { + var charCode = sourceFile.text.charCodeAt(pos); + // { character means we need to find another } to match the found one + if (charCode === ts.CharacterCodes.openBrace) { + curlies++; + continue; + } + // } char + if (charCode === ts.CharacterCodes.closeBrace) { + curlies--; + if (curlies === 0) { + // We do not have any more } to match the type expression is ignored completely + pos++; + break; + } + else { + continue; + } + } + // Found start of another tag + if (charCode === ts.CharacterCodes.at) { + break; + } + } + // Consume white spaces + pos = consumeWhiteSpaces(pos); + if (pos >= end) { + break; + } + } + // Parameter name + if (isName(pos, end, sourceFile, name)) { + // Found the parameter we are looking for consume white spaces + pos = consumeWhiteSpaces(pos + name.length); + if (pos >= end) { + break; + } + var paramHelpString = ""; + var firstLineParamHelpStringPos = pos; + while (pos < end) { + var ch = sourceFile.text.charCodeAt(pos); + // at line break, set this comment line text and go to next line + if (ts.isLineBreak(ch)) { + if (paramHelpString) { + pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); + paramHelpString = ""; + blankLineCount = 0; + recordedParamTag = true; + } + else if (recordedParamTag) { + blankLineCount++; + } + // Get the pos after cleaning start of the line + setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos); + continue; + } + // Done scanning param help string - next tag found + if (ch === ts.CharacterCodes.at) { + break; + } + paramHelpString += sourceFile.text.charAt(pos); + // Go to next character + pos++; + } + // If there is param help text, add it top the doc comments + if (paramHelpString) { + pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); + } + paramHelpStringMargin = undefined; + } + // If this is the start of another tag, continue with the loop in seach of param tag with symbol name + if (sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.at) { + continue; + } + } + // Next character + pos++; + } + return paramDocComments; + function consumeWhiteSpaces(pos) { + while (pos < end && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { + pos++; + } + return pos; + } + function setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos) { + // Get the pos after consuming line breaks + pos = consumeLineBreaks(pos, end, sourceFile); + if (pos >= end) { + return; + } + if (paramHelpStringMargin === undefined) { + paramHelpStringMargin = sourceFile.getLineAndCharacterFromPosition(firstLineParamHelpStringPos).character - 1; + } + // Now consume white spaces max + var startOfLinePos = pos; + pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile, paramHelpStringMargin); + if (pos >= end) { + return; + } + var consumedSpaces = pos - startOfLinePos; + if (consumedSpaces < paramHelpStringMargin) { + var ch = sourceFile.text.charCodeAt(pos); + if (ch === ts.CharacterCodes.asterisk) { + // Consume more spaces after asterisk + pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); + } + } + } + } + } + } + var TypeObject = (function () { + function TypeObject(checker, flags) { + this.checker = checker; + this.flags = flags; + } + TypeObject.prototype.getFlags = function () { + return this.flags; + }; + TypeObject.prototype.getSymbol = function () { + return this.symbol; + }; + TypeObject.prototype.getProperties = function () { + return this.checker.getPropertiesOfType(this); + }; + TypeObject.prototype.getProperty = function (propertyName) { + return this.checker.getPropertyOfType(this, propertyName); + }; + TypeObject.prototype.getApparentProperties = function () { + return this.checker.getAugmentedPropertiesOfType(this); + }; + TypeObject.prototype.getCallSignatures = function () { + return this.checker.getSignaturesOfType(this, ts.SignatureKind.Call); + }; + TypeObject.prototype.getConstructSignatures = function () { + return this.checker.getSignaturesOfType(this, ts.SignatureKind.Construct); + }; + TypeObject.prototype.getStringIndexType = function () { + return this.checker.getIndexTypeOfType(this, ts.IndexKind.String); + }; + TypeObject.prototype.getNumberIndexType = function () { + return this.checker.getIndexTypeOfType(this, ts.IndexKind.Number); + }; + return TypeObject; + })(); + var SignatureObject = (function () { + function SignatureObject(checker) { + this.checker = checker; + } + SignatureObject.prototype.getDeclaration = function () { + return this.declaration; + }; + SignatureObject.prototype.getTypeParameters = function () { + return this.typeParameters; + }; + SignatureObject.prototype.getParameters = function () { + return this.parameters; + }; + SignatureObject.prototype.getReturnType = function () { + return this.checker.getReturnTypeOfSignature(this); + }; + SignatureObject.prototype.getDocumentationComment = function () { + if (this.documentationComment === undefined) { + this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; + } + return this.documentationComment; + }; + return SignatureObject; + })(); + var SourceFileObject = (function (_super) { + __extends(SourceFileObject, _super); + function SourceFileObject() { + _super.apply(this, arguments); + } + SourceFileObject.prototype.getNamedDeclarations = function () { + if (!this.namedDeclarations) { + var sourceFile = this; + var namedDeclarations = []; + ts.forEachChild(sourceFile, function visit(node) { + switch (node.kind) { + case ts.SyntaxKind.FunctionDeclaration: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + var functionDeclaration = node; + if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { + var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; + // Check whether this declaration belongs to an "overload group". + if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { + // Overwrite the last declaration if it was an overload + // and this one is an implementation. + if (functionDeclaration.body && !lastDeclaration.body) { + namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; + } + } + else { + namedDeclarations.push(functionDeclaration); + } + ts.forEachChild(node, visit); + } + break; + case ts.SyntaxKind.ClassDeclaration: + case ts.SyntaxKind.InterfaceDeclaration: + case ts.SyntaxKind.TypeAliasDeclaration: + case ts.SyntaxKind.EnumDeclaration: + case ts.SyntaxKind.ModuleDeclaration: + case ts.SyntaxKind.ImportDeclaration: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + case ts.SyntaxKind.TypeLiteral: + if (node.name) { + namedDeclarations.push(node); + } + case ts.SyntaxKind.Constructor: + case ts.SyntaxKind.VariableStatement: + case ts.SyntaxKind.VariableDeclarationList: + case ts.SyntaxKind.ObjectBindingPattern: + case ts.SyntaxKind.ArrayBindingPattern: + case ts.SyntaxKind.ModuleBlock: + ts.forEachChild(node, visit); + break; + case ts.SyntaxKind.Block: + if (ts.isFunctionBlock(node)) { + ts.forEachChild(node, visit); + } + break; + case ts.SyntaxKind.Parameter: + // Only consider properties defined as constructor parameters + if (!(node.flags & ts.NodeFlags.AccessibilityModifier)) { + break; + } + case ts.SyntaxKind.VariableDeclaration: + case ts.SyntaxKind.BindingElement: + if (ts.isBindingPattern(node.name)) { + ts.forEachChild(node.name, visit); + break; + } + case ts.SyntaxKind.EnumMember: + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + namedDeclarations.push(node); + break; + } + }); + this.namedDeclarations = namedDeclarations; + } + return this.namedDeclarations; + }; + return SourceFileObject; + })(NodeObject); + var TextChange = (function () { + function TextChange() { + } + return TextChange; + })(); + ts.TextChange = TextChange; + (function (SymbolDisplayPartKind) { + SymbolDisplayPartKind[SymbolDisplayPartKind["aliasName"] = 0] = "aliasName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["className"] = 1] = "className"; + SymbolDisplayPartKind[SymbolDisplayPartKind["enumName"] = 2] = "enumName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["fieldName"] = 3] = "fieldName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["interfaceName"] = 4] = "interfaceName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["keyword"] = 5] = "keyword"; + SymbolDisplayPartKind[SymbolDisplayPartKind["lineBreak"] = 6] = "lineBreak"; + SymbolDisplayPartKind[SymbolDisplayPartKind["numericLiteral"] = 7] = "numericLiteral"; + SymbolDisplayPartKind[SymbolDisplayPartKind["stringLiteral"] = 8] = "stringLiteral"; + SymbolDisplayPartKind[SymbolDisplayPartKind["localName"] = 9] = "localName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["methodName"] = 10] = "methodName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["moduleName"] = 11] = "moduleName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["operator"] = 12] = "operator"; + SymbolDisplayPartKind[SymbolDisplayPartKind["parameterName"] = 13] = "parameterName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["propertyName"] = 14] = "propertyName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["punctuation"] = 15] = "punctuation"; + SymbolDisplayPartKind[SymbolDisplayPartKind["space"] = 16] = "space"; + SymbolDisplayPartKind[SymbolDisplayPartKind["text"] = 17] = "text"; + SymbolDisplayPartKind[SymbolDisplayPartKind["typeParameterName"] = 18] = "typeParameterName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["enumMemberName"] = 19] = "enumMemberName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["functionName"] = 20] = "functionName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["regularExpressionLiteral"] = 21] = "regularExpressionLiteral"; + })(ts.SymbolDisplayPartKind || (ts.SymbolDisplayPartKind = {})); + var SymbolDisplayPartKind = ts.SymbolDisplayPartKind; + (function (TokenClass) { + TokenClass[TokenClass["Punctuation"] = 0] = "Punctuation"; + TokenClass[TokenClass["Keyword"] = 1] = "Keyword"; + TokenClass[TokenClass["Operator"] = 2] = "Operator"; + TokenClass[TokenClass["Comment"] = 3] = "Comment"; + TokenClass[TokenClass["Whitespace"] = 4] = "Whitespace"; + TokenClass[TokenClass["Identifier"] = 5] = "Identifier"; + TokenClass[TokenClass["NumberLiteral"] = 6] = "NumberLiteral"; + TokenClass[TokenClass["StringLiteral"] = 7] = "StringLiteral"; + TokenClass[TokenClass["RegExpLiteral"] = 8] = "RegExpLiteral"; + })(ts.TokenClass || (ts.TokenClass = {})); + var TokenClass = ts.TokenClass; + // TODO: move these to enums + var ScriptElementKind = (function () { + function ScriptElementKind() { + } + ScriptElementKind.unknown = ""; + // predefined type (void) or keyword (class) + ScriptElementKind.keyword = "keyword"; + // top level script node + ScriptElementKind.scriptElement = "script"; + // module foo {} + ScriptElementKind.moduleElement = "module"; + // class X {} + ScriptElementKind.classElement = "class"; + // interface Y {} + ScriptElementKind.interfaceElement = "interface"; + // type T = ... + ScriptElementKind.typeElement = "type"; + // enum E + ScriptElementKind.enumElement = "enum"; + // Inside module and script only + // var v = .. + ScriptElementKind.variableElement = "var"; + // Inside function + ScriptElementKind.localVariableElement = "local var"; + // Inside module and script only + // function f() { } + ScriptElementKind.functionElement = "function"; + // Inside function + ScriptElementKind.localFunctionElement = "local function"; + // class X { [public|private]* foo() {} } + ScriptElementKind.memberFunctionElement = "method"; + // class X { [public|private]* [get|set] foo:number; } + ScriptElementKind.memberGetAccessorElement = "getter"; + ScriptElementKind.memberSetAccessorElement = "setter"; + // class X { [public|private]* foo:number; } + // interface Y { foo:number; } + ScriptElementKind.memberVariableElement = "property"; + // class X { constructor() { } } + ScriptElementKind.constructorImplementationElement = "constructor"; + // interface Y { ():number; } + ScriptElementKind.callSignatureElement = "call"; + // interface Y { []:number; } + ScriptElementKind.indexSignatureElement = "index"; + // interface Y { new():Y; } + ScriptElementKind.constructSignatureElement = "construct"; + // function foo(*Y*: string) + ScriptElementKind.parameterElement = "parameter"; + ScriptElementKind.typeParameterElement = "type parameter"; + ScriptElementKind.primitiveType = "primitive type"; + ScriptElementKind.label = "label"; + ScriptElementKind.alias = "alias"; + ScriptElementKind.constElement = "const"; + ScriptElementKind.letElement = "let"; + return ScriptElementKind; + })(); + ts.ScriptElementKind = ScriptElementKind; + var ScriptElementKindModifier = (function () { + function ScriptElementKindModifier() { + } + ScriptElementKindModifier.none = ""; + ScriptElementKindModifier.publicMemberModifier = "public"; + ScriptElementKindModifier.privateMemberModifier = "private"; + ScriptElementKindModifier.protectedMemberModifier = "protected"; + ScriptElementKindModifier.exportedModifier = "export"; + ScriptElementKindModifier.ambientModifier = "declare"; + ScriptElementKindModifier.staticModifier = "static"; + return ScriptElementKindModifier; + })(); + ts.ScriptElementKindModifier = ScriptElementKindModifier; + var ClassificationTypeNames = (function () { + function ClassificationTypeNames() { + } + ClassificationTypeNames.comment = "comment"; + ClassificationTypeNames.identifier = "identifier"; + ClassificationTypeNames.keyword = "keyword"; + ClassificationTypeNames.numericLiteral = "number"; + ClassificationTypeNames.operator = "operator"; + ClassificationTypeNames.stringLiteral = "string"; + ClassificationTypeNames.whiteSpace = "whitespace"; + ClassificationTypeNames.text = "text"; + ClassificationTypeNames.punctuation = "punctuation"; + ClassificationTypeNames.className = "class name"; + ClassificationTypeNames.enumName = "enum name"; + ClassificationTypeNames.interfaceName = "interface name"; + ClassificationTypeNames.moduleName = "module name"; + ClassificationTypeNames.typeParameterName = "type parameter name"; + ClassificationTypeNames.typeAlias = "type alias name"; + return ClassificationTypeNames; + })(); + ts.ClassificationTypeNames = ClassificationTypeNames; + var MatchKind; + (function (MatchKind) { + MatchKind[MatchKind["none"] = 0] = "none"; + MatchKind[MatchKind["exact"] = 1] = "exact"; + MatchKind[MatchKind["substring"] = 2] = "substring"; + MatchKind[MatchKind["prefix"] = 3] = "prefix"; + })(MatchKind || (MatchKind = {})); + function displayPartsToString(displayParts) { + if (displayParts) { + return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); + } + return ""; + } + ts.displayPartsToString = displayPartsToString; + function isLocalVariableOrFunction(symbol) { + if (symbol.parent) { + return false; // This is exported symbol + } + return ts.forEach(symbol.declarations, function (declaration) { + // Function expressions are local + if (declaration.kind === ts.SyntaxKind.FunctionExpression) { + return true; + } + if (declaration.kind !== ts.SyntaxKind.VariableDeclaration && declaration.kind !== ts.SyntaxKind.FunctionDeclaration) { + return false; + } + for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { + // Reached source file or module block + if (parent.kind === ts.SyntaxKind.SourceFile || parent.kind === ts.SyntaxKind.ModuleBlock) { + return false; + } + } + // parent is in function block + return true; + }); + } + function getDefaultCompilerOptions() { + // Set "ScriptTarget.Latest" target by default for language service + return { + target: ts.ScriptTarget.Latest, + module: ts.ModuleKind.None, + }; + } + ts.getDefaultCompilerOptions = getDefaultCompilerOptions; + var OperationCanceledException = (function () { + function OperationCanceledException() { + } + return OperationCanceledException; + })(); + ts.OperationCanceledException = OperationCanceledException; + var CancellationTokenObject = (function () { + function CancellationTokenObject(cancellationToken) { + this.cancellationToken = cancellationToken; + } + CancellationTokenObject.prototype.isCancellationRequested = function () { + return this.cancellationToken && this.cancellationToken.isCancellationRequested(); + }; + CancellationTokenObject.prototype.throwIfCancellationRequested = function () { + if (this.isCancellationRequested()) { + throw new OperationCanceledException(); + } + }; + CancellationTokenObject.None = new CancellationTokenObject(null); + return CancellationTokenObject; + })(); + ts.CancellationTokenObject = CancellationTokenObject; + // Cache host information about scrip Should be refreshed + // at each language service public entry point, since we don't know when + // set of scripts handled by the host changes. + var HostCache = (function () { + function HostCache(host) { + this.host = host; + // script id => script index + this.filenameToEntry = {}; + var filenames = host.getScriptFileNames(); + for (var i = 0, n = filenames.length; i < n; i++) { + var filename = filenames[i]; + this.filenameToEntry[ts.normalizeSlashes(filename)] = { + filename: filename, + version: host.getScriptVersion(filename) + }; + } + this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); + } + HostCache.prototype.compilationSettings = function () { + return this._compilationSettings; + }; + HostCache.prototype.getEntry = function (filename) { + filename = ts.normalizeSlashes(filename); + return ts.lookUp(this.filenameToEntry, filename); + }; + HostCache.prototype.contains = function (filename) { + return !!this.getEntry(filename); + }; + HostCache.prototype.getHostfilename = function (filename) { + var hostCacheEntry = this.getEntry(filename); + if (hostCacheEntry) { + return hostCacheEntry.filename; + } + return filename; + }; + HostCache.prototype.getFilenames = function () { + var _this = this; + var fileNames = []; + ts.forEachKey(this.filenameToEntry, function (key) { + if (ts.hasProperty(_this.filenameToEntry, key)) + fileNames.push(key); + }); + return fileNames; + }; + HostCache.prototype.getVersion = function (filename) { + return this.getEntry(filename).version; + }; + HostCache.prototype.getScriptSnapshot = function (filename) { + var file = this.getEntry(filename); + if (!file.sourceText) { + file.sourceText = this.host.getScriptSnapshot(file.filename); + } + return file.sourceText; + }; + HostCache.prototype.getChangeRange = function (filename, lastKnownVersion, oldScriptSnapshot) { + var currentVersion = this.getVersion(filename); + if (lastKnownVersion === currentVersion) { + return ts.unchangedTextChangeRange; // "No changes" + } + var scriptSnapshot = this.getScriptSnapshot(filename); + return scriptSnapshot.getChangeRange(oldScriptSnapshot); + }; + return HostCache; + })(); + var SyntaxTreeCache = (function () { + function SyntaxTreeCache(host) { + this.host = host; + // For our syntactic only features, we also keep a cache of the syntax tree for the + // currently edited file. + this.currentFilename = ""; + this.currentFileVersion = null; + this.currentSourceFile = null; + } + SyntaxTreeCache.prototype.log = function (message) { + if (this.host.log) { + this.host.log(message); + } + }; + SyntaxTreeCache.prototype.initialize = function (filename) { + // ensure that both source file and syntax tree are either initialized or not initialized + var start = new Date().getTime(); + this.hostCache = new HostCache(this.host); + this.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); + var version = this.hostCache.getVersion(filename); + var sourceFile; + if (this.currentFilename !== filename) { + var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); + var start = new Date().getTime(); + sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, ts.ScriptTarget.Latest, version, true); + this.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); + } + else if (this.currentFileVersion !== version) { + var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); + var editRange = this.hostCache.getChangeRange(filename, this.currentFileVersion, this.currentSourceFile.scriptSnapshot); + var start = new Date().getTime(); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + this.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); + } + if (sourceFile) { + // All done, ensure state is up to date + this.currentFileVersion = version; + this.currentFilename = filename; + this.currentSourceFile = sourceFile; + } + }; + SyntaxTreeCache.prototype.getCurrentSourceFile = function (filename) { + this.initialize(filename); + return this.currentSourceFile; + }; + SyntaxTreeCache.prototype.getCurrentScriptSnapshot = function (filename) { + return this.getCurrentSourceFile(filename).scriptSnapshot; + }; + return SyntaxTreeCache; + })(); + function setSourceFileFields(sourceFile, scriptSnapshot, version) { + sourceFile.version = version; + sourceFile.scriptSnapshot = scriptSnapshot; + } + function createLanguageServiceSourceFile(filename, scriptSnapshot, scriptTarget, version, setNodeParents) { + var sourceFile = ts.createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); + setSourceFileFields(sourceFile, scriptSnapshot, version); + return sourceFile; + } + ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; + ts.disableIncrementalParsing = false; + function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, textChangeRange) { + if (textChangeRange && ts.Debug.shouldAssert(ts.AssertionLevel.Normal)) { + var oldText = sourceFile.scriptSnapshot; + var newText = scriptSnapshot; + ts.Debug.assert((oldText.getLength() - textChangeRange.span.length + textChangeRange.newLength) === newText.getLength()); + if (ts.Debug.shouldAssert(ts.AssertionLevel.VeryAggressive)) { + var oldTextPrefix = oldText.getText(0, textChangeRange.span.start); + var newTextPrefix = newText.getText(0, textChangeRange.span.start); + ts.Debug.assert(oldTextPrefix === newTextPrefix); + var oldTextSuffix = oldText.getText(ts.textSpanEnd(textChangeRange.span), oldText.getLength()); + var newTextSuffix = newText.getText(ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)), newText.getLength()); + ts.Debug.assert(oldTextSuffix === newTextSuffix); + } + } + // If we were given a text change range, and our version or open-ness changed, then + // incrementally parse this file. + if (textChangeRange) { + if (version !== sourceFile.version) { + // Once incremental parsing is ready, then just call into this function. + if (!ts.disableIncrementalParsing) { + var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + setSourceFileFields(newSourceFile, scriptSnapshot, version); + return newSourceFile; + } + } + } + // Otherwise, just create a new source file. + return createLanguageServiceSourceFile(sourceFile.filename, scriptSnapshot, sourceFile.languageVersion, version, true); + } + ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile; + function createDocumentRegistry() { + var buckets = {}; + function getKeyFromCompilationSettings(settings) { + return "_" + settings.target; // + "|" + settings.propagateEnumConstantoString() + } + function getBucketForCompilationSettings(settings, createIfMissing) { + var key = getKeyFromCompilationSettings(settings); + var bucket = ts.lookUp(buckets, key); + if (!bucket && createIfMissing) { + buckets[key] = bucket = {}; + } + return bucket; + } + function reportStats() { + var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { + var entries = ts.lookUp(buckets, name); + var sourceFiles = []; + for (var i in entries) { + var entry = entries[i]; + sourceFiles.push({ + name: i, + refCount: entry.refCount, + references: entry.owners.slice(0) + }); + } + sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); + return { + bucket: name, + sourceFiles + }; + }); + return JSON.stringify(bucketInfoArray, null, 2); + } + function acquireDocument(filename, compilationSettings, scriptSnapshot, version) { + var bucket = getBucketForCompilationSettings(compilationSettings, true); + var entry = ts.lookUp(bucket, filename); + if (!entry) { + var sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, compilationSettings.target, version, false); + bucket[filename] = entry = { + sourceFile: sourceFile, + refCount: 0, + owners: [] + }; + } + entry.refCount++; + return entry.sourceFile; + } + function updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange) { + var bucket = getBucketForCompilationSettings(compilationSettings, false); + ts.Debug.assert(bucket !== undefined); + var entry = ts.lookUp(bucket, filename); + ts.Debug.assert(entry !== undefined); + entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, textChangeRange); + return entry.sourceFile; + } + function releaseDocument(filename, compilationSettings) { + var bucket = getBucketForCompilationSettings(compilationSettings, false); + ts.Debug.assert(bucket !== undefined); + var entry = ts.lookUp(bucket, filename); + entry.refCount--; + ts.Debug.assert(entry.refCount >= 0); + if (entry.refCount === 0) { + delete bucket[filename]; + } + } + return { + acquireDocument, + updateDocument, + releaseDocument, + reportStats + }; + } + ts.createDocumentRegistry = createDocumentRegistry; + function preProcessFile(sourceText, readImportFiles = true) { + var referencedFiles = []; + var importedFiles = []; + var isNoDefaultLib = false; + function processTripleSlashDirectives() { + var commentRanges = ts.getLeadingCommentRanges(sourceText, 0); + ts.forEach(commentRanges, function (commentRange) { + var comment = sourceText.substring(commentRange.pos, commentRange.end); + var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, commentRange); + if (referencePathMatchResult) { + isNoDefaultLib = referencePathMatchResult.isNoDefaultLib; + var fileReference = referencePathMatchResult.fileReference; + if (fileReference) { + referencedFiles.push(fileReference); + } + } + }); + } + function processImport() { + scanner.setText(sourceText); + var token = scanner.scan(); + while (token !== ts.SyntaxKind.EndOfFileToken) { + if (token === ts.SyntaxKind.ImportKeyword) { + token = scanner.scan(); + if (token === ts.SyntaxKind.Identifier) { + token = scanner.scan(); + if (token === ts.SyntaxKind.EqualsToken) { + token = scanner.scan(); + if (token === ts.SyntaxKind.RequireKeyword) { + token = scanner.scan(); + if (token === ts.SyntaxKind.OpenParenToken) { + token = scanner.scan(); + if (token === ts.SyntaxKind.StringLiteral) { + var importPath = scanner.getTokenValue(); + var pos = scanner.getTokenPos(); + importedFiles.push({ + filename: importPath, + pos: pos, + end: pos + importPath.length + }); + } + } + } + } + } + } + token = scanner.scan(); + } + scanner.setText(undefined); + } + if (readImportFiles) { + processImport(); + } + processTripleSlashDirectives(); + return { referencedFiles, importedFiles, isLibFile: isNoDefaultLib }; + } + ts.preProcessFile = preProcessFile; + /// Helpers + function getTargetLabel(referenceNode, labelName) { + while (referenceNode) { + if (referenceNode.kind === ts.SyntaxKind.LabeledStatement && referenceNode.label.text === labelName) { + return referenceNode.label; + } + referenceNode = referenceNode.parent; + } + return undefined; + } + function isJumpStatementTarget(node) { + return node.kind === ts.SyntaxKind.Identifier && (node.parent.kind === ts.SyntaxKind.BreakStatement || node.parent.kind === ts.SyntaxKind.ContinueStatement) && node.parent.label === node; + } + function isLabelOfLabeledStatement(node) { + return node.kind === ts.SyntaxKind.Identifier && node.parent.kind === ts.SyntaxKind.LabeledStatement && node.parent.label === node; + } + /** + * Whether or not a 'node' is preceded by a label of the given string. + * Note: 'node' cannot be a SourceFile. + */ + function isLabeledBy(node, labelName) { + for (var owner = node.parent; owner.kind === ts.SyntaxKind.LabeledStatement; owner = owner.parent) { + if (owner.label.text === labelName) { + return true; + } + } + return false; + } + function isLabelName(node) { + return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); + } + function isRightSideOfQualifiedName(node) { + return node.parent.kind === ts.SyntaxKind.QualifiedName && node.parent.right === node; + } + function isRightSideOfPropertyAccess(node) { + return node && node.parent && node.parent.kind === ts.SyntaxKind.PropertyAccessExpression && node.parent.name === node; + } + function isCallExpressionTarget(node) { + if (isRightSideOfPropertyAccess(node)) { + node = node.parent; + } + return node && node.parent && node.parent.kind === ts.SyntaxKind.CallExpression && node.parent.expression === node; + } + function isNewExpressionTarget(node) { + if (isRightSideOfPropertyAccess(node)) { + node = node.parent; + } + return node && node.parent && node.parent.kind === ts.SyntaxKind.NewExpression && node.parent.expression === node; + } + function isNameOfModuleDeclaration(node) { + return node.parent.kind === ts.SyntaxKind.ModuleDeclaration && node.parent.name === node; + } + function isNameOfFunctionDeclaration(node) { + return node.kind === ts.SyntaxKind.Identifier && ts.isAnyFunction(node.parent) && node.parent.name === node; + } + /** Returns true if node is a name of an object literal property, e.g. "a" in x = { "a": 1 } */ + function isNameOfPropertyAssignment(node) { + return (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.StringLiteral || node.kind === ts.SyntaxKind.NumericLiteral) && (node.parent.kind === ts.SyntaxKind.PropertyAssignment || node.parent.kind === ts.SyntaxKind.ShorthandPropertyAssignment) && node.parent.name === node; + } + function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { + if (node.kind === ts.SyntaxKind.StringLiteral || node.kind === ts.SyntaxKind.NumericLiteral) { + switch (node.parent.kind) { + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + case ts.SyntaxKind.PropertyAssignment: + case ts.SyntaxKind.EnumMember: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + case ts.SyntaxKind.ModuleDeclaration: + return node.parent.name === node; + case ts.SyntaxKind.ElementAccessExpression: + return node.parent.argumentExpression === node; + } + } + return false; + } + function isNameOfExternalModuleImportOrDeclaration(node) { + if (node.kind === ts.SyntaxKind.StringLiteral) { + return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportDeclaration(node.parent.parent) && ts.getExternalModuleImportDeclarationExpression(node.parent.parent) === node); + } + return false; + } + /** Returns true if the position is within a comment */ + function isInsideComment(sourceFile, token, position) { + // The position has to be: 1. in the leading trivia (before token.getStart()), and 2. within a comment + return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + function isInsideCommentRange(comments) { + return ts.forEach(comments, function (comment) { + // either we are 1. completely inside the comment, or 2. at the end of the comment + if (comment.pos < position && position < comment.end) { + return true; + } + else if (position === comment.end) { + var text = sourceFile.text; + var width = comment.end - comment.pos; + // is single line comment or just /* + if (width <= 2 || text.charCodeAt(comment.pos + 1) === ts.CharacterCodes.slash) { + return true; + } + else { + // is unterminated multi-line comment + return !(text.charCodeAt(comment.end - 1) === ts.CharacterCodes.slash && text.charCodeAt(comment.end - 2) === ts.CharacterCodes.asterisk); + } + } + return false; + }); + } + } + // A cache of completion entries for keywords, these do not change between sessions + var keywordCompletions = []; + for (var i = ts.SyntaxKind.FirstKeyword; i <= ts.SyntaxKind.LastKeyword; i++) { + keywordCompletions.push({ + name: ts.tokenToString(i), + kind: ScriptElementKind.keyword, + kindModifiers: ScriptElementKindModifier.none + }); + } + function createLanguageService(host, documentRegistry) { + var syntaxTreeCache = new SyntaxTreeCache(host); + var ruleProvider; + var hostCache; // A cache of all the information about the files on the host side. + var program; + // this checker is used to answer all LS questions except errors + var typeInfoResolver; + var useCaseSensitivefilenames = false; + var sourceFilesByName = {}; + var documentRegistry = documentRegistry; + var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); + var activeCompletionSession; // The current active completion session, used to get the completion entry details + // Check if the localized messages json is set, otherwise query the host for it + if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { + ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); + } + function log(message) { + if (host.log) { + host.log(message); + } + } + function getCanonicalFileName(filename) { + return useCaseSensitivefilenames ? filename : filename.toLowerCase(); + } + function getSourceFile(filename) { + return ts.lookUp(sourceFilesByName, getCanonicalFileName(filename)); + } + function getDiagnosticsProducingTypeChecker() { + return program.getTypeChecker(true); + } + function getRuleProvider(options) { + // Ensure rules are initialized and up to date wrt to formatting options + if (!ruleProvider) { + ruleProvider = new ts.formatting.RulesProvider(); + } + ruleProvider.ensureUpToDate(options); + return ruleProvider; + } + function sourceFileUpToDate(sourceFile) { + return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename); + } + function programUpToDate() { + // If we haven't create a program yet, then it is not up-to-date + if (!program) { + return false; + } + // If number of files in the program do not match, it is not up-to-date + var hostFilenames = hostCache.getFilenames(); + if (program.getSourceFiles().length !== hostFilenames.length) { + return false; + } + for (var i = 0, n = hostFilenames.length; i < n; i++) { + if (!sourceFileUpToDate(program.getSourceFile(hostFilenames[i]))) { + return false; + } + } + // If the compilation settings do no match, then the program is not up-to-date + return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); + } + function synchronizeHostData() { + // Reset the cache at start of every refresh + hostCache = new HostCache(host); + // If the program is already up-to-date, we can reuse it + if (programUpToDate()) { + return; + } + var compilationSettings = hostCache.compilationSettings(); + // Now, remove any files from the compiler that are no longer in the host. + var oldProgram = program; + if (oldProgram) { + var oldSettings = program.getCompilerOptions(); + // If the language version changed, then that affects what types of things we parse. So + // we have to dump all syntax trees. + // TODO: handle propagateEnumConstants + // TODO: is module still needed + var settingsChangeAffectsSyntax = oldSettings.target !== compilationSettings.target || oldSettings.module !== compilationSettings.module; + var changesInCompilationSettingsAffectSyntax = oldSettings && compilationSettings && !ts.compareDataObjects(oldSettings, compilationSettings) && settingsChangeAffectsSyntax; + var oldSourceFiles = program.getSourceFiles(); + for (var i = 0, n = oldSourceFiles.length; i < n; i++) { + cancellationToken.throwIfCancellationRequested(); + var filename = oldSourceFiles[i].filename; + if (!hostCache.contains(filename) || changesInCompilationSettingsAffectSyntax) { + documentRegistry.releaseDocument(filename, oldSettings); + delete sourceFilesByName[getCanonicalFileName(filename)]; + } + } + } + // Now, for every file the host knows about, either add the file (if the compiler + // doesn't know about it.). Or notify the compiler about any changes (if it does + // know about it.) + var hostfilenames = hostCache.getFilenames(); + for (var i = 0, n = hostfilenames.length; i < n; i++) { + var filename = hostfilenames[i]; + var version = hostCache.getVersion(filename); + var scriptSnapshot = hostCache.getScriptSnapshot(filename); + var sourceFile = getSourceFile(filename); + if (sourceFile) { + // + // If the sourceFile is the same, assume no update + // + if (sourceFileUpToDate(sourceFile)) { + continue; + } + var textChangeRange = null; + textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); + sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange); + } + else { + sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version); + } + // Remember the new sourceFile + sourceFilesByName[getCanonicalFileName(filename)] = sourceFile; + } + // Now create a new compiler + program = ts.createProgram(hostfilenames, compilationSettings, { + getSourceFile: getSourceFile, + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (filename) { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefilenames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFilename: ts.getDefaultLibraryFilename, + writeFile: function (filename, data, writeByteOrderMark) { + }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } + }); + typeInfoResolver = program.getTypeChecker(false); + } + /** + * Clean up any semantic caches that are not needed. + * The host can call this method if it wants to jettison unused memory. + * We will just dump the typeChecker and recreate a new one. this should have the effect of destroying all the semantic caches. + */ + function cleanupSemanticCache() { + if (program) { + typeInfoResolver = program.getTypeChecker(false); + } + } + function dispose() { + if (program) { + ts.forEach(program.getSourceFiles(), function (f) { + documentRegistry.releaseDocument(f.filename, program.getCompilerOptions()); + }); + } + } + /// Diagnostics + function getSyntacticDiagnostics(filename) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + return program.getDiagnostics(getSourceFile(filename)); + } + /** + * getSemanticDiagnostiscs return array of Diagnostics. If '-d' is not enabled, only report semantic errors + * If '-d' enabled, report both semantic and emitter errors + */ + function getSemanticDiagnostics(filename) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var compilerOptions = program.getCompilerOptions(); + var checker = getDiagnosticsProducingTypeChecker(); + var targetSourceFile = getSourceFile(filename); + // Only perform the action per file regardless of '-out' flag as LanguageServiceHost is expected to call this function per file. + // Therefore only get diagnostics for given file. + var allDiagnostics = checker.getDiagnostics(targetSourceFile); + if (compilerOptions.declaration) { + // If '-d' is enabled, check for emitter error. One example of emitter error is export class implements non-export interface + allDiagnostics = allDiagnostics.concat(program.getDeclarationDiagnostics(targetSourceFile)); + } + return allDiagnostics; + } + function getCompilerOptionsDiagnostics() { + synchronizeHostData(); + return program.getGlobalDiagnostics(); + } + /// Completion + function getValidCompletionEntryDisplayName(symbol, target) { + var displayName = symbol.getName(); + if (displayName && displayName.length > 0) { + var firstCharCode = displayName.charCodeAt(0); + // First check of the displayName is not external module; if it is an external module, it is not valid entry + if ((symbol.flags & ts.SymbolFlags.Namespace) && (firstCharCode === ts.CharacterCodes.singleQuote || firstCharCode === ts.CharacterCodes.doubleQuote)) { + // If the symbol is external module, don't show it in the completion list + // (i.e declare module "http" { var x; } | // <= request completion here, "http" should not be there) + return undefined; + } + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === ts.CharacterCodes.singleQuote || firstCharCode === ts.CharacterCodes.doubleQuote)) { + // If the user entered name for the symbol was quoted, removing the quotes is not enough, as the name could be an + // invalid identifier name. We need to check if whatever was inside the quotes is actually a valid identifier name. + displayName = displayName.substring(1, displayName.length - 1); + } + var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); + for (var i = 1, n = displayName.length; isValid && i < n; i++) { + isValid = ts.isIdentifierPart(displayName.charCodeAt(i), target); + } + if (isValid) { + return ts.unescapeIdentifier(displayName); + } + } + return undefined; + } + function createCompletionEntry(symbol, typeChecker, location) { + // Try to get a valid display name for this symbol, if we could not find one, then ignore it. + // We would like to only show things that can be added after a dot, so for instance numeric properties can + // not be accessed with a dot (a.1 <- invalid) + var displayName = getValidCompletionEntryDisplayName(symbol, program.getCompilerOptions().target); + if (!displayName) { + return undefined; + } + // TODO(drosen): Right now we just permit *all* semantic meanings when calling 'getSymbolKind' + // which is permissible given that it is backwards compatible; but really we should consider + // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. + // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. + return { + name: displayName, + kind: getSymbolKind(symbol, typeChecker, location), + kindModifiers: getSymbolModifiers(symbol) + }; + } + function getCompletionsAtPosition(filename, position) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var syntacticStart = new Date().getTime(); + var sourceFile = getSourceFile(filename); + var start = new Date().getTime(); + var currentToken = ts.getTokenAtPosition(sourceFile, position); + log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); + var start = new Date().getTime(); + // Completion not allowed inside comments, bail out if this is the case + var insideComment = isInsideComment(sourceFile, currentToken, position); + log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); + if (insideComment) { + log("Returning an empty list because completion was inside a comment."); + return undefined; + } + // The decision to provide completion depends on the previous token, so find it + // Note: previousToken can be undefined if we are the beginning of the file + var start = new Date().getTime(); + var previousToken = ts.findPrecedingToken(position, sourceFile); + log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); + // The caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS| + // Skip this partial identifier to the previous token + if (previousToken && position <= previousToken.end && previousToken.kind === ts.SyntaxKind.Identifier) { + var start = new Date().getTime(); + previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + } + // Check if this is a valid completion location + if (previousToken && isCompletionListBlocker(previousToken)) { + log("Returning an empty list because completion was requested in an invalid position."); + return undefined; + } + // Find the node where completion is requested on, in the case of a completion after a dot, it is the member access expression + // other wise, it is a request for all visible symbols in the scope, and the node is the current location + var node; + var isRightOfDot; + if (previousToken && previousToken.kind === ts.SyntaxKind.DotToken && previousToken.parent.kind === ts.SyntaxKind.PropertyAccessExpression) { + node = previousToken.parent.expression; + isRightOfDot = true; + } + else if (previousToken && previousToken.kind === ts.SyntaxKind.DotToken && previousToken.parent.kind === ts.SyntaxKind.QualifiedName) { + node = previousToken.parent.left; + isRightOfDot = true; + } + else { + node = currentToken; + isRightOfDot = false; + } + // Clear the current activeCompletionSession for this session + activeCompletionSession = { + filename: filename, + position: position, + entries: [], + symbols: {}, + typeChecker: typeInfoResolver + }; + log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); + var location = ts.getTouchingPropertyName(sourceFile, position); + // Populate the completion list + var semanticStart = new Date().getTime(); + if (isRightOfDot) { + // Right of dot member completion list + var symbols = []; + var isMemberCompletion = true; + if (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.QualifiedName || node.kind === ts.SyntaxKind.PropertyAccessExpression) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + // This is an alias, follow what it aliases + if (symbol && symbol.flags & ts.SymbolFlags.Import) { + symbol = typeInfoResolver.getAliasedSymbol(symbol); + } + if (symbol && symbol.flags & ts.SymbolFlags.HasExports) { + // Extract module or enum members + ts.forEachValue(symbol.exports, function (symbol) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + symbols.push(symbol); + } + }); + } + } + var type = typeInfoResolver.getTypeAtLocation(node); + if (type) { + // Filter private properties + ts.forEach(type.getApparentProperties(), function (symbol) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + symbols.push(symbol); + } + }); + } + getCompletionEntriesFromSymbols(symbols, activeCompletionSession); + } + else { + var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(previousToken); + if (containingObjectLiteral) { + // Object literal expression, look up possible property names from contextual type + isMemberCompletion = true; + var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); + if (!contextualType) { + return undefined; + } + var contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); + if (contextualTypeMembers && contextualTypeMembers.length > 0) { + // Add filtered items to the completion list + var filteredMembers = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); + getCompletionEntriesFromSymbols(filteredMembers, activeCompletionSession); + } + } + else { + // Get scope members + isMemberCompletion = false; + /// TODO filter meaning based on the current context + var symbolMeanings = ts.SymbolFlags.Type | ts.SymbolFlags.Value | ts.SymbolFlags.Namespace | ts.SymbolFlags.Import; + var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); + getCompletionEntriesFromSymbols(symbols, activeCompletionSession); + } + } + // Add keywords if this is not a member completion list + if (!isMemberCompletion) { + Array.prototype.push.apply(activeCompletionSession.entries, keywordCompletions); + } + log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); + return { + isMemberCompletion, + entries: activeCompletionSession.entries + }; + function getCompletionEntriesFromSymbols(symbols, session) { + var start = new Date().getTime(); + ts.forEach(symbols, function (symbol) { + var entry = createCompletionEntry(symbol, session.typeChecker, location); + if (entry) { + var id = ts.escapeIdentifier(entry.name); + if (!ts.lookUp(session.symbols, id)) { + session.entries.push(entry); + session.symbols[id] = symbol; + } + } + }); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + } + function isCompletionListBlocker(previousToken) { + var start = new Date().getTime(); + var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + return result; + } + function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { + if (previousToken.kind === ts.SyntaxKind.StringLiteral || previousToken.kind === ts.SyntaxKind.RegularExpressionLiteral || ts.isTemplateLiteralKind(previousToken.kind)) { + // The position has to be either: 1. entirely within the token text, or + // 2. at the end position of an unterminated token. + var start = previousToken.getStart(); + var end = previousToken.getEnd(); + if (start < position && position < end) { + return true; + } + else if (position === end) { + return !!previousToken.isUnterminated; + } + } + return false; + } + function getContainingObjectLiteralApplicableForCompletion(previousToken) { + // The locations in an object literal expression that are applicable for completion are property name definition locations. + if (previousToken) { + var parent = previousToken.parent; + switch (previousToken.kind) { + case ts.SyntaxKind.OpenBraceToken: + case ts.SyntaxKind.CommaToken: + if (parent && parent.kind === ts.SyntaxKind.ObjectLiteralExpression) { + return parent; + } + break; + } + } + return undefined; + } + function isFunction(kind) { + switch (kind) { + case ts.SyntaxKind.FunctionExpression: + case ts.SyntaxKind.ArrowFunction: + case ts.SyntaxKind.FunctionDeclaration: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + case ts.SyntaxKind.Constructor: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + case ts.SyntaxKind.CallSignature: + case ts.SyntaxKind.ConstructSignature: + case ts.SyntaxKind.IndexSignature: + return true; + } + return false; + } + function isIdentifierDefinitionLocation(previousToken) { + if (previousToken) { + var containingNodeKind = previousToken.parent.kind; + switch (previousToken.kind) { + case ts.SyntaxKind.CommaToken: + return containingNodeKind === ts.SyntaxKind.VariableDeclaration || containingNodeKind === ts.SyntaxKind.VariableDeclarationList || containingNodeKind === ts.SyntaxKind.VariableStatement || containingNodeKind === ts.SyntaxKind.EnumDeclaration || isFunction(containingNodeKind); + case ts.SyntaxKind.OpenParenToken: + return containingNodeKind === ts.SyntaxKind.CatchClause || isFunction(containingNodeKind); + case ts.SyntaxKind.OpenBraceToken: + return containingNodeKind === ts.SyntaxKind.EnumDeclaration || containingNodeKind === ts.SyntaxKind.InterfaceDeclaration; + case ts.SyntaxKind.SemicolonToken: + return containingNodeKind === ts.SyntaxKind.PropertySignature && previousToken.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration; + case ts.SyntaxKind.PublicKeyword: + case ts.SyntaxKind.PrivateKeyword: + case ts.SyntaxKind.StaticKeyword: + case ts.SyntaxKind.DotDotDotToken: + return containingNodeKind === ts.SyntaxKind.Parameter; + case ts.SyntaxKind.ClassKeyword: + case ts.SyntaxKind.ModuleKeyword: + case ts.SyntaxKind.EnumKeyword: + case ts.SyntaxKind.InterfaceKeyword: + case ts.SyntaxKind.FunctionKeyword: + case ts.SyntaxKind.VarKeyword: + case ts.SyntaxKind.GetKeyword: + case ts.SyntaxKind.SetKeyword: + case ts.SyntaxKind.ImportKeyword: + return true; + } + switch (previousToken.getText()) { + case "class": + case "interface": + case "enum": + case "module": + case "function": + case "var": + // TODO: add let and const + return true; + } + } + return false; + } + function isRightOfIllegalDot(previousToken) { + if (previousToken && previousToken.kind === ts.SyntaxKind.NumericLiteral) { + var text = previousToken.getFullText(); + return text.charAt(text.length - 1) === "."; + } + return false; + } + function filterContextualMembersList(contextualMemberSymbols, existingMembers) { + if (!existingMembers || existingMembers.length === 0) { + return contextualMemberSymbols; + } + var existingMemberNames = {}; + ts.forEach(existingMembers, function (m) { + if (m.kind !== ts.SyntaxKind.PropertyAssignment && m.kind !== ts.SyntaxKind.ShorthandPropertyAssignment) { + // Ignore omitted expressions for missing members in the object literal + return; + } + if (m.getStart() <= position && position <= m.getEnd()) { + // If this is the current item we are editing right now, do not filter it out + return; + } + // TODO(jfreeman): Account for computed property name + existingMemberNames[m.name.text] = true; + }); + var filteredMembers = []; + ts.forEach(contextualMemberSymbols, function (s) { + if (!existingMemberNames[s.name]) { + filteredMembers.push(s); + } + }); + return filteredMembers; + } + } + function getCompletionEntryDetails(filename, position, entryName) { + // Note: No need to call synchronizeHostData, as we have captured all the data we need + // in the getCompletionsAtPosition earlier + filename = ts.normalizeSlashes(filename); + var sourceFile = getSourceFile(filename); + var session = activeCompletionSession; + // Ensure that the current active completion session is still valid for this request + if (!session || session.filename !== filename || session.position !== position) { + return undefined; + } + var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); + if (symbol) { + var location = ts.getTouchingPropertyName(sourceFile, position); + var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); + // TODO(drosen): Right now we just permit *all* semantic meanings when calling 'getSymbolKind' + // which is permissible given that it is backwards compatible; but really we should consider + // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. + // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. + ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getSourceFile(filename), location, session.typeChecker, location, 7 /* All */); + return { + name: entryName, + kind: displayPartsDocumentationsAndSymbolKind.symbolKind, + kindModifiers: completionEntry.kindModifiers, + displayParts: displayPartsDocumentationsAndSymbolKind.displayParts, + documentation: displayPartsDocumentationsAndSymbolKind.documentation + }; + } + else { + // No symbol, it is a keyword + return { + name: entryName, + kind: ScriptElementKind.keyword, + kindModifiers: ScriptElementKindModifier.none, + displayParts: [ts.displayPart(entryName, 5 /* keyword */)], + documentation: undefined + }; + } + } + function getContainerNode(node) { + while (true) { + node = node.parent; + if (!node) { + return undefined; + } + switch (node.kind) { + case ts.SyntaxKind.SourceFile: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + case ts.SyntaxKind.FunctionDeclaration: + case ts.SyntaxKind.FunctionExpression: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + case ts.SyntaxKind.ClassDeclaration: + case ts.SyntaxKind.InterfaceDeclaration: + case ts.SyntaxKind.EnumDeclaration: + case ts.SyntaxKind.ModuleDeclaration: + return node; + } + } + } + // TODO(drosen): use contextual SemanticMeaning. + function getSymbolKind(symbol, typeResolver, location) { + var flags = symbol.getFlags(); + if (flags & ts.SymbolFlags.Class) + return ScriptElementKind.classElement; + if (flags & ts.SymbolFlags.Enum) + return ScriptElementKind.enumElement; + if (flags & ts.SymbolFlags.TypeAlias) + return ScriptElementKind.typeElement; + if (flags & ts.SymbolFlags.Interface) + return ScriptElementKind.interfaceElement; + if (flags & ts.SymbolFlags.TypeParameter) + return ScriptElementKind.typeParameterElement; + var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); + if (result === ScriptElementKind.unknown) { + if (flags & ts.SymbolFlags.TypeParameter) + return ScriptElementKind.typeParameterElement; + if (flags & ts.SymbolFlags.EnumMember) + return ScriptElementKind.variableElement; + if (flags & ts.SymbolFlags.Import) + return ScriptElementKind.alias; + if (flags & ts.SymbolFlags.Module) + return ScriptElementKind.moduleElement; + } + return result; + } + function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location) { + if (typeResolver.isUndefinedSymbol(symbol)) { + return ScriptElementKind.variableElement; + } + if (typeResolver.isArgumentsSymbol(symbol)) { + return ScriptElementKind.localVariableElement; + } + if (flags & ts.SymbolFlags.Variable) { + if (ts.isFirstDeclarationOfSymbolParameter(symbol)) { + return ScriptElementKind.parameterElement; + } + else if (symbol.valueDeclaration && ts.isConst(symbol.valueDeclaration)) { + return ScriptElementKind.constElement; + } + else if (ts.forEach(symbol.declarations, ts.isLet)) { + return ScriptElementKind.letElement; + } + return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; + } + if (flags & ts.SymbolFlags.Function) + return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; + if (flags & ts.SymbolFlags.GetAccessor) + return ScriptElementKind.memberGetAccessorElement; + if (flags & ts.SymbolFlags.SetAccessor) + return ScriptElementKind.memberSetAccessorElement; + if (flags & ts.SymbolFlags.Method) + return ScriptElementKind.memberFunctionElement; + if (flags & ts.SymbolFlags.Constructor) + return ScriptElementKind.constructorImplementationElement; + if (flags & ts.SymbolFlags.Property) { + if (flags & ts.SymbolFlags.UnionProperty) { + // If union property is result of union of non method (property/accessors/variables), it is labeled as property + var unionPropertyKind = ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { + var rootSymbolFlags = rootSymbol.getFlags(); + if (rootSymbolFlags & (ts.SymbolFlags.PropertyOrAccessor | ts.SymbolFlags.Variable)) { + return ScriptElementKind.memberVariableElement; + } + ts.Debug.assert(!!(rootSymbolFlags & ts.SymbolFlags.Method)); + }); + if (!unionPropertyKind) { + // If this was union of all methods, + //make sure it has call signatures before we can label it as method + var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); + if (typeOfUnionProperty.getCallSignatures().length) { + return ScriptElementKind.memberFunctionElement; + } + return ScriptElementKind.memberVariableElement; + } + return unionPropertyKind; + } + return ScriptElementKind.memberVariableElement; + } + return ScriptElementKind.unknown; + } + function getTypeKind(type) { + var flags = type.getFlags(); + if (flags & ts.TypeFlags.Enum) + return ScriptElementKind.enumElement; + if (flags & ts.TypeFlags.Class) + return ScriptElementKind.classElement; + if (flags & ts.TypeFlags.Interface) + return ScriptElementKind.interfaceElement; + if (flags & ts.TypeFlags.TypeParameter) + return ScriptElementKind.typeParameterElement; + if (flags & ts.TypeFlags.Intrinsic) + return ScriptElementKind.primitiveType; + if (flags & ts.TypeFlags.StringLiteral) + return ScriptElementKind.primitiveType; + return ScriptElementKind.unknown; + } + function getNodeKind(node) { + switch (node.kind) { + case ts.SyntaxKind.ModuleDeclaration: return ScriptElementKind.moduleElement; + case ts.SyntaxKind.ClassDeclaration: return ScriptElementKind.classElement; + case ts.SyntaxKind.InterfaceDeclaration: return ScriptElementKind.interfaceElement; + case ts.SyntaxKind.TypeAliasDeclaration: return ScriptElementKind.typeElement; + case ts.SyntaxKind.EnumDeclaration: return ScriptElementKind.enumElement; + case ts.SyntaxKind.VariableDeclaration: + return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; + case ts.SyntaxKind.FunctionDeclaration: return ScriptElementKind.functionElement; + case ts.SyntaxKind.GetAccessor: return ScriptElementKind.memberGetAccessorElement; + case ts.SyntaxKind.SetAccessor: return ScriptElementKind.memberSetAccessorElement; + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + return ScriptElementKind.memberFunctionElement; + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + return ScriptElementKind.memberVariableElement; + case ts.SyntaxKind.IndexSignature: return ScriptElementKind.indexSignatureElement; + case ts.SyntaxKind.ConstructSignature: return ScriptElementKind.constructSignatureElement; + case ts.SyntaxKind.CallSignature: return ScriptElementKind.callSignatureElement; + case ts.SyntaxKind.Constructor: return ScriptElementKind.constructorImplementationElement; + case ts.SyntaxKind.TypeParameter: return ScriptElementKind.typeParameterElement; + case ts.SyntaxKind.EnumMember: return ScriptElementKind.variableElement; + case ts.SyntaxKind.Parameter: return (node.flags & ts.NodeFlags.AccessibilityModifier) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + } + return ScriptElementKind.unknown; + } + function getSymbolModifiers(symbol) { + return symbol && symbol.declarations && symbol.declarations.length > 0 ? ts.getNodeModifiers(symbol.declarations[0]) : ScriptElementKindModifier.none; + } + function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, + // TODO(drosen): Currently completion entry details passes the SemanticMeaning.All instead of using semanticMeaning of location + semanticMeaning = getMeaningFromLocation(location)) { + var displayParts = []; + var documentation; + var symbolFlags = symbol.flags; + var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); + var hasAddedSymbolInfo; + // Class at constructor site need to be shown as constructor apart from property,method, vars + if (symbolKind !== ScriptElementKind.unknown || symbolFlags & ts.SymbolFlags.Class || symbolFlags & ts.SymbolFlags.Import) { + // If it is accessor they are allowed only if location is at name of the accessor + if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { + symbolKind = ScriptElementKind.memberVariableElement; + } + var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + if (type) { + if (location.parent && location.parent.kind === ts.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.getFullWidth() === 0)) { + location = location.parent; + } + } + // try get the call/construct signature from the type if it matches + var callExpression; + if (location.kind === ts.SyntaxKind.CallExpression || location.kind === ts.SyntaxKind.NewExpression) { + callExpression = location; + } + else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { + callExpression = location.parent; + } + if (callExpression) { + var candidateSignatures = []; + signature = typeResolver.getResolvedSignature(callExpression, candidateSignatures); + if (!signature && candidateSignatures.length) { + // Use the first candidate: + signature = candidateSignatures[0]; + } + var useConstructSignatures = callExpression.kind === ts.SyntaxKind.NewExpression || callExpression.expression.kind === ts.SyntaxKind.SuperKeyword; + var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); + if (!ts.contains(allSignatures, signature.target || signature)) { + // Get the first signature if there + signature = allSignatures.length ? allSignatures[0] : undefined; + } + if (signature) { + if (useConstructSignatures && (symbolFlags & ts.SymbolFlags.Class)) { + // Constructor + symbolKind = ScriptElementKind.constructorImplementationElement; + addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); + } + else if (symbolFlags & ts.SymbolFlags.Import) { + symbolKind = ScriptElementKind.alias; + displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); + displayParts.push(ts.textPart(symbolKind)); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); + displayParts.push(ts.spacePart()); + if (useConstructSignatures) { + displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); + displayParts.push(ts.spacePart()); + } + addFullSymbolName(symbol); + } + else { + addPrefixForAnyFunctionOrVar(symbol, symbolKind); + } + switch (symbolKind) { + case ScriptElementKind.memberVariableElement: + case ScriptElementKind.variableElement: + case ScriptElementKind.constElement: + case ScriptElementKind.letElement: + case ScriptElementKind.parameterElement: + case ScriptElementKind.localVariableElement: + // If it is call or construct signature of lambda's write type name + displayParts.push(ts.punctuationPart(ts.SyntaxKind.ColonToken)); + displayParts.push(ts.spacePart()); + if (useConstructSignatures) { + displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); + displayParts.push(ts.spacePart()); + } + if (!(type.flags & ts.TypeFlags.Anonymous)) { + displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, ts.SymbolFormatFlags.WriteTypeParametersOrArguments)); + } + addSignatureDisplayParts(signature, allSignatures, ts.TypeFormatFlags.WriteArrowStyleSignature); + break; + default: + // Just signature + addSignatureDisplayParts(signature, allSignatures); + } + hasAddedSymbolInfo = true; + } + } + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & ts.SymbolFlags.Accessor)) || (location.kind === ts.SyntaxKind.ConstructorKeyword && location.parent.kind === ts.SyntaxKind.Constructor)) { + // get the signature from the declaration and write it + var signature; + var functionDeclaration = location.parent; + var allSignatures = functionDeclaration.kind === ts.SyntaxKind.Constructor ? type.getConstructSignatures() : type.getCallSignatures(); + if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { + signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); + } + else { + signature = allSignatures[0]; + } + if (functionDeclaration.kind === ts.SyntaxKind.Constructor) { + // show (constructor) Type(...) signature + symbolKind = ScriptElementKind.constructorImplementationElement; + addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); + } + else { + // (function/method) symbol(..signature) + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === ts.SyntaxKind.CallSignature && !(type.symbol.flags & ts.SymbolFlags.TypeLiteral || type.symbol.flags & ts.SymbolFlags.ObjectLiteral) ? type.symbol : symbol, symbolKind); + } + addSignatureDisplayParts(signature, allSignatures); + hasAddedSymbolInfo = true; + } + } + } + if (symbolFlags & ts.SymbolFlags.Class && !hasAddedSymbolInfo) { + displayParts.push(ts.keywordPart(ts.SyntaxKind.ClassKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + writeTypeParametersOfSymbol(symbol, sourceFile); + } + if ((symbolFlags & ts.SymbolFlags.Interface) && (semanticMeaning & 2 /* Type */)) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(ts.SyntaxKind.InterfaceKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + writeTypeParametersOfSymbol(symbol, sourceFile); + } + if (symbolFlags & ts.SymbolFlags.TypeAlias) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(ts.SyntaxKind.TypeKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); + displayParts.push(ts.spacePart()); + displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, typeResolver.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration)); + } + if (symbolFlags & ts.SymbolFlags.Enum) { + addNewLineIfDisplayPartsExist(); + if (ts.forEach(symbol.declarations, ts.isConstEnumDeclaration)) { + displayParts.push(ts.keywordPart(ts.SyntaxKind.ConstKeyword)); + displayParts.push(ts.spacePart()); + } + displayParts.push(ts.keywordPart(ts.SyntaxKind.EnumKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + if (symbolFlags & ts.SymbolFlags.Module) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(ts.SyntaxKind.ModuleKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + if ((symbolFlags & ts.SymbolFlags.TypeParameter) && (semanticMeaning & 2 /* Type */)) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); + displayParts.push(ts.textPart("type parameter")); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + displayParts.push(ts.spacePart()); + displayParts.push(ts.keywordPart(ts.SyntaxKind.InKeyword)); + displayParts.push(ts.spacePart()); + if (symbol.parent) { + // Class/Interface type parameter + addFullSymbolName(symbol.parent, enclosingDeclaration); + writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); + } + else { + // Method/function type parameter + var signatureDeclaration = ts.getDeclarationOfKind(symbol, ts.SyntaxKind.TypeParameter).parent; + var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + if (signatureDeclaration.kind === ts.SyntaxKind.ConstructSignature) { + displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); + displayParts.push(ts.spacePart()); + } + else if (signatureDeclaration.kind !== ts.SyntaxKind.CallSignature && signatureDeclaration.name) { + addFullSymbolName(signatureDeclaration.symbol); + } + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, ts.TypeFormatFlags.WriteTypeArgumentsOfSignature)); + } + } + if (symbolFlags & ts.SymbolFlags.EnumMember) { + addPrefixForAnyFunctionOrVar(symbol, "enum member"); + var declaration = symbol.declarations[0]; + if (declaration.kind === ts.SyntaxKind.EnumMember) { + var constantValue = typeResolver.getEnumMemberValue(declaration); + if (constantValue !== undefined) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.displayPart(constantValue.toString(), 7 /* numericLiteral */)); + } + } + } + if (symbolFlags & ts.SymbolFlags.Import) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(ts.SyntaxKind.ImportKeyword)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + ts.forEach(symbol.declarations, function (declaration) { + if (declaration.kind === ts.SyntaxKind.ImportDeclaration) { + var importDeclaration = declaration; + if (ts.isExternalModuleImportDeclaration(importDeclaration)) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.keywordPart(ts.SyntaxKind.RequireKeyword)); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); + displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportDeclarationExpression(importDeclaration)), 8 /* stringLiteral */)); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); + } + else { + var internalAliasSymbol = typeResolver.getSymbolAtLocation(importDeclaration.moduleReference); + if (internalAliasSymbol) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); + displayParts.push(ts.spacePart()); + addFullSymbolName(internalAliasSymbol, enclosingDeclaration); + } + } + return true; + } + }); + } + if (!hasAddedSymbolInfo) { + if (symbolKind !== ScriptElementKind.unknown) { + if (type) { + addPrefixForAnyFunctionOrVar(symbol, symbolKind); + // For properties, variables and local vars: show the type + if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & ts.SymbolFlags.Variable || symbolKind === ScriptElementKind.localVariableElement) { + displayParts.push(ts.punctuationPart(ts.SyntaxKind.ColonToken)); + displayParts.push(ts.spacePart()); + // If the type is type parameter, format it specially + if (type.symbol && type.symbol.flags & ts.SymbolFlags.TypeParameter) { + var typeParameterParts = ts.mapToDisplayParts(function (writer) { + typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); + }); + displayParts.push.apply(displayParts, typeParameterParts); + } + else { + displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); + } + } + else if (symbolFlags & ts.SymbolFlags.Function || symbolFlags & ts.SymbolFlags.Method || symbolFlags & ts.SymbolFlags.Constructor || symbolFlags & ts.SymbolFlags.Signature || symbolFlags & ts.SymbolFlags.Accessor || symbolKind === ScriptElementKind.memberFunctionElement) { + var allSignatures = type.getCallSignatures(); + addSignatureDisplayParts(allSignatures[0], allSignatures); + } + } + } + else { + symbolKind = getSymbolKind(symbol, typeResolver, location); + } + } + if (!documentation) { + documentation = symbol.getDocumentationComment(); + } + return { displayParts, documentation, symbolKind }; + function addNewLineIfDisplayPartsExist() { + if (displayParts.length) { + displayParts.push(ts.lineBreakPart()); + } + } + function addFullSymbolName(symbol, enclosingDeclaration) { + var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, ts.SymbolFormatFlags.WriteTypeParametersOrArguments | ts.SymbolFormatFlags.UseOnlyExternalAliasing); + displayParts.push.apply(displayParts, fullSymbolDisplayParts); + } + function addPrefixForAnyFunctionOrVar(symbol, symbolKind) { + addNewLineIfDisplayPartsExist(); + if (symbolKind) { + displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); + displayParts.push(ts.textPart(symbolKind)); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + } + function addSignatureDisplayParts(signature, allSignatures, flags) { + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | ts.TypeFormatFlags.WriteTypeArgumentsOfSignature)); + if (allSignatures.length > 1) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); + displayParts.push(ts.operatorPart(ts.SyntaxKind.PlusToken)); + displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.textPart(allSignatures.length === 2 ? "overload" : "overloads")); + displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); + } + documentation = signature.getDocumentationComment(); + } + function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { + var typeParameterParts = ts.mapToDisplayParts(function (writer) { + typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); + }); + displayParts.push.apply(displayParts, typeParameterParts); + } + } + function getQuickInfoAtPosition(fileName, position) { + synchronizeHostData(); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (!symbol) { + switch (node.kind) { + case ts.SyntaxKind.Identifier: + case ts.SyntaxKind.PropertyAccessExpression: + case ts.SyntaxKind.QualifiedName: + case ts.SyntaxKind.ThisKeyword: + case ts.SyntaxKind.SuperKeyword: + // For the identifiers/this/super etc get the type at position + var type = typeInfoResolver.getTypeAtLocation(node); + if (type) { + return { + kind: ScriptElementKind.unknown, + kindModifiers: ScriptElementKindModifier.none, + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + displayParts: ts.typeToDisplayParts(typeInfoResolver, type, getContainerNode(node)), + documentation: type.symbol ? type.symbol.getDocumentationComment() : undefined + }; + } + } + return undefined; + } + var displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); + return { + kind: displayPartsDocumentationsAndKind.symbolKind, + kindModifiers: getSymbolModifiers(symbol), + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + displayParts: displayPartsDocumentationsAndKind.displayParts, + documentation: displayPartsDocumentationsAndKind.documentation + }; + } + /// Goto definition + function getDefinitionAtPosition(filename, position) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var sourceFile = getSourceFile(filename); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + // Labels + if (isJumpStatementTarget(node)) { + var labelName = node.text; + var label = getTargetLabel(node.parent, node.text); + return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; + } + /// Triple slash reference comments + var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); + if (comment) { + var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); + if (referenceFile) { + return [{ + fileName: referenceFile.filename, + textSpan: ts.createTextSpanFromBounds(0, 0), + kind: ScriptElementKind.scriptElement, + name: comment.filename, + containerName: undefined, + containerKind: undefined + }]; + } + return undefined; + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + // Could not find a symbol e.g. node is string or number keyword, + // or the symbol was an internal symbol and does not have a declaration e.g. undefined symbol + if (!symbol) { + return undefined; + } + var result = []; + // Because name in short-hand property assignment has two different meanings: property name and property value, + // using go-to-definition at such position should go to the variable declaration of the property value rather than + // go to the declaration of the property name (in this case stay at the same position). However, if go-to-definition + // is performed at the location of property access, we would like to go to definition of the property in the short-hand + // assignment. This case and others are handled by the following code. + if (node.parent.kind === ts.SyntaxKind.ShorthandPropertyAssignment) { + var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); + var shorthandDeclarations = shorthandSymbol.getDeclarations(); + var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); + var shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); + var shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); + ts.forEach(shorthandDeclarations, function (declaration) { + result.push(getDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName)); + }); + return result; + } + var declarations = symbol.getDeclarations(); + var symbolName = typeInfoResolver.symbolToString(symbol); // Do not get scoped name, just the name of the symbol + var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); + var containerSymbol = symbol.parent; + var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; + if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { + // Just add all the declarations. + ts.forEach(declarations, function (declaration) { + result.push(getDefinitionInfo(declaration, symbolKind, symbolName, containerName)); + }); + } + return result; + function getDefinitionInfo(node, symbolKind, symbolName, containerName) { + return { + fileName: node.getSourceFile().filename, + textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()), + kind: symbolKind, + name: symbolName, + containerKind: undefined, + containerName + }; + } + function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { + var declarations = []; + var definition; + ts.forEach(signatureDeclarations, function (d) { + if ((selectConstructors && d.kind === ts.SyntaxKind.Constructor) || (!selectConstructors && (d.kind === ts.SyntaxKind.FunctionDeclaration || d.kind === ts.SyntaxKind.MethodDeclaration || d.kind === ts.SyntaxKind.MethodSignature))) { + declarations.push(d); + if (d.body) + definition = d; + } + }); + if (definition) { + result.push(getDefinitionInfo(definition, symbolKind, symbolName, containerName)); + return true; + } + else if (declarations.length) { + result.push(getDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); + return true; + } + return false; + } + function tryAddConstructSignature(symbol, location, symbolKind, symbolName, containerName, result) { + // Applicable only if we are in a new expression, or we are on a constructor declaration + // and in either case the symbol has a construct signature definition, i.e. class + if (isNewExpressionTarget(location) || location.kind === ts.SyntaxKind.ConstructorKeyword) { + if (symbol.flags & ts.SymbolFlags.Class) { + var classDeclaration = symbol.getDeclarations()[0]; + ts.Debug.assert(classDeclaration && classDeclaration.kind === ts.SyntaxKind.ClassDeclaration); + return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); + } + } + return false; + } + function tryAddCallSignature(symbol, location, symbolKind, symbolName, containerName, result) { + if (isCallExpressionTarget(location) || isNewExpressionTarget(location) || isNameOfFunctionDeclaration(location)) { + return tryAddSignature(symbol.declarations, false, symbolKind, symbolName, containerName, result); + } + return false; + } + } + /// References and Occurrences + function getOccurrencesAtPosition(filename, position) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var sourceFile = getSourceFile(filename); + var node = ts.getTouchingWord(sourceFile, position); + if (!node) { + return undefined; + } + if (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.ThisKeyword || node.kind === ts.SyntaxKind.SuperKeyword || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + return getReferencesForNode(node, [sourceFile], false, false); + } + switch (node.kind) { + case ts.SyntaxKind.IfKeyword: + case ts.SyntaxKind.ElseKeyword: + if (hasKind(node.parent, ts.SyntaxKind.IfStatement)) { + return getIfElseOccurrences(node.parent); + } + break; + case ts.SyntaxKind.ReturnKeyword: + if (hasKind(node.parent, ts.SyntaxKind.ReturnStatement)) { + return getReturnOccurrences(node.parent); + } + break; + case ts.SyntaxKind.ThrowKeyword: + if (hasKind(node.parent, ts.SyntaxKind.ThrowStatement)) { + return getThrowOccurrences(node.parent); + } + break; + case ts.SyntaxKind.CatchKeyword: + if (hasKind(parent(parent(node)), ts.SyntaxKind.TryStatement)) { + return getTryCatchFinallyOccurrences(node.parent.parent); + } + break; + case ts.SyntaxKind.TryKeyword: + case ts.SyntaxKind.FinallyKeyword: + if (hasKind(parent(node), ts.SyntaxKind.TryStatement)) { + return getTryCatchFinallyOccurrences(node.parent); + } + break; + case ts.SyntaxKind.SwitchKeyword: + if (hasKind(node.parent, ts.SyntaxKind.SwitchStatement)) { + return getSwitchCaseDefaultOccurrences(node.parent); + } + break; + case ts.SyntaxKind.CaseKeyword: + case ts.SyntaxKind.DefaultKeyword: + if (hasKind(parent(parent(node)), ts.SyntaxKind.SwitchStatement)) { + return getSwitchCaseDefaultOccurrences(node.parent.parent); + } + break; + case ts.SyntaxKind.BreakKeyword: + case ts.SyntaxKind.ContinueKeyword: + if (hasKind(node.parent, ts.SyntaxKind.BreakStatement) || hasKind(node.parent, ts.SyntaxKind.ContinueStatement)) { + return getBreakOrContinueStatementOccurences(node.parent); + } + break; + case ts.SyntaxKind.ForKeyword: + if (hasKind(node.parent, ts.SyntaxKind.ForStatement) || hasKind(node.parent, ts.SyntaxKind.ForInStatement)) { + return getLoopBreakContinueOccurrences(node.parent); + } + break; + case ts.SyntaxKind.WhileKeyword: + case ts.SyntaxKind.DoKeyword: + if (hasKind(node.parent, ts.SyntaxKind.WhileStatement) || hasKind(node.parent, ts.SyntaxKind.DoStatement)) { + return getLoopBreakContinueOccurrences(node.parent); + } + break; + case ts.SyntaxKind.ConstructorKeyword: + if (hasKind(node.parent, ts.SyntaxKind.Constructor)) { + return getConstructorOccurrences(node.parent); + } + break; + case ts.SyntaxKind.GetKeyword: + case ts.SyntaxKind.SetKeyword: + if (hasKind(node.parent, ts.SyntaxKind.GetAccessor) || hasKind(node.parent, ts.SyntaxKind.SetAccessor)) { + return getGetAndSetOccurrences(node.parent); + } + default: + if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === ts.SyntaxKind.VariableStatement)) { + return getModifierOccurrences(node.kind, node.parent); + } + } + return undefined; + function getIfElseOccurrences(ifStatement) { + var keywords = []; + while (hasKind(ifStatement.parent, ts.SyntaxKind.IfStatement) && ifStatement.parent.elseStatement === ifStatement) { + ifStatement = ifStatement.parent; + } + while (ifStatement) { + var children = ifStatement.getChildren(); + pushKeywordIf(keywords, children[0], ts.SyntaxKind.IfKeyword); + for (var i = children.length - 1; i >= 0; i--) { + if (pushKeywordIf(keywords, children[i], ts.SyntaxKind.ElseKeyword)) { + break; + } + } + if (!hasKind(ifStatement.elseStatement, ts.SyntaxKind.IfStatement)) { + break; + } + ifStatement = ifStatement.elseStatement; + } + var result = []; + for (var i = 0; i < keywords.length; i++) { + if (keywords[i].kind === ts.SyntaxKind.ElseKeyword && i < keywords.length - 1) { + var elseKeyword = keywords[i]; + var ifKeyword = keywords[i + 1]; // this *should* always be an 'if' keyword. + var shouldHighlightNextKeyword = true; + for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { + if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { + shouldHighlightNextKeyword = false; + break; + } + } + if (shouldHighlightNextKeyword) { + result.push({ + fileName: filename, + textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), + isWriteAccess: false + }); + i++; // skip the next keyword + continue; + } + } + // Ordinary case: just highlight the keyword. + result.push(getReferenceEntryFromNode(keywords[i])); + } + return result; + } + function getReturnOccurrences(returnStatement) { + var func = ts.getContainingFunction(returnStatement); + // If we didn't find a containing function with a block body, bail out. + if (!(func && hasKind(func.body, ts.SyntaxKind.Block))) { + return undefined; + } + var keywords = []; + ts.forEachReturnStatement(func.body, function (returnStatement) { + pushKeywordIf(keywords, returnStatement.getFirstToken(), ts.SyntaxKind.ReturnKeyword); + }); + // Include 'throw' statements that do not occur within a try block. + ts.forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { + pushKeywordIf(keywords, throwStatement.getFirstToken(), ts.SyntaxKind.ThrowKeyword); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getThrowOccurrences(throwStatement) { + var owner = getThrowStatementOwner(throwStatement); + if (!owner) { + return undefined; + } + var keywords = []; + ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { + pushKeywordIf(keywords, throwStatement.getFirstToken(), ts.SyntaxKind.ThrowKeyword); + }); + // If the "owner" is a function, then we equate 'return' and 'throw' statements in their + // ability to "jump out" of the function, and include occurrences for both. + if (ts.isFunctionBlock(owner)) { + ts.forEachReturnStatement(owner, function (returnStatement) { + pushKeywordIf(keywords, returnStatement.getFirstToken(), ts.SyntaxKind.ReturnKeyword); + }); + } + return ts.map(keywords, getReferenceEntryFromNode); + } + /** + * Aggregates all throw-statements within this node *without* crossing + * into function boundaries and try-blocks with catch-clauses. + */ + function aggregateOwnedThrowStatements(node) { + var statementAccumulator = []; + aggregate(node); + return statementAccumulator; + function aggregate(node) { + if (node.kind === ts.SyntaxKind.ThrowStatement) { + statementAccumulator.push(node); + } + else if (node.kind === ts.SyntaxKind.TryStatement) { + var tryStatement = node; + if (tryStatement.catchClause) { + aggregate(tryStatement.catchClause); + } + else { + // Exceptions thrown within a try block lacking a catch clause + // are "owned" in the current context. + aggregate(tryStatement.tryBlock); + } + if (tryStatement.finallyBlock) { + aggregate(tryStatement.finallyBlock); + } + } + else if (!ts.isAnyFunction(node)) { + ts.forEachChild(node, aggregate); + } + } + ; + } + /** + * For lack of a better name, this function takes a throw statement and returns the + * nearest ancestor that is a try-block (whose try statement has a catch clause), + * function-block, or source file. + */ + function getThrowStatementOwner(throwStatement) { + var child = throwStatement; + while (child.parent) { + var parent = child.parent; + if (ts.isFunctionBlock(parent) || parent.kind === ts.SyntaxKind.SourceFile) { + return parent; + } + // A throw-statement is only owned by a try-statement if the try-statement has + // a catch clause, and if the throw-statement occurs within the try block. + if (parent.kind === ts.SyntaxKind.TryStatement) { + var tryStatement = parent; + if (tryStatement.tryBlock === child && tryStatement.catchClause) { + return child; + } + } + child = parent; + } + return undefined; + } + function getTryCatchFinallyOccurrences(tryStatement) { + var keywords = []; + pushKeywordIf(keywords, tryStatement.getFirstToken(), ts.SyntaxKind.TryKeyword); + if (tryStatement.catchClause) { + pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), ts.SyntaxKind.CatchKeyword); + } + if (tryStatement.finallyBlock) { + var finallyKeyword = ts.findChildOfKind(tryStatement, ts.SyntaxKind.FinallyKeyword, sourceFile); + pushKeywordIf(keywords, finallyKeyword, ts.SyntaxKind.FinallyKeyword); + } + return ts.map(keywords, getReferenceEntryFromNode); + } + function getLoopBreakContinueOccurrences(loopNode) { + var keywords = []; + if (pushKeywordIf(keywords, loopNode.getFirstToken(), ts.SyntaxKind.ForKeyword, ts.SyntaxKind.WhileKeyword, ts.SyntaxKind.DoKeyword)) { + // If we succeeded and got a do-while loop, then start looking for a 'while' keyword. + if (loopNode.kind === ts.SyntaxKind.DoStatement) { + var loopTokens = loopNode.getChildren(); + for (var i = loopTokens.length - 1; i >= 0; i--) { + if (pushKeywordIf(keywords, loopTokens[i], ts.SyntaxKind.WhileKeyword)) { + break; + } + } + } + } + var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); + ts.forEach(breaksAndContinues, function (statement) { + if (ownsBreakOrContinueStatement(loopNode, statement)) { + pushKeywordIf(keywords, statement.getFirstToken(), ts.SyntaxKind.BreakKeyword, ts.SyntaxKind.ContinueKeyword); + } + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getSwitchCaseDefaultOccurrences(switchStatement) { + var keywords = []; + pushKeywordIf(keywords, switchStatement.getFirstToken(), ts.SyntaxKind.SwitchKeyword); + // Go through each clause in the switch statement, collecting the 'case'/'default' keywords. + ts.forEach(switchStatement.clauses, function (clause) { + pushKeywordIf(keywords, clause.getFirstToken(), ts.SyntaxKind.CaseKeyword, ts.SyntaxKind.DefaultKeyword); + var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); + ts.forEach(breaksAndContinues, function (statement) { + if (ownsBreakOrContinueStatement(switchStatement, statement)) { + pushKeywordIf(keywords, statement.getFirstToken(), ts.SyntaxKind.BreakKeyword); + } + }); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getBreakOrContinueStatementOccurences(breakOrContinueStatement) { + var owner = getBreakOrContinueOwner(breakOrContinueStatement); + if (owner) { + switch (owner.kind) { + case ts.SyntaxKind.ForStatement: + case ts.SyntaxKind.ForInStatement: + case ts.SyntaxKind.DoStatement: + case ts.SyntaxKind.WhileStatement: + return getLoopBreakContinueOccurrences(owner); + case ts.SyntaxKind.SwitchStatement: + return getSwitchCaseDefaultOccurrences(owner); + } + } + return undefined; + } + function aggregateAllBreakAndContinueStatements(node) { + var statementAccumulator = []; + aggregate(node); + return statementAccumulator; + function aggregate(node) { + if (node.kind === ts.SyntaxKind.BreakStatement || node.kind === ts.SyntaxKind.ContinueStatement) { + statementAccumulator.push(node); + } + else if (!ts.isAnyFunction(node)) { + ts.forEachChild(node, aggregate); + } + } + ; + } + function ownsBreakOrContinueStatement(owner, statement) { + var actualOwner = getBreakOrContinueOwner(statement); + return actualOwner && actualOwner === owner; + } + function getBreakOrContinueOwner(statement) { + for (var node = statement.parent; node; node = node.parent) { + switch (node.kind) { + case ts.SyntaxKind.SwitchStatement: + if (statement.kind === ts.SyntaxKind.ContinueStatement) { + continue; + } + case ts.SyntaxKind.ForStatement: + case ts.SyntaxKind.ForInStatement: + case ts.SyntaxKind.WhileStatement: + case ts.SyntaxKind.DoStatement: + if (!statement.label || isLabeledBy(node, statement.label.text)) { + return node; + } + break; + default: + // Don't cross function boundaries. + if (ts.isAnyFunction(node)) { + return undefined; + } + break; + } + } + return undefined; + } + function getConstructorOccurrences(constructorDeclaration) { + var declarations = constructorDeclaration.symbol.getDeclarations(); + var keywords = []; + ts.forEach(declarations, function (declaration) { + ts.forEach(declaration.getChildren(), function (token) { + return pushKeywordIf(keywords, token, ts.SyntaxKind.ConstructorKeyword); + }); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getGetAndSetOccurrences(accessorDeclaration) { + var keywords = []; + tryPushAccessorKeyword(accessorDeclaration.symbol, ts.SyntaxKind.GetAccessor); + tryPushAccessorKeyword(accessorDeclaration.symbol, ts.SyntaxKind.SetAccessor); + return ts.map(keywords, getReferenceEntryFromNode); + function tryPushAccessorKeyword(accessorSymbol, accessorKind) { + var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); + if (accessor) { + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, ts.SyntaxKind.GetKeyword, ts.SyntaxKind.SetKeyword); }); + } + } + } + function getModifierOccurrences(modifier, declaration) { + var container = declaration.parent; + // Make sure we only highlight the keyword when it makes sense to do so. + if (declaration.flags & ts.NodeFlags.AccessibilityModifier) { + if (!(container.kind === ts.SyntaxKind.ClassDeclaration || (declaration.kind === ts.SyntaxKind.Parameter && hasKind(container, ts.SyntaxKind.Constructor)))) { + return undefined; + } + } + else if (declaration.flags & ts.NodeFlags.Static) { + if (container.kind !== ts.SyntaxKind.ClassDeclaration) { + return undefined; + } + } + else if (declaration.flags & (ts.NodeFlags.Export | ts.NodeFlags.Ambient)) { + if (!(container.kind === ts.SyntaxKind.ModuleBlock || container.kind === ts.SyntaxKind.SourceFile)) { + return undefined; + } + } + else { + // unsupported modifier + return undefined; + } + var keywords = []; + var modifierFlag = getFlagFromModifier(modifier); + var nodes; + switch (container.kind) { + case ts.SyntaxKind.ModuleBlock: + case ts.SyntaxKind.SourceFile: + nodes = container.statements; + break; + case ts.SyntaxKind.Constructor: + nodes = container.parameters.concat(container.parent.members); + break; + case ts.SyntaxKind.ClassDeclaration: + nodes = container.members; + // 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 & ts.NodeFlags.AccessibilityModifier) { + var constructor = ts.forEach(container.members, function (member) { + return member.kind === ts.SyntaxKind.Constructor && member; + }); + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } + } + break; + default: + ts.Debug.fail("Invalid container kind."); + } + ts.forEach(nodes, function (node) { + if (node.modifiers && node.flags & modifierFlag) { + ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); + } + }); + return ts.map(keywords, getReferenceEntryFromNode); + function getFlagFromModifier(modifier) { + switch (modifier) { + case ts.SyntaxKind.PublicKeyword: + return ts.NodeFlags.Public; + case ts.SyntaxKind.PrivateKeyword: + return ts.NodeFlags.Private; + case ts.SyntaxKind.ProtectedKeyword: + return ts.NodeFlags.Protected; + case ts.SyntaxKind.StaticKeyword: + return ts.NodeFlags.Static; + case ts.SyntaxKind.ExportKeyword: + return ts.NodeFlags.Export; + case ts.SyntaxKind.DeclareKeyword: + return ts.NodeFlags.Ambient; + default: + ts.Debug.fail(); + } + } + } + // returns true if 'node' is defined and has a matching 'kind'. + function hasKind(node, kind) { + return node !== undefined && node.kind === kind; + } + // Null-propagating 'parent' function. + function parent(node) { + return node && node.parent; + } + function pushKeywordIf(keywordList, token, ...expected) { + if (token && ts.contains(expected, token.kind)) { + keywordList.push(token); + return true; + } + return false; + } + } + function findRenameLocations(fileName, position, findInStrings, findInComments) { + return findReferences(fileName, position, findInStrings, findInComments); + } + function getReferencesAtPosition(fileName, position) { + return findReferences(fileName, position, false, false); + } + function findReferences(fileName, position, findInStrings, findInComments) { + synchronizeHostData(); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + if (node.kind !== ts.SyntaxKind.Identifier && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { + return undefined; + } + ts.Debug.assert(node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.NumericLiteral || node.kind === ts.SyntaxKind.StringLiteral); + return getReferencesForNode(node, program.getSourceFiles(), findInStrings, findInComments); + } + function getReferencesForNode(node, sourceFiles, findInStrings, findInComments) { + // Labels + if (isLabelName(node)) { + if (isJumpStatementTarget(node)) { + var labelDefinition = getTargetLabel(node.parent, node.text); + // if we have a label definition, look within its statement for references, if not, then + // the label is undefined, just return a set of one for the current node. + return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; + } + else { + // it is a label definition and not a target, search within the parent labeledStatement + return getLabelReferencesInNode(node.parent, node); + } + } + if (node.kind === ts.SyntaxKind.ThisKeyword) { + return getReferencesForThisKeyword(node, sourceFiles); + } + if (node.kind === ts.SyntaxKind.SuperKeyword) { + return getReferencesForSuperKeyword(node); + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + // Could not find a symbol e.g. unknown identifier + if (!symbol) { + // Even if we did not find a symbol, we have an identifier, so there is at least + // one reference that we know of. return that instead of undefined. + return [getReferenceEntryFromNode(node)]; + } + var declarations = symbol.declarations; + // The symbol was an internal symbol and does not have a declaration e.g.undefined symbol + if (!declarations || !declarations.length) { + return undefined; + } + var result; + // Compute the meaning from the location and the symbol it references + var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); + // Get the text to search for, we need to normalize it as external module names will have quote + var declaredName = getDeclaredName(symbol); + // Try to get the smallest valid scope that we can limit our search to; + // otherwise we'll need to search globally (i.e. include each file). + var scope = getSymbolScope(symbol); + if (scope) { + 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, internedName)) { + result = result || []; + getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); + } + }); + } + return result; + function getDeclaredName(symbol) { + var name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(name); + } + function getInternedName(symbol, declarations) { + // Special case for function expressions, whose names are solely local to their bodies. + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === ts.SyntaxKind.FunctionExpression ? d : undefined; }); + // When a name gets interned into a SourceFile's 'identifiers' Map, + // its name is escaped and stored in the same way its symbol name/identifier + // name should be stored. Function expressions, however, are a special case, + // because despite sometimes having a name, the binder unconditionally binds them + // to a symbol with the name "__function". + if (functionExpression && functionExpression.name) { + var name = functionExpression.name.text; + } + else { + var name = symbol.name; + } + return stripQuotes(name); + } + function stripQuotes(name) { + var length = name.length; + if (length >= 2 && name.charCodeAt(0) === ts.CharacterCodes.doubleQuote && name.charCodeAt(length - 1) === ts.CharacterCodes.doubleQuote) { + return name.substring(1, length - 1); + } + ; + return name; + } + function getSymbolScope(symbol) { + // If this is private property or method, the scope is the containing class + if (symbol.getFlags() && (ts.SymbolFlags.Property | ts.SymbolFlags.Method)) { + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & ts.NodeFlags.Private) ? d : undefined; }); + if (privateDeclaration) { + return ts.getAncestor(privateDeclaration, ts.SyntaxKind.ClassDeclaration); + } + } + // if this symbol is visible from its parent container, e.g. exported, then bail out + if (symbol.parent) { + return undefined; + } + var scope = undefined; + var declarations = symbol.getDeclarations(); + if (declarations) { + for (var i = 0, n = declarations.length; i < n; i++) { + var container = getContainerNode(declarations[i]); + if (!container) { + return undefined; + } + if (scope && scope !== container) { + // Different declarations have different containers, bail out + return undefined; + } + if (container.kind === ts.SyntaxKind.SourceFile && !ts.isExternalModule(container)) { + // This is a global variable and not an external module, any declaration defined + // within this scope is visible outside the file + return undefined; + } + // The search scope is the container node + scope = container; + } + } + return scope; + } + function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { + var positions = []; + /// TODO: Cache symbol existence for files to save text search + // Also, need to make this work for unicode escapes. + // Be resilient in the face of a symbol with no name or zero length name + if (!symbolName || !symbolName.length) { + return positions; + } + var text = sourceFile.text; + var sourceLength = text.length; + var symbolNameLength = symbolName.length; + var position = text.indexOf(symbolName, start); + while (position >= 0) { + cancellationToken.throwIfCancellationRequested(); + // If we are past the end, stop looking + if (position > end) + break; + // We found a match. Make sure it's not part of a larger word (i.e. the char + // before and after it have to be a non-identifier char). + var endPosition = position + symbolNameLength; + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), ts.ScriptTarget.Latest)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), ts.ScriptTarget.Latest))) { + // Found a real match. Keep searching. + positions.push(position); + } + position = text.indexOf(symbolName, position + symbolNameLength + 1); + } + return positions; + } + function getLabelReferencesInNode(container, targetLabel) { + var result = []; + var sourceFile = container.getSourceFile(); + var labelName = targetLabel.text; + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.getWidth() !== labelName.length) { + return; + } + // Only pick labels that are either the target label, or have a target that is the target label + if (node === targetLabel || (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { + result.push(getReferenceEntryFromNode(node)); + } + }); + return result; + } + function isValidReferencePosition(node, searchSymbolName) { + if (node) { + switch (node.kind) { + case ts.SyntaxKind.Identifier: + return node.getWidth() === searchSymbolName.length; + case ts.SyntaxKind.StringLiteral: + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + // For string literals we have two additional chars for the quotes + return node.getWidth() === searchSymbolName.length + 2; + } + break; + case ts.SyntaxKind.NumericLiteral: + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node)) { + return node.getWidth() === searchSymbolName.length; + } + break; + } + } + return false; + } + /** Search within node "container" for references for a search value, where the search value is defined as a + * tuple of(searchSymbol, searchText, searchLocation, and searchMeaning). + * searchLocation: a node where the search value + */ + function getReferencesInNode(container, searchSymbol, searchText, searchLocation, searchMeaning, findInStrings, findInComments, result) { + var sourceFile = container.getSourceFile(); + var tripleSlashDirectivePrefixRegex = /^\/\/\/\s*= 0) { + result.push(getReferenceEntryFromNode(referenceSymbolDeclaration.name)); + } + } + }); + } + function isInString(position) { + var token = ts.getTokenAtPosition(sourceFile, position); + return token && token.kind === ts.SyntaxKind.StringLiteral && position > token.getStart(); + } + function isInComment(position) { + var token = ts.getTokenAtPosition(sourceFile, position); + if (token && position < token.getStart()) { + // First, we have to see if this position actually landed in a comment. + var commentRanges = ts.getLeadingCommentRanges(sourceFile.text, token.pos); + // Then we want to make sure that it wasn't in a "///<" directive comment + // We don't want to unintentionally update a file name. + return ts.forEach(commentRanges, function (c) { + if (c.pos < position && position < c.end) { + var commentText = sourceFile.text.substring(c.pos, c.end); + if (!tripleSlashDirectivePrefixRegex.test(commentText)) { + return true; + } + } + }); + } + return false; + } + } + function getReferencesForSuperKeyword(superKeyword) { + var searchSpaceNode = ts.getSuperContainer(superKeyword); + if (!searchSpaceNode) { + return undefined; + } + // Whether 'super' occurs in a static context within a class. + var staticFlag = ts.NodeFlags.Static; + switch (searchSpaceNode.kind) { + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + case ts.SyntaxKind.Constructor: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + staticFlag &= searchSpaceNode.flags; + searchSpaceNode = searchSpaceNode.parent; // re-assign to be the owning class + break; + default: + return undefined; + } + var result = []; + var sourceFile = searchSpaceNode.getSourceFile(); + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.kind !== ts.SyntaxKind.SuperKeyword) { + return; + } + var container = ts.getSuperContainer(node); + // If we have a 'super' container, we must have an enclosing class. + // Now make sure the owning class is the same as the search-space + // and has the same static qualifier as the original 'super's owner. + if (container && (ts.NodeFlags.Static & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { + result.push(getReferenceEntryFromNode(node)); + } + }); + return result; + } + function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { + var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); + // Whether 'this' occurs in a static context within a class. + var staticFlag = ts.NodeFlags.Static; + switch (searchSpaceNode.kind) { + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + if (ts.isObjectLiteralMethod(searchSpaceNode)) { + break; + } + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + case ts.SyntaxKind.Constructor: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + staticFlag &= searchSpaceNode.flags; + searchSpaceNode = searchSpaceNode.parent; // re-assign to be the owning class + break; + case ts.SyntaxKind.SourceFile: + if (ts.isExternalModule(searchSpaceNode)) { + return undefined; + } + case ts.SyntaxKind.FunctionDeclaration: + case ts.SyntaxKind.FunctionExpression: + break; + default: + return undefined; + } + var result = []; + if (searchSpaceNode.kind === ts.SyntaxKind.SourceFile) { + ts.forEach(sourceFiles, function (sourceFile) { + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); + }); + } + else { + var sourceFile = searchSpaceNode.getSourceFile(); + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); + } + return result; + function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.kind !== ts.SyntaxKind.ThisKeyword) { + return; + } + var container = ts.getThisContainer(node, false); + switch (searchSpaceNode.kind) { + case ts.SyntaxKind.FunctionExpression: + case ts.SyntaxKind.FunctionDeclaration: + if (searchSpaceNode.symbol === container.symbol) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case ts.SyntaxKind.ClassDeclaration: + // Make sure the container belongs to the same class + // and has the appropriate static modifier from the original container. + if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & ts.NodeFlags.Static) === staticFlag) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case ts.SyntaxKind.SourceFile: + if (container.kind === ts.SyntaxKind.SourceFile && !ts.isExternalModule(container)) { + result.push(getReferenceEntryFromNode(node)); + } + break; + } + }); + } + } + function populateSearchSymbolSet(symbol, location) { + // The search set contains at least the current symbol + var result = [symbol]; + // If the location is in a context sensitive location (i.e. in an object literal) try + // to get a contextual type for it, and add the property symbol from the contextual + // type to the search set + if (isNameOfPropertyAssignment(location)) { + ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { + result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); + }); + /* Because in short-hand property assignment, location has two meaning : property name and as value of the property + * When we do findAllReference at the position of the short-hand property assignment, we would want to have references to position of + * property name and variable declaration of the identifier. + * Like in below example, when querying for all references for an identifier 'name', of the property assignment, the language service + * should show both 'name' in 'obj' and 'name' in variable declaration + * var name = "Foo"; + * var obj = { name }; + * In order to do that, we will populate the search set with the value symbol of the identifier as a value of the property assignment + * so that when matching with potential reference symbol, both symbols from property declaration and variable declaration + * will be included correctly. + */ + var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); + if (shorthandValueSymbol) { + result.push(shorthandValueSymbol); + } + } + // If this is a union property, add all the symbols from all its source symbols in all unioned types. + // If the symbol is an instantiation from a another symbol (e.g. widened symbol) , add the root the list + ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { + if (rootSymbol !== symbol) { + result.push(rootSymbol); + } + // Add symbol of properties/methods of the same name in base classes and implemented interfaces definitions + if (rootSymbol.parent && rootSymbol.parent.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + } + }); + return result; + } + function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { + if (symbol && symbol.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { + ts.forEach(symbol.getDeclarations(), function (declaration) { + if (declaration.kind === ts.SyntaxKind.ClassDeclaration) { + getPropertySymbolFromTypeReference(ts.getClassBaseTypeNode(declaration)); + ts.forEach(ts.getClassImplementedTypeNodes(declaration), getPropertySymbolFromTypeReference); + } + else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { + ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); + } + }); + } + return; + function getPropertySymbolFromTypeReference(typeReference) { + if (typeReference) { + var type = typeInfoResolver.getTypeAtLocation(typeReference); + if (type) { + var propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); + if (propertySymbol) { + result.push(propertySymbol); + } + // Visit the typeReference as well to see if it directly or indirectly use that property + getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result); + } + } + } + } + function isRelatableToSearchSet(searchSymbols, referenceSymbol, referenceLocation) { + if (searchSymbols.indexOf(referenceSymbol) >= 0) { + return true; + } + // If the reference location is in an object literal, try to get the contextual type for the + // object literal, lookup the property symbol in the contextual type, and use this symbol to + // compare to our searchSymbol + if (isNameOfPropertyAssignment(referenceLocation)) { + return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { + return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0; }); + }); + } + // Unwrap symbols to get to the root (e.g. transient symbols as a result of widening) + // Or a union property, use its underlying unioned symbols + return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { + // if it is in the list, then we are done + if (searchSymbols.indexOf(rootSymbol) >= 0) { + return true; + } + // Finally, try all properties with the same name in any type the containing type extended or implemented, and + // see if any is in the list + if (rootSymbol.parent && rootSymbol.parent.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { + var result = []; + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + return ts.forEach(result, function (s) { return searchSymbols.indexOf(s) >= 0; }); + } + return false; + }); + } + function getPropertySymbolsFromContextualType(node) { + if (isNameOfPropertyAssignment(node)) { + var objectLiteral = node.parent.parent; + var contextualType = typeInfoResolver.getContextualType(objectLiteral); + var name = node.text; + if (contextualType) { + if (contextualType.flags & ts.TypeFlags.Union) { + // This is a union type, first see if the property we are looking for is a union property (i.e. exists in all types) + // if not, search the constituent types for the property + var unionProperty = contextualType.getProperty(name); + if (unionProperty) { + return [unionProperty]; + } + else { + var result = []; + ts.forEach(contextualType.types, function (t) { + var symbol = t.getProperty(name); + if (symbol) { + result.push(symbol); + } + }); + return result; + } + } + else { + var symbol = contextualType.getProperty(name); + if (symbol) { + return [symbol]; + } + } + } + } + return undefined; + } + /** Given an initial searchMeaning, extracted from a location, widen the search scope based on the declarations + * of the corresponding symbol. e.g. if we are searching for "Foo" in value position, but "Foo" references a class + * then we need to widen the search to include type positions as well. + * On the contrary, if we are searching for "Bar" in type position and we trace bar to an interface, and an uninstantiated + * module, we want to keep the search limited to only types, as the two declarations (interface and uninstantiated module) + * do not intersect in any of the three spaces. + */ + function getIntersectingMeaningFromDeclarations(meaning, declarations) { + if (declarations) { + do { + // The result is order-sensitive, for instance if initialMeaning === Namespace, and declarations = [class, instantiated module] + // we need to consider both as they initialMeaning intersects with the module in the namespace space, and the module + // intersects with the class in the value space. + // To achieve that we will keep iterating until the result stabilizes. + // Remember the last meaning + var lastIterationMeaning = meaning; + for (var i = 0, n = declarations.length; i < n; i++) { + var declarationMeaning = getMeaningFromDeclaration(declarations[i]); + if (declarationMeaning & meaning) { + meaning |= declarationMeaning; + } + } + } while (meaning !== lastIterationMeaning); + } + return meaning; + } + } + function getReferenceEntryFromNode(node) { + var start = node.getStart(); + var end = node.getEnd(); + if (node.kind === ts.SyntaxKind.StringLiteral) { + start += 1; + end -= 1; + } + return { + fileName: node.getSourceFile().filename, + textSpan: ts.createTextSpanFromBounds(start, end), + isWriteAccess: isWriteAccess(node) + }; + } + /** A node is considered a writeAccess iff it is a name of a declaration or a target of an assignment */ + function isWriteAccess(node) { + if (node.kind === ts.SyntaxKind.Identifier && ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { + return true; + } + var parent = node.parent; + if (parent) { + if (parent.kind === ts.SyntaxKind.PostfixUnaryExpression || parent.kind === ts.SyntaxKind.PrefixUnaryExpression) { + return true; + } + else if (parent.kind === ts.SyntaxKind.BinaryExpression && parent.left === node) { + var operator = parent.operator; + return ts.SyntaxKind.FirstAssignment <= operator && operator <= ts.SyntaxKind.LastAssignment; + } + } + return false; + } + /// NavigateTo + function getNavigateToItems(searchValue) { + synchronizeHostData(); + // Split search value in terms array + var terms = searchValue.split(" "); + // default NavigateTo approach: if search term contains only lower-case chars - use case-insensitive search, otherwise switch to case-sensitive version + var searchTerms = ts.map(terms, function (t) { return ({ caseSensitive: hasAnyUpperCaseCharacter(t), term: t }); }); + var items = []; + // Search the declarations in all files and output matched NavigateToItem into array of NavigateToItem[] + ts.forEach(program.getSourceFiles(), function (sourceFile) { + cancellationToken.throwIfCancellationRequested(); + var filename = sourceFile.filename; + var declarations = sourceFile.getNamedDeclarations(); + for (var i = 0, n = declarations.length; i < n; i++) { + var declaration = declarations[i]; + // TODO(jfreeman): Skip this declaration if it has a computed name + var name = declaration.name.text; + var matchKind = getMatchKind(searchTerms, name); + if (matchKind !== 0 /* none */) { + var container = getContainerNode(declaration); + items.push({ + name: name, + kind: getNodeKind(declaration), + kindModifiers: ts.getNodeModifiers(declaration), + matchKind: MatchKind[matchKind], + fileName: filename, + textSpan: ts.createTextSpanFromBounds(declaration.getStart(), declaration.getEnd()), + // TODO(jfreeman): What should be the containerName when the container has a computed name? + containerName: container && container.name ? container.name.text : "", + containerKind: container && container.name ? getNodeKind(container) : "" + }); + } + } + }); + return items; + function hasAnyUpperCaseCharacter(s) { + for (var i = 0, n = s.length; i < n; i++) { + var c = s.charCodeAt(i); + if ((ts.CharacterCodes.A <= c && c <= ts.CharacterCodes.Z) || (c >= ts.CharacterCodes.maxAsciiCharacter && s.charAt(i).toLocaleLowerCase() !== s.charAt(i))) { + return true; + } + } + return false; + } + function getMatchKind(searchTerms, name) { + var matchKind = 0 /* none */; + if (name) { + for (var j = 0, n = searchTerms.length; j < n; j++) { + var searchTerm = searchTerms[j]; + var nameToSearch = searchTerm.caseSensitive ? name : name.toLocaleLowerCase(); + // in case of case-insensitive search searchTerm.term will already be lower-cased + var index = nameToSearch.indexOf(searchTerm.term); + if (index < 0) { + // Didn't match. + return 0 /* none */; + } + var termKind = 2 /* substring */; + if (index === 0) { + // here we know that match occur at the beginning of the string. + // if search term and declName has the same length - we have an exact match, otherwise declName have longer length and this will be prefix match + termKind = name.length === searchTerm.term.length ? 1 /* exact */ : 3 /* prefix */; + } + // Update our match kind if we don't have one, or if this match is better. + if (matchKind === 0 /* none */ || termKind < matchKind) { + matchKind = termKind; + } + } + } + return matchKind; + } + } + function containErrors(diagnostics) { + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === ts.DiagnosticCategory.Error; }); + } + function getEmitOutput(filename) { + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var sourceFile = getSourceFile(filename); + var outputFiles = []; + function writeFile(filename, data, writeByteOrderMark) { + outputFiles.push({ + name: filename, + writeByteOrderMark: writeByteOrderMark, + text: data + }); + } + // Get an emit host from our program, but override the writeFile functionality to + // call our local writer function. + var emitHost = ts.createEmitHostFromProgram(program); + emitHost.writeFile = writeFile; + var emitOutput = ts.emitFiles(getDiagnosticsProducingTypeChecker().getEmitResolver(), emitHost, sourceFile); + return { + outputFiles, + emitOutputStatus: emitOutput.emitResultStatus + }; + } + function getMeaningFromDeclaration(node) { + switch (node.kind) { + case ts.SyntaxKind.Parameter: + case ts.SyntaxKind.VariableDeclaration: + case ts.SyntaxKind.BindingElement: + case ts.SyntaxKind.PropertyDeclaration: + case ts.SyntaxKind.PropertySignature: + case ts.SyntaxKind.PropertyAssignment: + case ts.SyntaxKind.ShorthandPropertyAssignment: + case ts.SyntaxKind.EnumMember: + case ts.SyntaxKind.MethodDeclaration: + case ts.SyntaxKind.MethodSignature: + case ts.SyntaxKind.Constructor: + case ts.SyntaxKind.GetAccessor: + case ts.SyntaxKind.SetAccessor: + case ts.SyntaxKind.FunctionDeclaration: + case ts.SyntaxKind.FunctionExpression: + case ts.SyntaxKind.ArrowFunction: + case ts.SyntaxKind.CatchClause: + return 1 /* Value */; + case ts.SyntaxKind.TypeParameter: + case ts.SyntaxKind.InterfaceDeclaration: + case ts.SyntaxKind.TypeAliasDeclaration: + case ts.SyntaxKind.TypeLiteral: + return 2 /* Type */; + case ts.SyntaxKind.ClassDeclaration: + case ts.SyntaxKind.EnumDeclaration: + return 1 /* Value */ | 2 /* Type */; + case ts.SyntaxKind.ModuleDeclaration: + if (node.name.kind === ts.SyntaxKind.StringLiteral) { + return 4 /* Namespace */ | 1 /* Value */; + } + else if (ts.getModuleInstanceState(node) === ts.ModuleInstanceState.Instantiated) { + return 4 /* Namespace */ | 1 /* Value */; + } + else { + return 4 /* Namespace */; + } + case ts.SyntaxKind.ImportDeclaration: + return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; + case ts.SyntaxKind.SourceFile: + return 4 /* Namespace */ | 1 /* Value */; + } + ts.Debug.fail("Unknown declaration type"); + } + function isTypeReference(node) { + if (isRightSideOfQualifiedName(node)) { + node = node.parent; + } + return node.parent.kind === ts.SyntaxKind.TypeReference; + } + function isNamespaceReference(node) { + var root = node; + var isLastClause = true; + if (root.parent.kind === ts.SyntaxKind.QualifiedName) { + while (root.parent && root.parent.kind === ts.SyntaxKind.QualifiedName) + root = root.parent; + isLastClause = root.right === node; + } + return root.parent.kind === ts.SyntaxKind.TypeReference && !isLastClause; + } + function isInRightSideOfImport(node) { + while (node.parent.kind === ts.SyntaxKind.QualifiedName) { + node = node.parent; + } + return ts.isInternalModuleImportDeclaration(node.parent) && node.parent.moduleReference === node; + } + function getMeaningFromRightHandSideOfImport(node) { + ts.Debug.assert(node.kind === ts.SyntaxKind.Identifier); + // import a = |b|; // Namespace + // import a = |b.c|; // Value, type, namespace + // import a = |b.c|.d; // Namespace + if (node.parent.kind === ts.SyntaxKind.QualifiedName && node.parent.right === node && node.parent.parent.kind === ts.SyntaxKind.ImportDeclaration) { + return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; + } + return 4 /* Namespace */; + } + function getMeaningFromLocation(node) { + if (node.parent.kind === ts.SyntaxKind.ExportAssignment) { + return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; + } + else if (isInRightSideOfImport(node)) { + return getMeaningFromRightHandSideOfImport(node); + } + else if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { + return getMeaningFromDeclaration(node.parent); + } + else if (isTypeReference(node)) { + return 2 /* Type */; + } + else if (isNamespaceReference(node)) { + return 4 /* Namespace */; + } + else { + return 1 /* Value */; + } + } + // Signature help + /** + * This is a semantic operation. + */ + function getSignatureHelpItems(fileName, position) { + synchronizeHostData(); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getSourceFile(fileName); + return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); + } + /// Syntactic features + function getCurrentSourceFile(filename) { + filename = ts.normalizeSlashes(filename); + var currentSourceFile = syntaxTreeCache.getCurrentSourceFile(filename); + return currentSourceFile; + } + function getNameOrDottedNameSpan(filename, startPos, endPos) { + filename = ts.normalizeSlashes(filename); + // Get node at the location + var node = ts.getTouchingPropertyName(getCurrentSourceFile(filename), startPos); + if (!node) { + return; + } + switch (node.kind) { + case ts.SyntaxKind.PropertyAccessExpression: + case ts.SyntaxKind.QualifiedName: + case ts.SyntaxKind.StringLiteral: + case ts.SyntaxKind.FalseKeyword: + case ts.SyntaxKind.TrueKeyword: + case ts.SyntaxKind.NullKeyword: + case ts.SyntaxKind.SuperKeyword: + case ts.SyntaxKind.ThisKeyword: + case ts.SyntaxKind.Identifier: + break; + default: + return; + } + var nodeForStartPos = node; + while (true) { + if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { + // If on the span is in right side of the the property or qualified name, return the span from the qualified name pos to end of this node + nodeForStartPos = nodeForStartPos.parent; + } + else if (isNameOfModuleDeclaration(nodeForStartPos)) { + // If this is name of a module declarations, check if this is right side of dotted module name + // If parent of the module declaration which is parent of this node is module declaration and its body is the module declaration that this node is name of + // Then this name is name from dotted module + if (nodeForStartPos.parent.parent.kind === ts.SyntaxKind.ModuleDeclaration && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + // Use parent module declarations name for start pos + nodeForStartPos = nodeForStartPos.parent.parent.name; + } + else { + break; + } + } + else { + break; + } + } + return ts.createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); + } + function getBreakpointStatementAtPosition(filename, position) { + // doesn't use compiler - no need to synchronize with host + filename = ts.normalizeSlashes(filename); + return ts.BreakpointResolver.spanInSourceFileAtLocation(getCurrentSourceFile(filename), position); + } + function getNavigationBarItems(filename) { + filename = ts.normalizeSlashes(filename); + return ts.NavigationBar.getNavigationBarItems(getCurrentSourceFile(filename)); + } + function getSemanticClassifications(fileName, span) { + synchronizeHostData(); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getSourceFile(fileName); + var result = []; + processNode(sourceFile); + return result; + function classifySymbol(symbol, meaningAtPosition) { + var flags = symbol.getFlags(); + if (flags & ts.SymbolFlags.Class) { + return ClassificationTypeNames.className; + } + else if (flags & ts.SymbolFlags.Enum) { + return ClassificationTypeNames.enumName; + } + else if (flags & ts.SymbolFlags.TypeAlias) { + return ClassificationTypeNames.typeAlias; + } + else if (meaningAtPosition & 2 /* Type */) { + if (flags & ts.SymbolFlags.Interface) { + return ClassificationTypeNames.interfaceName; + } + else if (flags & ts.SymbolFlags.TypeParameter) { + return ClassificationTypeNames.typeParameterName; + } + } + else if (flags & ts.SymbolFlags.Module) { + // Only classify a module as such if + // - It appears in a namespace context. + // - There exists a module declaration which actually impacts the value side. + if (meaningAtPosition & 4 /* Namespace */ || (meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol))) { + return ClassificationTypeNames.moduleName; + } + } + return undefined; + /** + * Returns true if there exists a module that introduces entities on the value side. + */ + function hasValueSideModule(symbol) { + return ts.forEach(symbol.declarations, function (declaration) { + return declaration.kind === ts.SyntaxKind.ModuleDeclaration && ts.getModuleInstanceState(declaration) == ts.ModuleInstanceState.Instantiated; + }); + } + } + function processNode(node) { + // Only walk into nodes that intersect the requested span. + if (node && ts.textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { + if (node.kind === ts.SyntaxKind.Identifier && node.getWidth() > 0) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (symbol) { + var type = classifySymbol(symbol, getMeaningFromLocation(node)); + if (type) { + result.push({ + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + classificationType: type + }); + } + } + } + ts.forEachChild(node, processNode); + } + } + } + function getSyntacticClassifications(fileName, span) { + // doesn't use compiler - no need to synchronize with host + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getCurrentSourceFile(fileName); + // Make a scanner we can get trivia from. + var triviaScanner = ts.createScanner(ts.ScriptTarget.Latest, false, sourceFile.text); + var mergeConflictScanner = ts.createScanner(ts.ScriptTarget.Latest, false, sourceFile.text); + var result = []; + processElement(sourceFile); + return result; + function classifyLeadingTrivia(token) { + var tokenStart = ts.skipTrivia(sourceFile.text, token.pos, false); + if (tokenStart === token.pos) { + return; + } + // token has trivia. Classify them appropriately. + triviaScanner.setTextPos(token.pos); + while (true) { + var start = triviaScanner.getTextPos(); + var kind = triviaScanner.scan(); + var end = triviaScanner.getTextPos(); + var width = end - start; + if (ts.textSpanIntersectsWith(span, start, width)) { + if (!ts.isTrivia(kind)) { + return; + } + if (ts.isComment(kind)) { + // Simple comment. Just add as is. + result.push({ + textSpan: ts.createTextSpan(start, width), + classificationType: ClassificationTypeNames.comment + }); + continue; + } + if (kind === ts.SyntaxKind.ConflictMarkerTrivia) { + var text = sourceFile.text; + var ch = text.charCodeAt(start); + // for the <<<<<<< and >>>>>>> markers, we just add them in as comments + // in the classification stream. + if (ch === ts.CharacterCodes.lessThan || ch === ts.CharacterCodes.greaterThan) { + result.push({ + textSpan: ts.createTextSpan(start, width), + classificationType: ClassificationTypeNames.comment + }); + continue; + } + // for the ======== add a comment for the first line, and then lex all + // subsequent lines up until the end of the conflict marker. + ts.Debug.assert(ch === ts.CharacterCodes.equals); + classifyDisabledMergeCode(text, start, end); + } + } + } + } + function classifyDisabledMergeCode(text, start, end) { + for (var i = start; i < end; i++) { + if (ts.isLineBreak(text.charCodeAt(i))) { + break; + } + } + result.push({ + textSpan: ts.createTextSpanFromBounds(start, i), + classificationType: ClassificationTypeNames.comment + }); + mergeConflictScanner.setTextPos(i); + while (mergeConflictScanner.getTextPos() < end) { + classifyDisabledCodeToken(); + } + } + function classifyDisabledCodeToken() { + var start = mergeConflictScanner.getTextPos(); + var tokenKind = mergeConflictScanner.scan(); + var end = mergeConflictScanner.getTextPos(); + var type = classifyTokenType(tokenKind); + if (type) { + result.push({ + textSpan: ts.createTextSpanFromBounds(start, end), + classificationType: type + }); + } + } + function classifyToken(token) { + classifyLeadingTrivia(token); + if (token.getWidth() > 0) { + var type = classifyTokenType(token.kind, token); + if (type) { + result.push({ + textSpan: ts.createTextSpan(token.getStart(), token.getWidth()), + classificationType: type + }); + } + } + } + // for accurate classification, the actual token should be passed in. however, for + // cases like 'disabled merge code' classification, we just get the token kind and + // classify based on that instead. + function classifyTokenType(tokenKind, token) { + if (ts.isKeyword(tokenKind)) { + return ClassificationTypeNames.keyword; + } + // Special case < and > If they appear in a generic context they are punctuation, + // not operators. + if (tokenKind === ts.SyntaxKind.LessThanToken || tokenKind === ts.SyntaxKind.GreaterThanToken) { + // If the node owning the token has a type argument list or type parameter list, then + // we can effectively assume that a '<' and '>' belong to those lists. + if (token && ts.getTypeArgumentOrTypeParameterList(token.parent)) { + return ClassificationTypeNames.punctuation; + } + } + if (ts.isPunctuation(tokenKind)) { + if (token) { + if (tokenKind === ts.SyntaxKind.EqualsToken) { + // the '=' in a variable declaration is special cased here. + if (token.parent.kind === ts.SyntaxKind.VariableDeclaration || token.parent.kind === ts.SyntaxKind.PropertyDeclaration || token.parent.kind === ts.SyntaxKind.Parameter) { + return ClassificationTypeNames.operator; + } + } + if (token.parent.kind === ts.SyntaxKind.BinaryExpression || token.parent.kind === ts.SyntaxKind.PrefixUnaryExpression || token.parent.kind === ts.SyntaxKind.PostfixUnaryExpression || token.parent.kind === ts.SyntaxKind.ConditionalExpression) { + return ClassificationTypeNames.operator; + } + } + return ClassificationTypeNames.punctuation; + } + else if (tokenKind === ts.SyntaxKind.NumericLiteral) { + return ClassificationTypeNames.numericLiteral; + } + else if (tokenKind === ts.SyntaxKind.StringLiteral) { + return ClassificationTypeNames.stringLiteral; + } + else if (tokenKind === ts.SyntaxKind.RegularExpressionLiteral) { + // TODO: we should get another classification type for these literals. + return ClassificationTypeNames.stringLiteral; + } + else if (ts.isTemplateLiteralKind(tokenKind)) { + // TODO (drosen): we should *also* get another classification type for these literals. + return ClassificationTypeNames.stringLiteral; + } + else if (tokenKind === ts.SyntaxKind.Identifier) { + if (token) { + switch (token.parent.kind) { + case ts.SyntaxKind.ClassDeclaration: + if (token.parent.name === token) { + return ClassificationTypeNames.className; + } + return; + case ts.SyntaxKind.TypeParameter: + if (token.parent.name === token) { + return ClassificationTypeNames.typeParameterName; + } + return; + case ts.SyntaxKind.InterfaceDeclaration: + if (token.parent.name === token) { + return ClassificationTypeNames.interfaceName; + } + return; + case ts.SyntaxKind.EnumDeclaration: + if (token.parent.name === token) { + return ClassificationTypeNames.enumName; + } + return; + case ts.SyntaxKind.ModuleDeclaration: + if (token.parent.name === token) { + return ClassificationTypeNames.moduleName; + } + return; + } + } + return ClassificationTypeNames.text; + } + } + function processElement(element) { + // Ignore nodes that don't intersect the original span to classify. + if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { + var children = element.getChildren(); + for (var i = 0, n = children.length; i < n; i++) { + var child = children[i]; + if (ts.isToken(child)) { + classifyToken(child); + } + else { + // Recurse into our child nodes. + processElement(child); + } + } + } + } + } + function getOutliningSpans(filename) { + // doesn't use compiler - no need to synchronize with host + filename = ts.normalizeSlashes(filename); + var sourceFile = getCurrentSourceFile(filename); + return ts.OutliningElementsCollector.collectElements(sourceFile); + } + function getBraceMatchingAtPosition(filename, position) { + var sourceFile = getCurrentSourceFile(filename); + var result = []; + var token = ts.getTouchingToken(sourceFile, position); + if (token.getStart(sourceFile) === position) { + var matchKind = getMatchingTokenKind(token); + // Ensure that there is a corresponding token to match ours. + if (matchKind) { + var parentElement = token.parent; + var childNodes = parentElement.getChildren(sourceFile); + for (var i = 0, n = childNodes.length; i < n; i++) { + 33; + var current = childNodes[i]; + if (current.kind === matchKind) { + var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); + var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); + // We want to order the braces when we return the result. + if (range1.start < range2.start) { + result.push(range1, range2); + } + else { + result.push(range2, range1); + } + break; + } + } + } + } + return result; + function getMatchingTokenKind(token) { + switch (token.kind) { + case ts.SyntaxKind.OpenBraceToken: return ts.SyntaxKind.CloseBraceToken; + case ts.SyntaxKind.OpenParenToken: return ts.SyntaxKind.CloseParenToken; + case ts.SyntaxKind.OpenBracketToken: return ts.SyntaxKind.CloseBracketToken; + case ts.SyntaxKind.LessThanToken: return ts.SyntaxKind.GreaterThanToken; + case ts.SyntaxKind.CloseBraceToken: return ts.SyntaxKind.OpenBraceToken; + case ts.SyntaxKind.CloseParenToken: return ts.SyntaxKind.OpenParenToken; + case ts.SyntaxKind.CloseBracketToken: return ts.SyntaxKind.OpenBracketToken; + case ts.SyntaxKind.GreaterThanToken: return ts.SyntaxKind.LessThanToken; + } + return undefined; + } + } + function getIndentationAtPosition(filename, position, editorOptions) { + filename = ts.normalizeSlashes(filename); + var start = new Date().getTime(); + var sourceFile = getCurrentSourceFile(filename); + log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); + var start = new Date().getTime(); + var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); + log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); + return result; + } + function getFormattingEditsForRange(fileName, start, end, options) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getCurrentSourceFile(fileName); + return ts.formatting.formatSelection(start, end, sourceFile, getRuleProvider(options), options); + } + function getFormattingEditsForDocument(fileName, options) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getCurrentSourceFile(fileName); + return ts.formatting.formatDocument(sourceFile, getRuleProvider(options), options); + } + function getFormattingEditsAfterKeystroke(fileName, position, key, options) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getCurrentSourceFile(fileName); + if (key === "}") { + return ts.formatting.formatOnClosingCurly(position, sourceFile, getRuleProvider(options), options); + } + else if (key === ";") { + return ts.formatting.formatOnSemicolon(position, sourceFile, getRuleProvider(options), options); + } + else if (key === "\n") { + return ts.formatting.formatOnEnter(position, sourceFile, getRuleProvider(options), options); + } + return []; + } + function getTodoComments(filename, descriptors) { + // Note: while getting todo comments seems like a syntactic operation, we actually + // treat it as a semantic operation here. This is because we expect our host to call + // this on every single file. If we treat this syntactically, then that will cause + // us to populate and throw away the tree in our syntax tree cache for each file. By + // treating this as a semantic operation, we can access any tree without throwing + // anything away. + synchronizeHostData(); + filename = ts.normalizeSlashes(filename); + var sourceFile = getSourceFile(filename); + cancellationToken.throwIfCancellationRequested(); + var fileContents = sourceFile.text; + cancellationToken.throwIfCancellationRequested(); + var result = []; + if (descriptors.length > 0) { + var regExp = getTodoCommentsRegExp(); + var matchArray; + while (matchArray = regExp.exec(fileContents)) { + cancellationToken.throwIfCancellationRequested(); + // If we got a match, here is what the match array will look like. Say the source text is: + // + // " // hack 1" + // + // The result array with the regexp: will be: + // + // ["// hack 1", "// ", "hack 1", undefined, "hack"] + // + // Here are the relevant capture groups: + // 0) The full match for the entire regexp. + // 1) The preamble to the message portion. + // 2) The message portion. + // 3...N) The descriptor that was matched - by index. 'undefined' for each + // descriptor that didn't match. an actual value if it did match. + // + // i.e. 'undefined' in position 3 above means TODO(jason) didn't match. + // "hack" in position 4 means HACK did match. + var firstDescriptorCaptureIndex = 3; + ts.Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); + var preamble = matchArray[1]; + var matchPosition = matchArray.index + preamble.length; + // OK, we have found a match in the file. This is only an acceptable match if + // it is contained within a comment. + var token = ts.getTokenAtPosition(sourceFile, matchPosition); + if (!isInsideComment(sourceFile, token, matchPosition)) { + continue; + } + var descriptor = undefined; + for (var i = 0, n = descriptors.length; i < n; i++) { + if (matchArray[i + firstDescriptorCaptureIndex]) { + descriptor = descriptors[i]; + } + } + ts.Debug.assert(descriptor !== undefined); + // We don't want to match something like 'TODOBY', so we make sure a non + // letter/digit follows the match. + if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) { + continue; + } + var message = matchArray[2]; + result.push({ + descriptor: descriptor, + message: message, + position: matchPosition + }); + } + } + return result; + function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + } + function getTodoCommentsRegExp() { + // NOTE: ?: means 'non-capture group'. It allows us to have groups without having to + // filter them out later in the final result array. + // TODO comments can appear in one of the following forms: + // + // 1) // TODO or /////////// TODO + // + // 2) /* TODO or /********** TODO + // + // 3) /* + // * TODO + // */ + // + // The following three regexps are used to match the start of the text up to the TODO + // comment portion. + var singleLineCommentStart = /(?:\/\/+\s*)/.source; + var multiLineCommentStart = /(?:\/\*+\s*)/.source; + var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; + // Match any of the above three TODO comment start regexps. + // Note that the outermost group *is* a capture group. We want to capture the preamble + // so that we can determine the starting position of the TODO comment match. + var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + // Takes the descriptors and forms a regexp that matches them as if they were literals. + // For example, if the descriptors are "TODO(jason)" and "HACK", then this will be: + // + // (?:(TODO\(jason\))|(HACK)) + // + // Note that the outermost group is *not* a capture group, but the innermost groups + // *are* capture groups. By capturing the inner literals we can determine after + // matching which descriptor we are dealing with. + var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; + // After matching a descriptor literal, the following regexp matches the rest of the + // text up to the end of the line (or */). + var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; + var messageRemainder = /(?:.*?)/.source; + // This is the portion of the match we'll return as part of the TODO comment result. We + // match the literal portion up to the end of the line or end of comment. + var messagePortion = "(" + literals + messageRemainder + ")"; + var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + // The final regexp will look like this: + // /((?:\/\/+\s*)|(?:\/\*+\s*)|(?:^(?:\s|\*)*))((?:(TODO\(jason\))|(HACK))(?:.*?))(?:$|\*\/)/gim + // The flags of the regexp are important here. + // 'g' is so that we are doing a global search and can find matches several times + // in the input. + // + // 'i' is for case insensitivity (We do this to match C# TODO comment code). + // + // 'm' is so we can find matches in a multi-line input. + return new RegExp(regExpString, "gim"); + } + function isLetterOrDigit(char) { + return (char >= ts.CharacterCodes.a && char <= ts.CharacterCodes.z) || (char >= ts.CharacterCodes.A && char <= ts.CharacterCodes.Z) || (char >= ts.CharacterCodes._0 && char <= ts.CharacterCodes._9); + } + } + function getRenameInfo(fileName, position) { + synchronizeHostData(); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getSourceFile(fileName); + var node = ts.getTouchingWord(sourceFile, position); + // Can only rename an identifier. + if (node && node.kind === ts.SyntaxKind.Identifier) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + // Only allow a symbol to be renamed if it actually has at least one declaration. + if (symbol && symbol.getDeclarations() && symbol.getDeclarations().length > 0) { + var kind = getSymbolKind(symbol, typeInfoResolver, node); + if (kind) { + return getRenameInfo(symbol.name, typeInfoResolver.getFullyQualifiedName(symbol), kind, getSymbolModifiers(symbol), ts.createTextSpan(node.getStart(), node.getWidth())); + } + } + } + return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key)); + function getRenameInfoError(localizedErrorMessage) { + return { + canRename: false, + localizedErrorMessage: ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key), + displayName: undefined, + fullDisplayName: undefined, + kind: undefined, + kindModifiers: undefined, + triggerSpan: undefined + }; + } + function getRenameInfo(displayName, fullDisplayName, kind, kindModifiers, triggerSpan) { + return { + canRename: true, + localizedErrorMessage: undefined, + displayName, + fullDisplayName, + kind, + kindModifiers, + triggerSpan + }; + } + } + return { + dispose, + cleanupSemanticCache, + getSyntacticDiagnostics, + getSemanticDiagnostics, + getCompilerOptionsDiagnostics, + getSyntacticClassifications, + getSemanticClassifications, + getCompletionsAtPosition, + getCompletionEntryDetails, + getSignatureHelpItems, + getQuickInfoAtPosition, + getDefinitionAtPosition, + getReferencesAtPosition, + getOccurrencesAtPosition, + getNameOrDottedNameSpan, + getBreakpointStatementAtPosition, + getNavigateToItems, + getRenameInfo, + findRenameLocations, + getNavigationBarItems, + getOutliningSpans, + getTodoComments, + getBraceMatchingAtPosition, + getIndentationAtPosition, + getFormattingEditsForRange, + getFormattingEditsForDocument, + getFormattingEditsAfterKeystroke, + getEmitOutput, + getSourceFile: getCurrentSourceFile, + }; + } + ts.createLanguageService = createLanguageService; + /// Classifier + function createClassifier() { + var scanner = ts.createScanner(ts.ScriptTarget.Latest, false); + /// We do not have a full parser support to know when we should parse a regex or not + /// If we consider every slash token to be a regex, we could be missing cases like "1/2/3", where + /// we have a series of divide operator. this list allows us to be more accurate by ruling out + /// locations where a regexp cannot exist. + var noRegexTable = []; + noRegexTable[ts.SyntaxKind.Identifier] = true; + noRegexTable[ts.SyntaxKind.StringLiteral] = true; + noRegexTable[ts.SyntaxKind.NumericLiteral] = true; + noRegexTable[ts.SyntaxKind.RegularExpressionLiteral] = true; + noRegexTable[ts.SyntaxKind.ThisKeyword] = true; + noRegexTable[ts.SyntaxKind.PlusPlusToken] = true; + noRegexTable[ts.SyntaxKind.MinusMinusToken] = true; + noRegexTable[ts.SyntaxKind.CloseParenToken] = true; + noRegexTable[ts.SyntaxKind.CloseBracketToken] = true; + noRegexTable[ts.SyntaxKind.CloseBraceToken] = true; + noRegexTable[ts.SyntaxKind.TrueKeyword] = true; + noRegexTable[ts.SyntaxKind.FalseKeyword] = true; + function isAccessibilityModifier(kind) { + switch (kind) { + case ts.SyntaxKind.PublicKeyword: + case ts.SyntaxKind.PrivateKeyword: + case ts.SyntaxKind.ProtectedKeyword: + return true; + } + return false; + } + /** Returns true if 'keyword2' can legally follow 'keyword1' in any language construct. */ + function canFollow(keyword1, keyword2) { + if (isAccessibilityModifier(keyword1)) { + if (keyword2 === ts.SyntaxKind.GetKeyword || keyword2 === ts.SyntaxKind.SetKeyword || keyword2 === ts.SyntaxKind.ConstructorKeyword || keyword2 === ts.SyntaxKind.StaticKeyword) { + // Allow things like "public get", "public constructor" and "public static". + // These are all legal. + return true; + } + // Any other keyword following "public" is actually an identifier an not a real + // keyword. + return false; + } + // Assume any other keyword combination is legal. This can be refined in the future + // if there are more cases we want the classifier to be better at. + return true; + } + // 'classifyKeywordsInGenerics' should be 'true' when a syntactic classifier is not present. + function getClassificationsForLine(text, lexState, classifyKeywordsInGenerics) { + var offset = 0; + var token = ts.SyntaxKind.Unknown; + var lastNonTriviaToken = ts.SyntaxKind.Unknown; + switch (lexState) { + case 3 /* InDoubleQuoteStringLiteral */: + text = '"\\\n' + text; + offset = 3; + break; + case 2 /* InSingleQuoteStringLiteral */: + text = "'\\\n" + text; + offset = 3; + break; + case 1 /* InMultiLineCommentTrivia */: + text = "/*\n" + text; + offset = 3; + break; + } + scanner.setText(text); + var result = { + finalLexState: 0 /* Start */, + entries: [] + }; + // We can run into an unfortunate interaction between the lexical and syntactic classifier + // when the user is typing something generic. Consider the case where the user types: + // + // Foo tokens. It's a weak heuristic, but should + // work well enough in practice. + var angleBracketStack = 0; + do { + token = scanner.scan(); + if (!ts.isTrivia(token)) { + if ((token === ts.SyntaxKind.SlashToken || token === ts.SyntaxKind.SlashEqualsToken) && !noRegexTable[lastNonTriviaToken]) { + if (scanner.reScanSlashToken() === ts.SyntaxKind.RegularExpressionLiteral) { + token = ts.SyntaxKind.RegularExpressionLiteral; + } + } + else if (lastNonTriviaToken === ts.SyntaxKind.DotToken && isKeyword(token)) { + token = ts.SyntaxKind.Identifier; + } + else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { + // We have two keywords in a row. Only treat the second as a keyword if + // it's a sequence that could legally occur in the language. Otherwise + // treat it as an identifier. This way, if someone writes "private var" + // we recognize that 'var' is actually an identifier here. + token = ts.SyntaxKind.Identifier; + } + else if (lastNonTriviaToken === ts.SyntaxKind.Identifier && token === ts.SyntaxKind.LessThanToken) { + // Could be the start of something generic. Keep track of that by bumping + // up the current count of generic contexts we may be in. + angleBracketStack++; + } + else if (token === ts.SyntaxKind.GreaterThanToken && angleBracketStack > 0) { + // If we think we're currently in something generic, then mark that that + // generic entity is complete. + angleBracketStack--; + } + else if (token === ts.SyntaxKind.AnyKeyword || token === ts.SyntaxKind.StringKeyword || token === ts.SyntaxKind.NumberKeyword || token === ts.SyntaxKind.BooleanKeyword) { + if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { + // If it looks like we're could be in something generic, don't classify this + // as a keyword. We may just get overwritten by the syntactic classifier, + // causing a noisy experience for the user. + token = ts.SyntaxKind.Identifier; + } + } + lastNonTriviaToken = token; + } + processToken(); + } while (token !== ts.SyntaxKind.EndOfFileToken); + return result; + function processToken() { + var start = scanner.getTokenPos(); + var end = scanner.getTextPos(); + addResult(end - start, classFromKind(token)); + if (end >= text.length) { + if (token === ts.SyntaxKind.StringLiteral) { + // Check to see if we finished up on a multiline string literal. + var tokenText = scanner.getTokenText(); + if (scanner.isUnterminated()) { + var lastCharIndex = tokenText.length - 1; + var numBackslashes = 0; + while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === ts.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 === ts.CharacterCodes.doubleQuote ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */; + } + } + } + else if (token === ts.SyntaxKind.MultiLineCommentTrivia) { + // Check to see if the multiline comment was unclosed. + if (scanner.isUnterminated()) { + result.finalLexState = 1 /* InMultiLineCommentTrivia */; + } + } + } + } + function addResult(length, classification) { + if (length > 0) { + // If this is the first classification we're adding to the list, then remove any + // offset we have if we were continuing a construct from the previous line. + if (result.entries.length === 0) { + length -= offset; + } + result.entries.push({ length: length, classification: classification }); + } + } + } + function isBinaryExpressionOperatorToken(token) { + switch (token) { + case ts.SyntaxKind.AsteriskToken: + case ts.SyntaxKind.SlashToken: + case ts.SyntaxKind.PercentToken: + case ts.SyntaxKind.PlusToken: + case ts.SyntaxKind.MinusToken: + case ts.SyntaxKind.LessThanLessThanToken: + case ts.SyntaxKind.GreaterThanGreaterThanToken: + case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken: + case ts.SyntaxKind.LessThanToken: + case ts.SyntaxKind.GreaterThanToken: + case ts.SyntaxKind.LessThanEqualsToken: + case ts.SyntaxKind.GreaterThanEqualsToken: + case ts.SyntaxKind.InstanceOfKeyword: + case ts.SyntaxKind.InKeyword: + case ts.SyntaxKind.EqualsEqualsToken: + case ts.SyntaxKind.ExclamationEqualsToken: + case ts.SyntaxKind.EqualsEqualsEqualsToken: + case ts.SyntaxKind.ExclamationEqualsEqualsToken: + case ts.SyntaxKind.AmpersandToken: + case ts.SyntaxKind.CaretToken: + case ts.SyntaxKind.BarToken: + case ts.SyntaxKind.AmpersandAmpersandToken: + case ts.SyntaxKind.BarBarToken: + case ts.SyntaxKind.BarEqualsToken: + case ts.SyntaxKind.AmpersandEqualsToken: + case ts.SyntaxKind.CaretEqualsToken: + case ts.SyntaxKind.LessThanLessThanEqualsToken: + case ts.SyntaxKind.GreaterThanGreaterThanEqualsToken: + case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken: + case ts.SyntaxKind.PlusEqualsToken: + case ts.SyntaxKind.MinusEqualsToken: + case ts.SyntaxKind.AsteriskEqualsToken: + case ts.SyntaxKind.SlashEqualsToken: + case ts.SyntaxKind.PercentEqualsToken: + case ts.SyntaxKind.EqualsToken: + case ts.SyntaxKind.CommaToken: + return true; + default: return false; + } + } + function isPrefixUnaryExpressionOperatorToken(token) { + switch (token) { + case ts.SyntaxKind.PlusToken: + case ts.SyntaxKind.MinusToken: + case ts.SyntaxKind.TildeToken: + case ts.SyntaxKind.ExclamationToken: + case ts.SyntaxKind.PlusPlusToken: + case ts.SyntaxKind.MinusMinusToken: + return true; + default: + return false; + } + } + function isKeyword(token) { + return token >= ts.SyntaxKind.FirstKeyword && token <= ts.SyntaxKind.LastKeyword; + } + function classFromKind(token) { + if (isKeyword(token)) { + return 1 /* Keyword */; + } + else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { + return 2 /* Operator */; + } + else if (token >= ts.SyntaxKind.FirstPunctuation && token <= ts.SyntaxKind.LastPunctuation) { + return 0 /* Punctuation */; + } + switch (token) { + case ts.SyntaxKind.NumericLiteral: + return 6 /* NumberLiteral */; + case ts.SyntaxKind.StringLiteral: + return 7 /* StringLiteral */; + case ts.SyntaxKind.RegularExpressionLiteral: + return 8 /* RegExpLiteral */; + case ts.SyntaxKind.ConflictMarkerTrivia: + case ts.SyntaxKind.MultiLineCommentTrivia: + case ts.SyntaxKind.SingleLineCommentTrivia: + return 3 /* Comment */; + case ts.SyntaxKind.WhitespaceTrivia: + return 4 /* Whitespace */; + case ts.SyntaxKind.Identifier: + default: + return 5 /* Identifier */; + } + } + return { getClassificationsForLine }; + } + ts.createClassifier = createClassifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibraryFilePath(options) { + if (typeof module !== "undefined" && module.exports) { + return __dirname + ts.directorySeparator + ts.getDefaultLibraryFilename(options); + } + throw new Error("getDefaultLibraryFilename is only supported when consumed as a node module. "); + } + ts.getDefaultLibraryFilePath = getDefaultLibraryFilePath; + function initializeServices() { + ts.objectAllocator = { + getNodeConstructor: function (kind) { + function Node() { + } + var proto = kind === ts.SyntaxKind.SourceFile ? new SourceFileObject() : new NodeObject(); + proto.kind = kind; + proto.pos = 0; + proto.end = 0; + proto.flags = 0; + proto.parent = undefined; + Node.prototype = proto; + return Node; + }, + getSymbolConstructor: function () { return SymbolObject; }, + getTypeConstructor: function () { return TypeObject; }, + getSignatureConstructor: function () { return SignatureObject; }, + }; + } + initializeServices(); +})(ts || (ts = {})); diff --git a/src/services/services.ts b/src/services/services.ts index 253435f0d39..875b67aba0f 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -9,7 +9,7 @@ /// module ts { - export var servicesVersion = "0.4.1" + export var servicesVersion = "0.4"; export interface Node { getSourceFile(): SourceFile; From d35757d1c53e2c68ca760e602e5fb721d2db3900 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 20 Jan 2015 11:20:27 -0800 Subject: [PATCH 058/211] fixing error in last checkin --- src/compiler/checker.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0e8435fd484..1bcc4cbcf24 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1096,7 +1096,8 @@ module ts { } // Get qualified name if the symbol is not a type parameter - // and we spe + // and there is an enclosing declaration or we specifically + // asked for it var typeParameter = (symbol.flags & SymbolFlags.TypeParameter); var typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; if (!typeParameter && (enclosingDeclaration || typeFormatFlag)) { @@ -1122,7 +1123,7 @@ module ts { writeTypeReference(type, flags); } else if (type.flags & (TypeFlags.Class | TypeFlags.Interface | TypeFlags.Enum | TypeFlags.TypeParameter)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ None, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, flags); } else if (type.flags & TypeFlags.Tuple) { writeTupleType(type); @@ -1203,7 +1204,7 @@ module ts { // If type is an anonymous type literal in a type alias declaration, use type alias name var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, /*flags*/ None, flags); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, flags); } else { // Recursive usage, use any @@ -1240,7 +1241,7 @@ module ts { function writeTypeofSymbol(type: ObjectType, flags?: TypeFormatFlags) { writeKeyword(writer, SyntaxKind.TypeOfKeyword); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, /*flags*/ None, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, SymbolFormatFlags.None, flags); } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { From 189c8f81fe78034aff625a61c10513b7ea223bbf Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 20 Jan 2015 13:15:21 -0800 Subject: [PATCH 059/211] Support for builder in modules + tests --- src/services/services.ts | 6 ++++-- .../completionListBuilderLocations_Modules.ts | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/completionListBuilderLocations_Modules.ts diff --git a/src/services/services.ts b/src/services/services.ts index bb98fd7d5db..dfca8aea745 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2376,6 +2376,10 @@ module ts { return containingNodeKind === SyntaxKind.CallExpression; case SyntaxKind.OpenParenToken: return containingNodeKind === SyntaxKind.CallExpression; + case SyntaxKind.ModuleKeyword: + return true; + case SyntaxKind.DotToken: + return containingNodeKind === SyntaxKind.ModuleDeclaration; } } @@ -2478,7 +2482,6 @@ module ts { return containingNodeKind === SyntaxKind.Parameter || containingNodeKind === SyntaxKind.PropertyDeclaration; case SyntaxKind.ClassKeyword: - case SyntaxKind.ModuleKeyword: case SyntaxKind.EnumKeyword: case SyntaxKind.InterfaceKeyword: case SyntaxKind.FunctionKeyword: @@ -2494,7 +2497,6 @@ module ts { case "class": case "interface": case "enum": - case "module": case "function": case "var": // TODO: add let and const diff --git a/tests/cases/fourslash/completionListBuilderLocations_Modules.ts b/tests/cases/fourslash/completionListBuilderLocations_Modules.ts new file mode 100644 index 00000000000..a629371d147 --- /dev/null +++ b/tests/cases/fourslash/completionListBuilderLocations_Modules.ts @@ -0,0 +1,14 @@ +/// + +////module A/*moduleName1*/ + + +////module A./*moduleName2*/ + + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.not.completionListIsEmpty(); + debugger; + verify.completionListIsBuilder(); +}); \ No newline at end of file From c0a5deadb8cebe570230b7f9f511ecb90d0265bd Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 20 Jan 2015 14:09:45 -0800 Subject: [PATCH 060/211] Delete old modules completion list test. --- ...onListAtIdentifierDefinitionLocations_modules.ts | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_modules.ts diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_modules.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_modules.ts deleted file mode 100644 index 4ebdf029a89..00000000000 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_modules.ts +++ /dev/null @@ -1,13 +0,0 @@ -/// - -////var aa = 1; - -////module /*moduleName1*/ - -////module a/*moduleName2*/ - - -test.markers().forEach((m) => { - goTo.position(m.position, m.fileName); - verify.completionListIsEmpty(); -}); From fa239326f098bd2559c08490a33e7898a9f34dfa Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 20 Jan 2015 14:18:22 -0800 Subject: [PATCH 061/211] Elaborate relational errors at least once when reporting them --- src/compiler/checker.ts | 36 ++-- src/compiler/types.ts | 6 + .../reference/arrayAssignmentTest3.errors.txt | 2 + .../reference/assignmentCompatBug5.errors.txt | 6 + ...terfaceWithStringIndexSignature.errors.txt | 2 + ...ConstrainedToOtherTypeParameter.errors.txt | 4 +- ...onstrainedToOtherTypeParameter2.errors.txt | 4 + ...fGenericFunctionTypedArguments1.errors.txt | 4 + ...ontextualTypingOfObjectLiterals.errors.txt | 4 +- ...structuringParameterProperties2.errors.txt | 4 + .../reference/elaboratedErrors.errors.txt | 52 ++++++ ...ssignmentConstrainedGenericType.errors.txt | 2 + .../reference/functionCall7.errors.txt | 2 + ...functionConstraintSatisfaction2.errors.txt | 8 + ...edMethodWithOverloadedArguments.errors.txt | 16 ++ ...nstraintsTypeArgumentInference2.errors.txt | 2 + ...lWithConstructorTypedArguments5.errors.txt | 8 + ...llWithGenericSignatureArguments.errors.txt | 4 + ...lWithGenericSignatureArguments2.errors.txt | 10 ++ ...lWithGenericSignatureArguments3.errors.txt | 2 + ...ricCallWithNonSymmetricSubtypes.errors.txt | 4 + .../genericCallWithObjectTypeArgs.errors.txt | 2 + ...thObjectTypeArgsAndConstraints3.errors.txt | 2 + .../reference/genericCombinators2.errors.txt | 6 +- .../reference/genericConstraint2.errors.txt | 4 +- .../reference/genericRestArgs.errors.txt | 4 +- .../reference/incompatibleTypes.errors.txt | 4 + .../indexSignatureTypeInference.errors.txt | 2 + .../interfaceAssignmentCompat.errors.txt | 6 + .../reference/maxConstraints.errors.txt | 4 +- ...handPropertiesFunctionArgument2.errors.txt | 2 + .../optionalBindingParameters1.errors.txt | 6 +- ...alBindingParametersInOverloads1.errors.txt | 6 +- .../overloadResolutionOverCTLambda.errors.txt | 4 +- ...nWithConstraintCheckingDeferred.errors.txt | 6 + .../overloadsWithProvisionalErrors.errors.txt | 4 + .../reference/parser536727.errors.txt | 4 + .../reference/promiseChaining1.errors.txt | 2 + .../reference/promiseChaining2.errors.txt | 2 + .../reference/promisePermutations.errors.txt | 85 ++++++++- .../reference/promisePermutations2.errors.txt | 169 +++++++++++++++--- .../reference/promisePermutations3.errors.txt | 60 +++++++ .../recursiveClassReferenceTest.errors.txt | 2 + .../subtypingWithCallSignaturesA.errors.txt | 4 +- ...ateStringsTypeArgumentInference.errors.txt | 2 + ...StringsTypeArgumentInferenceES6.errors.txt | 2 + .../reference/typeArgInference2.errors.txt | 4 +- ...peArgumentConstraintResolution1.errors.txt | 2 + .../typeArgumentInference.errors.txt | 2 + ...entInferenceConstructSignatures.errors.txt | 14 ++ .../typeArgumentInferenceErrors.errors.txt | 12 ++ ...renceWithConstraintAsCommonRoot.errors.txt | 4 +- ...rgumentInferenceWithConstraints.errors.txt | 14 ++ .../reference/typeAssertions.errors.txt | 4 + .../typeIdentityConsidersBrands.errors.txt | 2 + .../reference/typeOfOnTypeArg.errors.txt | 2 + .../undeclaredModuleError.errors.txt | 2 + tests/cases/compiler/elaboratedErrors.ts | 25 +++ 58 files changed, 613 insertions(+), 50 deletions(-) create mode 100644 tests/baselines/reference/elaboratedErrors.errors.txt create mode 100644 tests/cases/compiler/elaboratedErrors.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3ad62c1d639..66220682746 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3365,9 +3365,9 @@ module ts { // TYPE CHECKING - var subtypeRelation: Map = {}; - var assignableRelation: Map = {}; - var identityRelation: Map = {}; + var subtypeRelation: Map = {}; + var assignableRelation: Map = {}; + var identityRelation: Map = {}; function isTypeIdenticalTo(source: Type, target: Type): boolean { return checkTypeRelatedTo(source, target, identityRelation, /*errorNode*/ undefined); @@ -3402,7 +3402,7 @@ module ts { function checkTypeRelatedTo( source: Type, target: Type, - relation: Map, + relation: Map, errorNode: Node, headMessage?: DiagnosticMessage, containingMessageChain?: DiagnosticMessageChain): boolean { @@ -3422,6 +3422,14 @@ module ts { error(errorNode, Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); } else if (errorInfo) { + // If we already computed this relation, but in a context where we didn't want to report errors (e.g. overload resolution), + // then we'll only have a top-level error (e.g. 'Class X does not implement interface Y') without any details. If this happened, + // request a recompuation to get a complete error message. This will be skipped if we've already done this computation in a context + // where errors were being reported. + if (errorInfo.next === undefined) { + errorInfo = undefined; + isRelatedTo(source, target, errorNode !== undefined, headMessage, true); + } if (containingMessageChain) { errorInfo = concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); } @@ -3437,7 +3445,7 @@ module ts { // Ternary.True if they are related with no assumptions, // Ternary.Maybe if they are related with assumptions of other relationships, or // Ternary.False if they are not related. - function isRelatedTo(source: Type, target: Type, reportErrors?: boolean, headMessage?: DiagnosticMessage): Ternary { + function isRelatedTo(source: Type, target: Type, reportErrors?: boolean, headMessage?: DiagnosticMessage, mustRecompute = false): Ternary { var result: Ternary; // both types are the same - covers 'they are the same primitive type or both are Any' or the same type parameter cases if (source === target) return Ternary.True; @@ -3504,7 +3512,7 @@ module ts { // identity relation does not use apparent type var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); if (sourceOrApparentType.flags & TypeFlags.ObjectType && target.flags & TypeFlags.ObjectType && - (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors))) { + (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, mustRecompute))) { errorInfo = saveErrorInfo; return result; } @@ -3595,14 +3603,16 @@ module ts { // Third, check if both types are part of deeply nested chains of generic type instantiations and if so assume the types are // equal and infinitely expanding. Fourth, if we have reached a depth of 100 nested comparisons, assume we have runaway recursion // and issue an error. Otherwise, actually compare the structure of the two types. - function objectTypeRelatedTo(source: ObjectType, target: ObjectType, reportErrors: boolean): Ternary { + function objectTypeRelatedTo(source: ObjectType, target: ObjectType, reportErrors: boolean, elaborateErrors = false): Ternary { if (overflow) { return Ternary.False; } var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; var related = relation[id]; if (related !== undefined) { - return related ? Ternary.True : Ternary.False; + if (!elaborateErrors || related === RelationComparisonResult.FailedAndReported) { + return related === RelationComparisonResult.Succeeded ? Ternary.True : Ternary.False; + } } if (depth > 0) { for (var i = 0; i < depth; i++) { @@ -3654,12 +3664,14 @@ module ts { var maybeCache = maybeStack[depth]; // If result is definitely true, copy assumptions to global cache, else copy to next level up var destinationCache = result === Ternary.True || depth === 0 ? relation : maybeStack[depth - 1]; - copyMap(/*source*/maybeCache, /*target*/destinationCache); + for (var key in maybeCache) { + destinationCache[key] = maybeCache[key] ? RelationComparisonResult.Succeeded : RelationComparisonResult.Failed; + } } else { // A false result goes straight into global cache (when something is false under assumptions it // will also be false without assumptions) - relation[id] = false; + relation[id] = reportErrors ? RelationComparisonResult.FailedAndReported : RelationComparisonResult.Failed; } return result; } @@ -5865,7 +5877,7 @@ module ts { return typeArgumentsAreAssignable; } - function checkApplicableSignature(node: CallLikeExpression, args: Node[], signature: Signature, relation: Map, excludeArgument: boolean[], reportErrors: boolean) { + function checkApplicableSignature(node: CallLikeExpression, args: Node[], signature: Signature, relation: Map, excludeArgument: boolean[], reportErrors: boolean) { for (var i = 0; i < args.length; i++) { var arg = args[i]; var argType: Type; @@ -6059,7 +6071,7 @@ module ts { return resolveErrorCall(node); - function chooseOverload(candidates: Signature[], relation: Map) { + function chooseOverload(candidates: Signature[], relation: Map) { for (var i = 0; i < candidates.length; i++) { if (!hasCorrectArity(node, args, candidates[i])) { continue; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9ebab8dc220..9157786737b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -330,6 +330,12 @@ module ts { HasAggregatedChildData = 1 << 6 } + export const enum RelationComparisonResult { + Succeeded = 0, + Failed = 1, + FailedAndReported = 2 + } + export interface Node extends TextRange { kind: SyntaxKind; flags: NodeFlags; diff --git a/tests/baselines/reference/arrayAssignmentTest3.errors.txt b/tests/baselines/reference/arrayAssignmentTest3.errors.txt index 1c88408eb52..31347782c5d 100644 --- a/tests/baselines/reference/arrayAssignmentTest3.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest3.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/arrayAssignmentTest3.ts(12,25): error TS2345: Argument of type 'B' is not assignable to parameter of type 'B[]'. + Property 'length' is missing in type 'B'. ==== tests/cases/compiler/arrayAssignmentTest3.ts (1 errors) ==== @@ -16,5 +17,6 @@ tests/cases/compiler/arrayAssignmentTest3.ts(12,25): error TS2345: Argument of t var xx = new a(null, 7, new B()); ~~~~~~~ !!! error TS2345: Argument of type 'B' is not assignable to parameter of type 'B[]'. +!!! error TS2345: Property 'length' is missing in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatBug5.errors.txt b/tests/baselines/reference/assignmentCompatBug5.errors.txt index a015cc3bbcf..fd13a07a948 100644 --- a/tests/baselines/reference/assignmentCompatBug5.errors.txt +++ b/tests/baselines/reference/assignmentCompatBug5.errors.txt @@ -3,7 +3,10 @@ tests/cases/compiler/assignmentCompatBug5.ts(2,6): error TS2345: Argument of typ tests/cases/compiler/assignmentCompatBug5.ts(5,6): error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'number[]'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(8,6): error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. + Types of parameters 's' and 'n' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. + Type 'void' is not assignable to type 'number'. ==== tests/cases/compiler/assignmentCompatBug5.ts (4 errors) ==== @@ -23,8 +26,11 @@ tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of typ foo3((s:string) => { }); ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. +!!! error TS2345: Types of parameters 's' and 'n' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. foo3((n) => { return; }); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. +!!! error TS2345: Type 'void' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.errors.txt b/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.errors.txt index f972c9a925e..65c1d307793 100644 --- a/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.errors.txt +++ b/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatInterfaceWithStringIndexSignature.ts(15,5): error TS2345: Argument of type 'Foo' is not assignable to parameter of type 'IHandlerMap'. + Index signature is missing in type 'Foo'. ==== tests/cases/compiler/assignmentCompatInterfaceWithStringIndexSignature.ts (1 errors) ==== @@ -19,4 +20,5 @@ tests/cases/compiler/assignmentCompatInterfaceWithStringIndexSignature.ts(15,5): Biz(new Foo()); ~~~~~~~~~ !!! error TS2345: Argument of type 'Foo' is not assignable to parameter of type 'IHandlerMap'. +!!! error TS2345: Index signature is missing in type 'Foo'. \ No newline at end of file diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt index be465275de5..f9edcf4eef6 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,59): error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. + Type 'B' is not assignable to type 'C'. ==== tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts (1 errors) ==== @@ -22,4 +23,5 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete // Ok to go down the chain, but error to try to climb back up (new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); ~~~~~~~~~~ -!!! error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. \ No newline at end of file +!!! error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. +!!! error TS2345: Type 'B' is not assignable to type 'C'. \ No newline at end of file diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt index e307cc9be89..8f5924586df 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt @@ -1,5 +1,7 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(7,43): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(10,29): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(32,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(36,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(37,9): error TS2322: Type 'string' is not assignable to type 'number'. @@ -15,11 +17,13 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete (new Chain(t)).then(tt => s).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. +!!! error TS2345: Type 'T' is not assignable to type 'S'. // But error to try to climb up the chain (new Chain(s)).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. +!!! error TS2345: Type 'T' is not assignable to type 'S'. // Staying at T or S should be fine (new Chain(t)).then(tt => t).then(tt => t).then(tt => t); diff --git a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt index f7bac878950..c7b15e8efef 100644 --- a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt +++ b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt @@ -1,5 +1,7 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(16,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. + Type 'string' is not assignable to type 'Date'. tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts (2 errors) ==== @@ -21,7 +23,9 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): var r5 = _.forEach(c2, f); ~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. var r6 = _.forEach(c2, (x) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfObjectLiterals.errors.txt b/tests/baselines/reference/contextualTypingOfObjectLiterals.errors.txt index 5d41b312f72..ac8063a4378 100644 --- a/tests/baselines/reference/contextualTypingOfObjectLiterals.errors.txt +++ b/tests/baselines/reference/contextualTypingOfObjectLiterals.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/contextualTypingOfObjectLiterals.ts(4,1): error TS2322: Type '{ x: string; }' is not assignable to type '{ [x: string]: string; }'. Index signature is missing in type '{ x: string; }'. tests/cases/compiler/contextualTypingOfObjectLiterals.ts(10,3): error TS2345: Argument of type '{ x: string; }' is not assignable to parameter of type '{ [s: string]: string; }'. + Index signature is missing in type '{ x: string; }'. ==== tests/cases/compiler/contextualTypingOfObjectLiterals.ts (2 errors) ==== @@ -18,4 +19,5 @@ tests/cases/compiler/contextualTypingOfObjectLiterals.ts(10,3): error TS2345: Ar f(obj1); // Ok f(obj2); // Error - indexer doesn't match ~~~~ -!!! error TS2345: Argument of type '{ x: string; }' is not assignable to parameter of type '{ [s: string]: string; }'. \ No newline at end of file +!!! error TS2345: Argument of type '{ x: string; }' is not assignable to parameter of type '{ [s: string]: string; }'. +!!! error TS2345: Index signature is missing in type '{ x: string; }'. \ No newline at end of file diff --git a/tests/baselines/reference/destructuringParameterProperties2.errors.txt b/tests/baselines/reference/destructuringParameterProperties2.errors.txt index 61c0e61611a..bc7588a853d 100644 --- a/tests/baselines/reference/destructuringParameterProperties2.errors.txt +++ b/tests/baselines/reference/destructuringParameterProperties2.errors.txt @@ -6,6 +6,8 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(9 tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(13,21): error TS2339: Property 'b' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(17,21): error TS2339: Property 'c' does not exist on type 'C1'. tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(21,27): error TS2345: Argument of type '[number, undefined, string]' is not assignable to parameter of type '[number, string, boolean]'. + Types of property '2' are incompatible. + Type 'string' is not assignable to type 'boolean'. ==== tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts (8 errors) ==== @@ -46,6 +48,8 @@ tests/cases/conformance/es6/destructuring/destructuringParameterProperties2.ts(2 var x = new C1(undefined, [0, undefined, ""]); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '[number, undefined, string]' is not assignable to parameter of type '[number, string, boolean]'. +!!! error TS2345: Types of property '2' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'boolean'. var [x_a, x_b, x_c] = [x.getA(), x.getB(), x.getC()]; var y = new C1(10, [0, "", true]); diff --git a/tests/baselines/reference/elaboratedErrors.errors.txt b/tests/baselines/reference/elaboratedErrors.errors.txt new file mode 100644 index 00000000000..7bc83a19a50 --- /dev/null +++ b/tests/baselines/reference/elaboratedErrors.errors.txt @@ -0,0 +1,52 @@ +tests/cases/compiler/elaboratedErrors.ts(10,7): error TS2420: Class 'WorkerFS' incorrectly implements interface 'FileSystem'. + Types of property 'read' are incompatible. + Type 'string' is not assignable to type 'number'. +tests/cases/compiler/elaboratedErrors.ts(20,1): error TS2322: Type 'Beta' is not assignable to type 'Alpha'. + Property 'x' is missing in type 'Beta'. +tests/cases/compiler/elaboratedErrors.ts(21,1): error TS2322: Type 'Beta' is not assignable to type 'Alpha'. +tests/cases/compiler/elaboratedErrors.ts(24,1): error TS2322: Type 'Alpha' is not assignable to type 'Beta'. + Property 'y' is missing in type 'Alpha'. +tests/cases/compiler/elaboratedErrors.ts(25,1): error TS2322: Type 'Alpha' is not assignable to type 'Beta'. + + +==== tests/cases/compiler/elaboratedErrors.ts (5 errors) ==== + interface FileSystem { + read: number; + } + + function fn(s: WorkerFS): void; + function fn(s: FileSystem): void; + function fn(s: FileSystem|WorkerFS) { } + + // This should issue a large error, not a small one + class WorkerFS implements FileSystem { + ~~~~~~~~ +!!! error TS2420: Class 'WorkerFS' incorrectly implements interface 'FileSystem'. +!!! error TS2420: Types of property 'read' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'number'. + read: string; + } + + interface Alpha { x: string; } + interface Beta { y: number; } + var x: Alpha; + var y: Beta; + + // Only one of these errors should be large + x = y; + ~ +!!! error TS2322: Type 'Beta' is not assignable to type 'Alpha'. +!!! error TS2322: Property 'x' is missing in type 'Beta'. + x = y; + ~ +!!! error TS2322: Type 'Beta' is not assignable to type 'Alpha'. + + // Only one of these errors should be large + y = x; + ~ +!!! error TS2322: Type 'Alpha' is not assignable to type 'Beta'. +!!! error TS2322: Property 'y' is missing in type 'Alpha'. + y = x; + ~ +!!! error TS2322: Type 'Alpha' is not assignable to type 'Beta'. + \ No newline at end of file diff --git a/tests/baselines/reference/exportAssignmentConstrainedGenericType.errors.txt b/tests/baselines/reference/exportAssignmentConstrainedGenericType.errors.txt index cf63c48925f..946bc8ee8b1 100644 --- a/tests/baselines/reference/exportAssignmentConstrainedGenericType.errors.txt +++ b/tests/baselines/reference/exportAssignmentConstrainedGenericType.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/externalModules/foo_1.ts(2,17): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '{ a: string; b: number; }'. + Property 'a' is missing in type 'Boolean'. ==== tests/cases/conformance/externalModules/foo_1.ts (1 errors) ==== @@ -6,6 +7,7 @@ tests/cases/conformance/externalModules/foo_1.ts(2,17): error TS2345: Argument o var x = new foo(true); // Should error ~~~~ !!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '{ a: string; b: number; }'. +!!! error TS2345: Property 'a' is missing in type 'Boolean'. var y = new foo({a: "test", b: 42}); // Should be OK var z: number = y.test.b; ==== tests/cases/conformance/externalModules/foo_0.ts (0 errors) ==== diff --git a/tests/baselines/reference/functionCall7.errors.txt b/tests/baselines/reference/functionCall7.errors.txt index 576ea9c266e..19e572fa58d 100644 --- a/tests/baselines/reference/functionCall7.errors.txt +++ b/tests/baselines/reference/functionCall7.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/functionCall7.ts(5,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/functionCall7.ts(6,5): error TS2345: Argument of type 'number' is not assignable to parameter of type 'c1'. + Property 'a' is missing in type 'Number'. tests/cases/compiler/functionCall7.ts(7,1): error TS2346: Supplied parameters do not match any signature of call target. @@ -14,6 +15,7 @@ tests/cases/compiler/functionCall7.ts(7,1): error TS2346: Supplied parameters do foo(4); ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'c1'. +!!! error TS2345: Property 'a' is missing in type 'Number'. foo(); ~~~~~ !!! error TS2346: Supplied parameters do not match any signature of call target. diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt index 4af5c01c505..03ce9952938 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt +++ b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt @@ -1,8 +1,11 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(5,5): error TS2345: Argument of type 'number' is not assignable to parameter of type 'Function'. + Property 'apply' is missing in type 'Number'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(6,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(7,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(23,14): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(24,15): error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string[]' is not assignable to type 'string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(25,15): error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(26,15): error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(28,16): error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. @@ -11,6 +14,7 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(34,16): error TS2345: Argument of type 'F2' is not assignable to parameter of type '(x: string) => string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(36,38): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(37,10): error TS2345: Argument of type 'T' is not assignable to parameter of type '(x: string) => string'. + Type 'void' is not assignable to type 'string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(38,10): error TS2345: Argument of type 'U' is not assignable to parameter of type '(x: string) => string'. @@ -22,6 +26,7 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain foo(1); ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'Function'. +!!! error TS2345: Property 'apply' is missing in type 'Number'. foo(() => { }, 1); ~~~~~~~~~~~~~~~~~ !!! error TS2346: Supplied parameters do not match any signature of call target. @@ -49,6 +54,8 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r2 = foo2((x: string[]) => x); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string[]' is not assignable to type 'string'. var r6 = foo2(C); ~ !!! error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. @@ -78,6 +85,7 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain foo2(x); ~ !!! error TS2345: Argument of type 'T' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Type 'void' is not assignable to type 'string'. foo2(y); ~ !!! error TS2345: Argument of type 'U' is not assignable to parameter of type '(x: string) => string'. diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt index 8900e975030..428ebecf5b0 100644 --- a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt @@ -1,7 +1,15 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(24,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(53,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(69,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(85,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts (4 errors) ==== @@ -31,6 +39,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -62,6 +72,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -80,6 +92,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -98,5 +112,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. } \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.errors.txt b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.errors.txt index 604896319ca..d8228dd2243 100644 --- a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.errors.txt +++ b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference2.ts(3,17): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference2.ts(11,26): error TS2345: Argument of type 'number' is not assignable to parameter of type 'Date'. + Property 'toDateString' is missing in type 'Number'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference2.ts (2 errors) ==== @@ -18,4 +19,5 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithCon var r4 = foo(1); // error ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'Number'. var r5 = foo(new Date()); // no error \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt index 48e615bdb3e..a014ef85b6c 100644 --- a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt +++ b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt @@ -1,5 +1,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(11,14): error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. + Types of property 'cb' are incompatible. + Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(13,14): error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. + Types of property 'cb' are incompatible. + Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts (2 errors) ==== @@ -16,10 +20,14 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithCon var r2 = foo(arg2); // error ~~~~ !!! error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. +!!! error TS2345: Types of property 'cb' are incompatible. +!!! error TS2345: Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. var arg3: { cb: new (x: string, y: number) => string }; var r3 = foo(arg3); // error ~~~~ !!! error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. +!!! error TS2345: Types of property 'cb' are incompatible. +!!! error TS2345: Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. function foo2(arg: { cb: new(t: T, t2: T) => U }) { return new arg.cb(null, null); diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments.errors.txt index 2d5ad21959e..33c01aa544a 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments.errors.txt @@ -1,7 +1,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.ts(18,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; y?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; z?: number; }'. + Property 'y' is missing in type '{ x: number; z?: number; }'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.ts(19,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y?: number; }'. + Property 'z' is missing in type '{ x: number; y?: number; }'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.ts (2 errors) ==== @@ -26,10 +28,12 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; y?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; z?: number; }'. +!!! error TS2453: Property 'y' is missing in type '{ x: number; z?: number; }'. var r5 = foo((x: typeof b) => b, (x: typeof a) => a); // typeof b => typeof b ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y?: number; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y?: number; }'. function other(x: T) { var r6 = foo((a: T) => a, (b: T) => b); // T => T diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt index a8ee6ac6ca9..5b5d4ad66f0 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt @@ -3,10 +3,15 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(15,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(16,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(25,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(37,36): error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. + Type 'F' is not assignable to type 'E'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(50,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(51,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(60,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,51): error TS2304: Cannot find name 'U'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,57): error TS2304: Cannot find name 'U'. @@ -46,6 +51,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); // error ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. var r7b = foo2((a) => a, (b) => b); // valid, T is inferred to be Date } @@ -60,6 +67,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo3(E.A, (x) => E.A, (x) => F.A); // error ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. +!!! error TS2345: Type 'F' is not assignable to type 'E'. } module TU { @@ -89,6 +97,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. var r7b = foo2((a) => a, (b) => b); } diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt index 574cc5ca50d..87ae6b63855 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(32,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. + Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(33,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. @@ -40,6 +41,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen ~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. +!!! error TS2453: Type 'boolean' is not assignable to type 'string'. var r12 = foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2); // error ~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. diff --git a/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.errors.txt b/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.errors.txt index 2efcd043d78..3b896d9a7d8 100644 --- a/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.errors.txt +++ b/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.errors.txt @@ -1,7 +1,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.ts(12,9): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; y?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; z?: number; }'. + Property 'y' is missing in type '{ x: number; z?: number; }'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.ts(13,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y?: number; }'. + Property 'z' is missing in type '{ x: number; y?: number; }'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.ts (2 errors) ==== @@ -20,10 +22,12 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithNon ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; y?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; z?: number; }'. +!!! error TS2453: Property 'y' is missing in type '{ x: number; z?: number; }'. var r2 = foo(b, a); // { x: number; z?: number; }; ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z?: number; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y?: number; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y?: number; }'. var x: { x: number; }; var y: { x?: number; }; diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs.errors.txt b/tests/baselines/reference/genericCallWithObjectTypeArgs.errors.txt index 97b09a7d43f..ecd76d4ea1b 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgs.errors.txt +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs.ts(20,9): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'C' is not a valid type argument because it is not a supertype of candidate 'D'. + Types have separate declarations of a private property 'x'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs.ts (1 errors) ==== @@ -26,4 +27,5 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObj ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate 'C' is not a valid type argument because it is not a supertype of candidate 'D'. +!!! error TS2453: Types have separate declarations of a private property 'x'. var r2 = foo(c1, c1); // ok \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.errors.txt b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.errors.txt index 02b38ddeb74..54455782cc2 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.errors.txt +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints3.ts(18,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Derived' is not a valid type argument because it is not a supertype of candidate 'Derived2'. + Property 'y' is missing in type 'Derived2'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints3.ts(20,29): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. @@ -25,6 +26,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObj ~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate 'Derived' is not a valid type argument because it is not a supertype of candidate 'Derived2'. +!!! error TS2453: Property 'y' is missing in type 'Derived2'. function f2(a: U) { ~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/baselines/reference/genericCombinators2.errors.txt b/tests/baselines/reference/genericCombinators2.errors.txt index c09ef79b29b..5be717109c8 100644 --- a/tests/baselines/reference/genericCombinators2.errors.txt +++ b/tests/baselines/reference/genericCombinators2.errors.txt @@ -1,5 +1,7 @@ tests/cases/compiler/genericCombinators2.ts(15,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. + Type 'string' is not assignable to type 'Date'. tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/genericCombinators2.ts (2 errors) ==== @@ -20,6 +22,8 @@ tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of ty var r5a = _.map(c2, (x, y) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. var r5b = _.map(c2, rf1); ~~~ -!!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. \ No newline at end of file +!!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/genericConstraint2.errors.txt b/tests/baselines/reference/genericConstraint2.errors.txt index 3ab29b585d8..c1be6fc2325 100644 --- a/tests/baselines/reference/genericConstraint2.errors.txt +++ b/tests/baselines/reference/genericConstraint2.errors.txt @@ -2,6 +2,7 @@ tests/cases/compiler/genericConstraint2.ts(5,18): error TS2313: Constraint of a tests/cases/compiler/genericConstraint2.ts(11,7): error TS2420: Class 'ComparableString' incorrectly implements interface 'Comparable'. Property 'comparer' is missing in type 'ComparableString'. tests/cases/compiler/genericConstraint2.ts(21,17): error TS2344: Type 'ComparableString' does not satisfy the constraint 'Comparable'. + Property 'comparer' is missing in type 'ComparableString'. ==== tests/cases/compiler/genericConstraint2.ts (3 errors) ==== @@ -32,4 +33,5 @@ tests/cases/compiler/genericConstraint2.ts(21,17): error TS2344: Type 'Comparabl var b = new ComparableString("b"); var c = compare(a, b); ~~~~~~~~~~~~~~~~ -!!! error TS2344: Type 'ComparableString' does not satisfy the constraint 'Comparable'. \ No newline at end of file +!!! error TS2344: Type 'ComparableString' does not satisfy the constraint 'Comparable'. +!!! error TS2344: Property 'comparer' is missing in type 'ComparableString'. \ No newline at end of file diff --git a/tests/baselines/reference/genericRestArgs.errors.txt b/tests/baselines/reference/genericRestArgs.errors.txt index 8a977452958..99106ebd795 100644 --- a/tests/baselines/reference/genericRestArgs.errors.txt +++ b/tests/baselines/reference/genericRestArgs.errors.txt @@ -4,6 +4,7 @@ tests/cases/compiler/genericRestArgs.ts(5,34): error TS2345: Argument of type 's tests/cases/compiler/genericRestArgs.ts(10,12): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'number' is not a valid type argument because it is not a supertype of candidate 'string'. tests/cases/compiler/genericRestArgs.ts(12,30): error TS2345: Argument of type 'number' is not assignable to parameter of type 'any[]'. + Property 'length' is missing in type 'Number'. ==== tests/cases/compiler/genericRestArgs.ts (4 errors) ==== @@ -28,4 +29,5 @@ tests/cases/compiler/genericRestArgs.ts(12,30): error TS2345: Argument of type ' var a2Gb = makeArrayG(1, ""); var a2Gc = makeArrayG(1, ""); // error ~ -!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'any[]'. \ No newline at end of file +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'any[]'. +!!! error TS2345: Property 'length' is missing in type 'Number'. \ No newline at end of file diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index 14dfa883f45..01e4531031a 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -15,6 +15,8 @@ tests/cases/compiler/incompatibleTypes.ts(33,7): error TS2420: Class 'C4' incorr Type '{ c: { b: string; }; d: string; }' is not assignable to type '{ a: { a: string; }; b: string; }'. Property 'a' is missing in type '{ c: { b: string; }; d: string; }'. tests/cases/compiler/incompatibleTypes.ts(42,5): error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. + Types of property 'p1' are incompatible. + Type '() => string' is not assignable to type '(s: string) => number'. tests/cases/compiler/incompatibleTypes.ts(49,5): error TS2345: Argument of type '{ e: number; f: number; }' is not assignable to parameter of type '{ c: { b: string; }; d: string; }'. Property 'c' is missing in type '{ e: number; f: number; }'. tests/cases/compiler/incompatibleTypes.ts(66,5): error TS2322: Type '{ e: number; f: number; }' is not assignable to type '{ a: { a: string; }; b: string; }'. @@ -88,6 +90,8 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => if1(c1); ~~ !!! error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. +!!! error TS2345: Types of property 'p1' are incompatible. +!!! error TS2345: Type '() => string' is not assignable to type '(s: string) => number'. function of1(n: { a: { a: string; }; b: string; }): number; diff --git a/tests/baselines/reference/indexSignatureTypeInference.errors.txt b/tests/baselines/reference/indexSignatureTypeInference.errors.txt index 55bd2ce884f..f93bfc6ce40 100644 --- a/tests/baselines/reference/indexSignatureTypeInference.errors.txt +++ b/tests/baselines/reference/indexSignatureTypeInference.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/types/typeRelationships/typeInference/indexSignatureTypeInference.ts(18,27): error TS2345: Argument of type 'NumberMap' is not assignable to parameter of type 'StringMap<{}>'. + Index signature is missing in type 'NumberMap'. ==== tests/cases/conformance/types/typeRelationships/typeInference/indexSignatureTypeInference.ts (1 errors) ==== @@ -22,5 +23,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/indexSignatureType var v1 = stringMapToArray(numberMap); // Error expected here ~~~~~~~~~ !!! error TS2345: Argument of type 'NumberMap' is not assignable to parameter of type 'StringMap<{}>'. +!!! error TS2345: Index signature is missing in type 'NumberMap'. var v1 = stringMapToArray(stringMap); // Ok \ No newline at end of file diff --git a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt index 35cf2df71ff..425aa3b3e97 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt +++ b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt @@ -1,6 +1,9 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(32,18): error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. + Types of parameters 'a' and 'a' are incompatible. + Type 'IFrenchEye' is not assignable to type 'IEye'. tests/cases/compiler/interfaceAssignmentCompat.ts(37,29): error TS2339: Property '_map' does not exist on type 'typeof Color'. tests/cases/compiler/interfaceAssignmentCompat.ts(42,13): error TS2322: Type 'IEye' is not assignable to type 'IFrenchEye'. + Property 'coleur' is missing in type 'IEye'. tests/cases/compiler/interfaceAssignmentCompat.ts(44,9): error TS2322: Type 'IEye[]' is not assignable to type 'IFrenchEye[]'. Type 'IEye' is not assignable to type 'IFrenchEye'. @@ -40,6 +43,8 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(44,9): error TS2322: Type 'IEy x=x.sort(CompareYeux); // parameter mismatch ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. +!!! error TS2345: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2345: Type 'IFrenchEye' is not assignable to type 'IEye'. // type of z inferred from specialized array type var z=x.sort(CompareEyes); // ok @@ -54,6 +59,7 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(44,9): error TS2322: Type 'IEy eeks[j]=z[j]; // nope: element assignment ~~~~~~~ !!! error TS2322: Type 'IEye' is not assignable to type 'IFrenchEye'. +!!! error TS2322: Property 'coleur' is missing in type 'IEye'. } eeks=z; // nope: array assignment ~~~~ diff --git a/tests/baselines/reference/maxConstraints.errors.txt b/tests/baselines/reference/maxConstraints.errors.txt index 1c3844d6974..16ae5bd2063 100644 --- a/tests/baselines/reference/maxConstraints.errors.txt +++ b/tests/baselines/reference/maxConstraints.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/maxConstraints.ts(5,6): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. tests/cases/compiler/maxConstraints.ts(8,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'Comparable'. + Property 'compareTo' is missing in type 'Number'. ==== tests/cases/compiler/maxConstraints.ts (2 errors) ==== @@ -14,4 +15,5 @@ tests/cases/compiler/maxConstraints.ts(8,22): error TS2345: Argument of type 'nu var max2: Comparer = (x, y) => { return (x.compareTo(y) > 0) ? x : y }; var maxResult = max2(1, 2); ~ -!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'Comparable'. \ No newline at end of file +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'Comparable'. +!!! error TS2345: Property 'compareTo' is missing in type 'Number'. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.errors.txt b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.errors.txt index 44426a8afb0..00ac59319ec 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.errors.txt +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument2.ts(7,5): error TS2345: Argument of type '{ name: string; id: number; }' is not assignable to parameter of type '{ a: string; id: number; }'. + Property 'a' is missing in type '{ name: string; id: number; }'. ==== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument2.ts (1 errors) ==== @@ -11,4 +12,5 @@ tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPr foo(person); // error ~~~~~~ !!! error TS2345: Argument of type '{ name: string; id: number; }' is not assignable to parameter of type '{ a: string; id: number; }'. +!!! error TS2345: Property 'a' is missing in type '{ name: string; id: number; }'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalBindingParameters1.errors.txt b/tests/baselines/reference/optionalBindingParameters1.errors.txt index a2961fb9651..78fc1cbddf1 100644 --- a/tests/baselines/reference/optionalBindingParameters1.errors.txt +++ b/tests/baselines/reference/optionalBindingParameters1.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/es6/destructuring/optionalBindingParameters1.ts(2,14): error TS2463: A binding pattern parameter cannot be optional in an implementation signature. tests/cases/conformance/es6/destructuring/optionalBindingParameters1.ts(8,5): error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. + Types of property '0' are incompatible. + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/es6/destructuring/optionalBindingParameters1.ts (2 errors) ==== @@ -14,4 +16,6 @@ tests/cases/conformance/es6/destructuring/optionalBindingParameters1.ts(8,5): er foo([false, 0, ""]); ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. \ No newline at end of file +!!! error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. +!!! error TS2345: Types of property '0' are incompatible. +!!! error TS2345: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalBindingParametersInOverloads1.errors.txt b/tests/baselines/reference/optionalBindingParametersInOverloads1.errors.txt index 5999ec514b0..312603d2c2e 100644 --- a/tests/baselines/reference/optionalBindingParametersInOverloads1.errors.txt +++ b/tests/baselines/reference/optionalBindingParametersInOverloads1.errors.txt @@ -1,4 +1,6 @@ tests/cases/conformance/es6/destructuring/optionalBindingParametersInOverloads1.ts(9,5): error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. + Types of property '0' are incompatible. + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/es6/destructuring/optionalBindingParametersInOverloads1.ts (1 errors) ==== @@ -12,4 +14,6 @@ tests/cases/conformance/es6/destructuring/optionalBindingParametersInOverloads1. foo([false, 0, ""]); ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. \ No newline at end of file +!!! error TS2345: Argument of type '[boolean, number, string]' is not assignable to parameter of type '[string, number, boolean]'. +!!! error TS2345: Types of property '0' are incompatible. +!!! error TS2345: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt index 03901cf67a4..9fc11b681c7 100644 --- a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt +++ b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt @@ -1,8 +1,10 @@ tests/cases/compiler/overloadResolutionOverCTLambda.ts(2,5): error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/compiler/overloadResolutionOverCTLambda.ts (1 errors) ==== function foo(b: (item: number) => boolean) { } foo(a => a); // can not convert (number)=>bool to (number)=>number ~~~~~~ -!!! error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. \ No newline at end of file +!!! error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt index 4a119c5ca22..ed504fd410d 100644 --- a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt +++ b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt @@ -1,8 +1,11 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(14,5): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(14,37): error TS2345: Argument of type 'D' is not assignable to parameter of type 'A'. + Property 'x' is missing in type 'D'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,38): error TS2344: Type 'D' does not satisfy the constraint 'A'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(18,27): error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. + Types of parameters 'x' and 'x' are incompatible. + Type 'D' is not assignable to type 'B'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,12): error TS2344: Type 'D' does not satisfy the constraint 'A'. @@ -25,6 +28,7 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,12): !!! error TS2322: Type 'string' is not assignable to type 'number'. ~ !!! error TS2345: Argument of type 'D' is not assignable to parameter of type 'A'. +!!! error TS2345: Property 'x' is missing in type 'D'. var result2: number = foo(x => new G(x)); // x has type D, new G(x) fails, so first overload is picked. ~~~~~~~ @@ -43,4 +47,6 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,12): }); ~ !!! error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'D' is not assignable to type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt index bd918de55fe..55fe8ed4fde 100644 --- a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt +++ b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt @@ -1,6 +1,8 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(6,6): error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. + Type '{}' is not assignable to type '{ a: number; b: number; }'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(7,17): error TS2304: Cannot find name 'blah'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,6): error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. + Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cannot find name 'blah'. @@ -13,11 +15,13 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cann func(s => ({})); // Error for no applicable overload (object type is missing a and b) ~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. +!!! error TS2345: Type '{}' is not assignable to type '{ a: number; b: number; }'. func(s => ({ a: blah, b: 3 })); // Only error inside the function, but not outside (since it would be applicable if not for the provisional error) ~~~~ !!! error TS2304: Cannot find name 'blah'. func(s => ({ a: blah })); // Two errors here, one for blah not being defined, and one for the overload since it would not be applicable anyway ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. +!!! error TS2345: Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. ~~~~ !!! error TS2304: Cannot find name 'blah'. \ No newline at end of file diff --git a/tests/baselines/reference/parser536727.errors.txt b/tests/baselines/reference/parser536727.errors.txt index a25859f78a1..4204e62c93b 100644 --- a/tests/baselines/reference/parser536727.errors.txt +++ b/tests/baselines/reference/parser536727.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(7,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. + Type '(x: string) => string' is not assignable to type 'string'. tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. + Type '(x: string) => string' is not assignable to type 'string'. ==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts (2 errors) ==== @@ -12,7 +14,9 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): foo(() => g); ~~~~~~~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. foo(x); ~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining1.errors.txt b/tests/baselines/reference/promiseChaining1.errors.txt index e0fac7c2893..7396d03059a 100644 --- a/tests/baselines/reference/promiseChaining1.errors.txt +++ b/tests/baselines/reference/promiseChaining1.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. + Type 'string' is not assignable to type 'Function'. ==== tests/cases/compiler/promiseChaining1.ts (1 errors) ==== @@ -11,6 +12,7 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type ' var z = this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then(x => x.length)/*number*/; // Should error on "abc" because it is not a Function ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. +!!! error TS2345: Type 'string' is not assignable to type 'Function'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining2.errors.txt b/tests/baselines/reference/promiseChaining2.errors.txt index c5b3f2fc1f0..a31c4335da7 100644 --- a/tests/baselines/reference/promiseChaining2.errors.txt +++ b/tests/baselines/reference/promiseChaining2.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. + Type 'string' is not assignable to type 'Function'. ==== tests/cases/compiler/promiseChaining2.ts (1 errors) ==== @@ -11,6 +12,7 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type ' var z = this.then(x => result).then(x => "abc").then(x => x.length); ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. +!!! error TS2345: Type 'string' is not assignable to type 'Function'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index 9104d924e66..d4082015054 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -1,8 +1,23 @@ -tests/cases/compiler/promisePermutations.ts(74,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +tests/cases/compiler/promisePermutations.ts(55,34): error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. +tests/cases/compiler/promisePermutations.ts(56,34): error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. +tests/cases/compiler/promisePermutations.ts(73,35): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. +tests/cases/compiler/promisePermutations.ts(74,35): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. tests/cases/compiler/promisePermutations.ts(79,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(84,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(88,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. @@ -12,9 +27,17 @@ tests/cases/compiler/promisePermutations.ts(100,19): error TS2345: Argument of t tests/cases/compiler/promisePermutations.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. tests/cases/compiler/promisePermutations.ts(102,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations.ts(106,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(111,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(117,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. @@ -32,15 +55,28 @@ tests/cases/compiler/promisePermutations.ts(137,11): error TS2453: The type argu tests/cases/compiler/promisePermutations.ts(144,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. +tests/cases/compiler/promisePermutations.ts(151,21): error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(value: {}) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. tests/cases/compiler/promisePermutations.ts(152,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. +tests/cases/compiler/promisePermutations.ts(153,36): error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. tests/cases/compiler/promisePermutations.ts(156,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(158,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'Promise' is not assignable to type 'IPromise'. -==== tests/cases/compiler/promisePermutations.ts (33 errors) ==== +==== tests/cases/compiler/promisePermutations.ts (38 errors) ==== interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; then(success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; @@ -96,7 +132,13 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s1a = s1.then(testFunction, testFunction, testFunction); var s1b = s1.then(testFunctionP, testFunctionP, testFunctionP); var s1c = s1.then(testFunctionP, testFunction, testFunction); + ~~~~~~~~~~~~ +!!! error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s1d = s1.then(testFunctionP, testFunction, testFunction).then(testFunction, testFunction, testFunction); + ~~~~~~~~~~~~ +!!! error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var r2: IPromise<{ x: number; }>; var r2a = r2.then(testFunction2, testFunction2, testFunction2); @@ -114,9 +156,13 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); var s3c = s3.then(testFunction3P, testFunction3, testFunction3); + ~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // error - ~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + ~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -124,17 +170,25 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; @@ -175,17 +229,25 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -254,26 +316,41 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok var s10d = s10.then(sPromise, sPromise, sPromise); // ok var s10e = s10.then(nIPromise, nPromise, nIPromise); // ok + ~~~~~~~~~ +!!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(value: {}) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s10f = s10.then(testFunctionP, sIPromise, nIPromise); // error ~~~~~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok + ~~~~~~~~~ +!!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index 3c316115a27..1e2c13edd15 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -1,46 +1,104 @@ -tests/cases/compiler/promisePermutations2.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +tests/cases/compiler/promisePermutations2.ts(54,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: number) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(55,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(63,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: { x: number; }) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(64,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. +tests/cases/compiler/promisePermutations2.ts(72,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(73,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -tests/cases/compiler/promisePermutations2.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. +tests/cases/compiler/promisePermutations2.ts(83,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(84,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'Promise'. + Types of property 'then' are incompatible. + Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. tests/cases/compiler/promisePermutations2.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -tests/cases/compiler/promisePermutations2.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +tests/cases/compiler/promisePermutations2.ts(92,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -tests/cases/compiler/promisePermutations2.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +tests/cases/compiler/promisePermutations2.ts(101,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -tests/cases/compiler/promisePermutations2.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +tests/cases/compiler/promisePermutations2.ts(121,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. tests/cases/compiler/promisePermutations2.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -tests/cases/compiler/promisePermutations2.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +tests/cases/compiler/promisePermutations2.ts(133,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(143,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. +tests/cases/compiler/promisePermutations2.ts(148,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise<{}>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{}>'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: {}) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(150,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. tests/cases/compiler/promisePermutations2.ts(151,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(152,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. +tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. + Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -==== tests/cases/compiler/promisePermutations2.ts (33 errors) ==== +==== tests/cases/compiler/promisePermutations2.ts (42 errors) ==== // same as promisePermutations but without the same overloads in Promise interface Promise { @@ -95,7 +153,15 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s1a = s1.then(testFunction, testFunction, testFunction); var s1b = s1.then(testFunctionP, testFunctionP, testFunctionP); var s1c = s1.then(testFunctionP, testFunction, testFunction); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: number) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s1d = s1.then(testFunctionP, testFunction, testFunction).then(testFunction, testFunction, testFunction); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r2: IPromise<{ x: number; }>; var r2a = r2.then(testFunction2, testFunction2, testFunction2); @@ -104,7 +170,15 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s2a = s2.then(testFunction2, testFunction2, testFunction2); var s2b = s2.then(testFunction2P, testFunction2P, testFunction2P); var s2c = s2.then(testFunction2P, testFunction2, testFunction2); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: { x: number; }) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s2d = s2.then(testFunction2P, testFunction2, testFunction2).then(testFunction2, testFunction2, testFunction2); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. var r3: IPromise; var r3a = r3.then(testFunction3, testFunction3, testFunction3); @@ -113,9 +187,13 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); var s3c = s3.then(testFunction3P, testFunction3, testFunction3); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // Should error - ~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -123,18 +201,32 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error - ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'Promise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error @@ -149,8 +241,9 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error - ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; @@ -166,25 +259,34 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error - ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -202,8 +304,11 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error - ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; @@ -226,8 +331,9 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error - ~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + ~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -251,28 +357,47 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s10a = s10.then(testFunction10, testFunction10, testFunction10); // ok var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok + ~~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise<{}>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{}>'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: {}) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s10d = s10.then(sPromise, sPromise, sPromise); // ok var s10e = s10.then(nIPromise, nPromise, nIPromise); // ok + ~~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. var s10f = s10.then(testFunctionP, sIPromise, nIPromise); // error ~~~~~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // ok - ~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. + ~~~~~~~~ +!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. +!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations3.errors.txt b/tests/baselines/reference/promisePermutations3.errors.txt index f8edf83c694..d0874ea7f57 100644 --- a/tests/baselines/reference/promisePermutations3.errors.txt +++ b/tests/baselines/reference/promisePermutations3.errors.txt @@ -1,9 +1,21 @@ tests/cases/compiler/promisePermutations3.ts(68,69): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations3.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations3.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations3.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations3.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. @@ -13,9 +25,17 @@ tests/cases/compiler/promisePermutations3.ts(99,19): error TS2345: Argument of t tests/cases/compiler/promisePermutations3.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. tests/cases/compiler/promisePermutations3.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations3.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations3.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations3.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. @@ -35,11 +55,21 @@ tests/cases/compiler/promisePermutations3.ts(143,12): error TS2453: The type arg Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations3.ts(151,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + Types of property 'then' are incompatible. + Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. tests/cases/compiler/promisePermutations3.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'Promise' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. + Type 'IPromise' is not assignable to type 'Promise'. ==== tests/cases/compiler/promisePermutations3.ts (35 errors) ==== @@ -113,6 +143,8 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r3b = r3.then(testFunction3, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var s3: Promise; var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); @@ -120,6 +152,8 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -127,17 +161,25 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; @@ -178,17 +220,25 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -261,22 +311,31 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of ~~~~~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +!!! error TS2453: Types of property 'then' are incompatible. +!!! error TS2453: Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok @@ -285,4 +344,5 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok \ No newline at end of file diff --git a/tests/baselines/reference/recursiveClassReferenceTest.errors.txt b/tests/baselines/reference/recursiveClassReferenceTest.errors.txt index f2561724475..088d7222f48 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.errors.txt +++ b/tests/baselines/reference/recursiveClassReferenceTest.errors.txt @@ -2,6 +2,7 @@ tests/cases/compiler/recursiveClassReferenceTest.ts(16,19): error TS2304: Cannot tests/cases/compiler/recursiveClassReferenceTest.ts(56,11): error TS2304: Cannot find name 'domNode'. tests/cases/compiler/recursiveClassReferenceTest.ts(88,36): error TS2304: Cannot find name 'mode'. tests/cases/compiler/recursiveClassReferenceTest.ts(95,21): error TS2345: Argument of type 'Window' is not assignable to parameter of type 'IMode'. + Property 'getInitialState' is missing in type 'Window'. ==== tests/cases/compiler/recursiveClassReferenceTest.ts (4 errors) ==== @@ -108,6 +109,7 @@ tests/cases/compiler/recursiveClassReferenceTest.ts(95,21): error TS2345: Argume return new State(self); ~~~~ !!! error TS2345: Argument of type 'Window' is not assignable to parameter of type 'IMode'. +!!! error TS2345: Property 'getInitialState' is missing in type 'Window'. } diff --git a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt index 31f6e5572d3..3821c707f4b 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt @@ -1,8 +1,10 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts(2,15): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts (1 errors) ==== declare function foo3(cb: (x: number) => number): typeof cb; var r5 = foo3((x: number) => ''); // error ~~~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. \ No newline at end of file +!!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.errors.txt b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.errors.txt index 99e90d57148..275fdac6ac7 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.errors.txt +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.errors.txt @@ -26,6 +26,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference.ts(64,25): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher. tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference.ts(77,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. + Property 'z' is missing in type '{ x: number; y: string; }'. tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference.ts(77,25): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher. tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference.ts(81,25): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher. tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference.ts(86,23): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher. @@ -164,6 +165,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference ~~~~~~~~~~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y: string; }'. ~~~ !!! error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher. var a9e: {}; diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.errors.txt b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.errors.txt index 170c10c7381..1a4a1dc5aac 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.errors.txt +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.errors.txt @@ -2,6 +2,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInferenceES6.ts(76,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. + Property 'z' is missing in type '{ x: number; y: string; }'. ==== tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInferenceES6.ts (2 errors) ==== @@ -87,6 +88,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsTypeArgumentInference ~~~~~~~~~~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y: string; }'. var a9e: {}; // Generic tag with multiple parameters of generic type passed arguments with a single best common type diff --git a/tests/baselines/reference/typeArgInference2.errors.txt b/tests/baselines/reference/typeArgInference2.errors.txt index 08fc2f4e232..dd2e227f2ff 100644 --- a/tests/baselines/reference/typeArgInference2.errors.txt +++ b/tests/baselines/reference/typeArgInference2.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/typeArgInference2.ts(12,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ name: string; a: number; }' is not a valid type argument because it is not a supertype of candidate '{ name: string; b: number; }'. + Property 'a' is missing in type '{ name: string; b: number; }'. ==== tests/cases/compiler/typeArgInference2.ts (1 errors) ==== @@ -17,4 +18,5 @@ tests/cases/compiler/typeArgInference2.ts(12,10): error TS2453: The type argumen var z6 = foo({ name: "abc", a: 5 }, { name: "def", b: 5 }); // error ~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate '{ name: string; a: number; }' is not a valid type argument because it is not a supertype of candidate '{ name: string; b: number; }'. \ No newline at end of file +!!! error TS2453: Type argument candidate '{ name: string; a: number; }' is not a valid type argument because it is not a supertype of candidate '{ name: string; b: number; }'. +!!! error TS2453: Property 'a' is missing in type '{ name: string; b: number; }'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentConstraintResolution1.errors.txt b/tests/baselines/reference/typeArgumentConstraintResolution1.errors.txt index 1131b6e1a68..d7cf5e83b8f 100644 --- a/tests/baselines/reference/typeArgumentConstraintResolution1.errors.txt +++ b/tests/baselines/reference/typeArgumentConstraintResolution1.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/typeArgumentConstraintResolution1.ts(4,12): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Date'. + Property 'toDateString' is missing in type 'String'. tests/cases/compiler/typeArgumentConstraintResolution1.ts(11,12): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Date'. @@ -9,6 +10,7 @@ tests/cases/compiler/typeArgumentConstraintResolution1.ts(11,12): error TS2345: foo1(""); // should error ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'String'. diff --git a/tests/baselines/reference/typeArgumentInference.errors.txt b/tests/baselines/reference/typeArgumentInference.errors.txt index e374de7b13a..126fe3d772f 100644 --- a/tests/baselines/reference/typeArgumentInference.errors.txt +++ b/tests/baselines/reference/typeArgumentInference.errors.txt @@ -2,6 +2,7 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInference.ts(68,11 Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInference.ts(82,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. + Property 'z' is missing in type '{ x: number; y: string; }'. ==== tests/cases/conformance/expressions/functionCalls/typeArgumentInference.ts (2 errors) ==== @@ -93,6 +94,7 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInference.ts(82,11 ~~~~~~~~~~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z: Date; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y: string; }'. var a9e: {}; var a9f = someGenerics9(undefined, { x: 6, z: new Date() }, { x: 6, y: '' }); var a9f: A92; diff --git a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt index c251f860adb..c82dab89e94 100644 --- a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt @@ -1,13 +1,20 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(25,35): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(51,19): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(61,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(71,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(81,45): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(106,15): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(118,9): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(120,15): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z: any; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. + Property 'z' is missing in type '{ x: number; y: string; }'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(120,51): error TS2304: Cannot find name 'window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(122,56): error TS2304: Cannot find name 'window'. @@ -80,6 +87,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -92,6 +101,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics5(null, null); // Generic call with multiple arguments of function types that each have parameters of the same generic type @@ -104,6 +115,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type @@ -151,6 +164,7 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct ~~~~~~~~~~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z: any; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y: string; }'. ~~~~~~ !!! error TS2304: Cannot find name 'window'. var a9e: {}; diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt index bb08cac4e0b..9bd25dda4e6 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt @@ -1,7 +1,13 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(3,31): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(7,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(11,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(15,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts (4 errors) ==== @@ -16,16 +22,22 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(n: T, f: (x: U) => void) { } someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // Generic call with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) { } someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.errors.txt index 72db7214c45..3d24175c757 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/typeArgumentInferenceWithConstraintAsCommonRoot.ts(7,1): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Giraffe' is not a valid type argument because it is not a supertype of candidate 'Elephant'. + Property 'y' is missing in type 'Elephant'. ==== tests/cases/compiler/typeArgumentInferenceWithConstraintAsCommonRoot.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/typeArgumentInferenceWithConstraintAsCommonRoot.ts(7,1): er f(g, e); // valid because both Giraffe and Elephant satisfy the constraint. T is Animal ~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Giraffe' is not a valid type argument because it is not a supertype of candidate 'Elephant'. \ No newline at end of file +!!! error TS2453: Type argument candidate 'Giraffe' is not a valid type argument because it is not a supertype of candidate 'Elephant'. +!!! error TS2453: Property 'y' is missing in type 'Elephant'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt index a607bc2dc9d..56370ac03d5 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt @@ -4,15 +4,22 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(32,34): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(34,15): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(41,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(48,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(49,15): error TS2344: Type 'string' does not satisfy the constraint 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(55,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(66,31): error TS2345: Argument of type '(a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(73,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(85,9): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(87,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '{ x: number; z: any; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. + Property 'z' is missing in type '{ x: number; y: string; }'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(87,47): error TS2304: Cannot find name 'window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(89,52): error TS2304: Cannot find name 'window'. @@ -71,6 +78,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -80,6 +89,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics5(null, null); // Error ~~~~~~ !!! error TS2344: Type 'string' does not satisfy the constraint 'number'. @@ -91,6 +102,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type @@ -133,6 +146,7 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst ~~~~~~~~~~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '{ x: number; z: any; }' is not a valid type argument because it is not a supertype of candidate '{ x: number; y: string; }'. +!!! error TS2453: Property 'z' is missing in type '{ x: number; y: string; }'. ~~~~~~ !!! error TS2304: Cannot find name 'window'. var a9e: {}; diff --git a/tests/baselines/reference/typeAssertions.errors.txt b/tests/baselines/reference/typeAssertions.errors.txt index ab5eb19ce2a..a2ad28801c8 100644 --- a/tests/baselines/reference/typeAssertions.errors.txt +++ b/tests/baselines/reference/typeAssertions.errors.txt @@ -4,7 +4,9 @@ tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(31,12): err tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(35,15): error TS2352: Neither type 'SomeOther' nor type 'SomeDerived' is assignable to the other. Property 'x' is missing in type 'SomeOther'. tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(37,13): error TS2352: Neither type 'SomeDerived' nor type 'SomeOther' is assignable to the other. + Property 'q' is missing in type 'SomeDerived'. tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(38,13): error TS2352: Neither type 'SomeBase' nor type 'SomeOther' is assignable to the other. + Property 'q' is missing in type 'SomeBase'. ==== tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts (5 errors) ==== @@ -55,9 +57,11 @@ tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(38,13): err someOther = someDerived; // Error ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type 'SomeDerived' nor type 'SomeOther' is assignable to the other. +!!! error TS2352: Property 'q' is missing in type 'SomeDerived'. someOther = someBase; // Error ~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type 'SomeBase' nor type 'SomeOther' is assignable to the other. +!!! error TS2352: Property 'q' is missing in type 'SomeBase'. someOther = someOther; diff --git a/tests/baselines/reference/typeIdentityConsidersBrands.errors.txt b/tests/baselines/reference/typeIdentityConsidersBrands.errors.txt index 99264a00351..0e291769afe 100644 --- a/tests/baselines/reference/typeIdentityConsidersBrands.errors.txt +++ b/tests/baselines/reference/typeIdentityConsidersBrands.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/typeIdentityConsidersBrands.ts(30,1): error TS2322: Type 'X_1' is not assignable to type 'Y_1'. Types have separate declarations of a private property 'name'. tests/cases/compiler/typeIdentityConsidersBrands.ts(31,6): error TS2345: Argument of type 'Y_1' is not assignable to parameter of type 'X_1'. + Types have separate declarations of a private property 'name'. ==== tests/cases/compiler/typeIdentityConsidersBrands.ts (2 errors) ==== @@ -40,4 +41,5 @@ tests/cases/compiler/typeIdentityConsidersBrands.ts(31,6): error TS2345: Argumen foo2(a2); // should error ~~ !!! error TS2345: Argument of type 'Y_1' is not assignable to parameter of type 'X_1'. +!!! error TS2345: Types have separate declarations of a private property 'name'. \ No newline at end of file diff --git a/tests/baselines/reference/typeOfOnTypeArg.errors.txt b/tests/baselines/reference/typeOfOnTypeArg.errors.txt index 46b48983f21..8562b7f134a 100644 --- a/tests/baselines/reference/typeOfOnTypeArg.errors.txt +++ b/tests/baselines/reference/typeOfOnTypeArg.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/typeOfOnTypeArg.ts(7,6): error TS2345: Argument of type 'number' is not assignable to parameter of type '{ '': number; }'. + Property '''' is missing in type 'Number'. ==== tests/cases/compiler/typeOfOnTypeArg.ts (1 errors) ==== @@ -11,4 +12,5 @@ tests/cases/compiler/typeOfOnTypeArg.ts(7,6): error TS2345: Argument of type 'nu fill(32); ~~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type '{ '': number; }'. +!!! error TS2345: Property '''' is missing in type 'Number'. \ No newline at end of file diff --git a/tests/baselines/reference/undeclaredModuleError.errors.txt b/tests/baselines/reference/undeclaredModuleError.errors.txt index 9ce6cbfd89f..62faef02eea 100644 --- a/tests/baselines/reference/undeclaredModuleError.errors.txt +++ b/tests/baselines/reference/undeclaredModuleError.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/undeclaredModuleError.ts(1,21): error TS2307: Cannot find external module 'fs'. tests/cases/compiler/undeclaredModuleError.ts(8,29): error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. + Type 'void' is not assignable to type 'boolean'. tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find name 'IDoNotExist'. @@ -18,6 +19,7 @@ tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find } , (error: Error, files: {}[]) => { ~~~~~~~~~ !!! error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. +!!! error TS2345: Type 'void' is not assignable to type 'boolean'. files.forEach((file) => { var fullPath = join(IDoNotExist); ~~~~~~~~~~~ diff --git a/tests/cases/compiler/elaboratedErrors.ts b/tests/cases/compiler/elaboratedErrors.ts new file mode 100644 index 00000000000..e985a9362f3 --- /dev/null +++ b/tests/cases/compiler/elaboratedErrors.ts @@ -0,0 +1,25 @@ +interface FileSystem { + read: number; +} + +function fn(s: WorkerFS): void; +function fn(s: FileSystem): void; +function fn(s: FileSystem|WorkerFS) { } + +// This should issue a large error, not a small one +class WorkerFS implements FileSystem { + read: string; +} + +interface Alpha { x: string; } +interface Beta { y: number; } +var x: Alpha; +var y: Beta; + +// Only one of these errors should be large +x = y; +x = y; + +// Only one of these errors should be large +y = x; +y = x; From 832af682edf60df74f502957aae6f6c7afc65815 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 20 Jan 2015 15:26:14 -0800 Subject: [PATCH 062/211] Builder in constructor aruguments + tests. --- src/harness/fourslash.ts | 6 ++---- src/services/services.ts | 11 +++++++---- ...dentifierDefinitionLocations_parameters.ts | 19 ++++++------------- .../completionListBuilderLocations_Modules.ts | 1 - tests/cases/fourslash/fourslash.ts | 2 +- 5 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 8ffdef428eb..232411d03d9 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -656,12 +656,10 @@ module FourSlash { } } - public verifyCompletionListIsBuilder(negative: boolean) { + public verifyCompletionListHasBuilder(negative: boolean) { var completions = this.getCompletionListAtCaret(); - if (!completions) { - this.raiseError("Expected completion list"); - } else if ((completions && !completions.isBuilder) && !negative) { + if ((completions && !completions.isBuilder) && !negative) { this.raiseError("Expected builder completion entry"); } else if ((completions && completions.isBuilder) && negative) { this.raiseError("Un-expected builder completion entry"); diff --git a/src/services/services.ts b/src/services/services.ts index 7ebf21abc1d..bbd297a3940 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2376,9 +2376,11 @@ module ts { // variable declarations switch (previousToken.kind) { case SyntaxKind.CommaToken: - return containingNodeKind === SyntaxKind.CallExpression; + return containingNodeKind === SyntaxKind.CallExpression + || containingNodeKind === SyntaxKind.Constructor; case SyntaxKind.OpenParenToken: - return containingNodeKind === SyntaxKind.CallExpression; + return containingNodeKind === SyntaxKind.CallExpression + || containingNodeKind === SyntaxKind.Constructor; case SyntaxKind.ModuleKeyword: return true; case SyntaxKind.DotToken: @@ -2435,7 +2437,6 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.MethodDeclaration: case SyntaxKind.MethodSignature: - case SyntaxKind.Constructor: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: case SyntaxKind.CallSignature: @@ -2482,7 +2483,9 @@ module ts { case SyntaxKind.PrivateKeyword: case SyntaxKind.StaticKeyword: case SyntaxKind.DotDotDotToken: - return containingNodeKind === SyntaxKind.Parameter || containingNodeKind === SyntaxKind.PropertyDeclaration; + return containingNodeKind === SyntaxKind.Parameter + || containingNodeKind === SyntaxKind.PropertyDeclaration + || containingNodeKind === SyntaxKind.Constructor; case SyntaxKind.ClassKeyword: case SyntaxKind.EnumKeyword: diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts index 0fd66e9d091..f5a82cdcc57 100644 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts @@ -10,26 +10,19 @@ ////function testFunction(a, b/*parameterName4*/ -////class bar1{ constructor(/*constructorParamter1*/ +////class bar5{ constructor(public /*constructorParamter1*/ -////class bar2{ constructor(a/*constructorParamter2*/ +////class bar6{ constructor(public a/*constructorParamter2*/ -////class bar3{ constructor(a, /*constructorParamter3*/ +////class bar7{ constructor(private a/*constructorParamter3*/ -////class bar4{ constructor(a, b/*constructorParamter4*/ +////class bar8{ constructor(.../*constructorParamter4*/ -////class bar5{ constructor(public /*constructorParamter5*/ - -////class bar6{ constructor(public a/*constructorParamter6*/ - -////class bar7{ constructor(private a/*constructorParamter7*/ - -////class bar8{ constructor(.../*constructorParamter8*/ - -////class bar9{ constructor(...a/*constructorParamter9*/ +////class bar9{ constructor(...a/*constructorParamter5*/ test.markers().forEach((m) => { goTo.position(m.position, m.fileName); verify.completionListIsEmpty(); + verify.not.completionListIsBuilder(); }); diff --git a/tests/cases/fourslash/completionListBuilderLocations_Modules.ts b/tests/cases/fourslash/completionListBuilderLocations_Modules.ts index a629371d147..d39c52318ce 100644 --- a/tests/cases/fourslash/completionListBuilderLocations_Modules.ts +++ b/tests/cases/fourslash/completionListBuilderLocations_Modules.ts @@ -9,6 +9,5 @@ test.markers().forEach((m) => { goTo.position(m.position, m.fileName); verify.not.completionListIsEmpty(); - debugger; verify.completionListIsBuilder(); }); \ No newline at end of file diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 243629fa347..71e3d723e20 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -173,7 +173,7 @@ module FourSlashInterface { } public completionListIsBuilder() { - FourSlash.currentTestState.verifyCompletionListIsBuilder(this.negative); + FourSlash.currentTestState.verifyCompletionListHasBuilder(this.negative); } public memberListIsEmpty() { From cb4a1109d63dee7798ce9da466d26c503fcd7952 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 20 Jan 2015 15:51:24 -0800 Subject: [PATCH 063/211] test cases for builder in constructor --- ...dentifierDefinitionLocations_parameters.ts | 1 - ...mpletionListBuilderLocations_parameters.ts | 22 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionListBuilderLocations_parameters.ts diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts index f5a82cdcc57..cb1b7592518 100644 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts @@ -24,5 +24,4 @@ test.markers().forEach((m) => { goTo.position(m.position, m.fileName); verify.completionListIsEmpty(); - verify.not.completionListIsBuilder(); }); diff --git a/tests/cases/fourslash/completionListBuilderLocations_parameters.ts b/tests/cases/fourslash/completionListBuilderLocations_parameters.ts new file mode 100644 index 00000000000..8d8d89cbdc7 --- /dev/null +++ b/tests/cases/fourslash/completionListBuilderLocations_parameters.ts @@ -0,0 +1,22 @@ +/// + +////var aa = 1; + +////class bar1{ constructor(/*constructorParamter1*/ + +////class bar2{ constructor(a/*constructorParamter2*/ + +////class bar3{ constructor(a, /*constructorParamter3*/ + +////class bar4{ constructor(a, b/*constructorParamter4*/ + +////class bar6{ constructor(public a, /*constructorParamter5*/ + +////class bar7{ constructor(private a, /*constructorParamter6*/ + + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.not.completionListIsEmpty(); + verify.completionListIsBuilder(); +}); From 85219ee5e1acc9c855c6377357bc70b5bb03f8f8 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 20 Jan 2015 17:07:00 -0800 Subject: [PATCH 064/211] Check computed properties against indexers in classes --- src/compiler/checker.ts | 45 +++++++++++---- .../computedPropertyNames36.errors.txt | 16 ++++++ .../reference/computedPropertyNames36.js | 42 ++++++++++++++ .../reference/computedPropertyNames37.js | 42 ++++++++++++++ .../reference/computedPropertyNames37.types | 26 +++++++++ .../computedPropertyNames38.errors.txt | 16 ++++++ .../reference/computedPropertyNames38.js | 42 ++++++++++++++ .../computedPropertyNames39.errors.txt | 16 ++++++ .../reference/computedPropertyNames39.js | 42 ++++++++++++++ .../computedPropertyNames40.errors.txt | 16 ++++++ .../reference/computedPropertyNames40.js | 35 ++++++++++++ .../reference/computedPropertyNames41.js | 31 ++++++++++ .../reference/computedPropertyNames41.types | 22 +++++++ .../computedPropertyNames42.errors.txt | 18 ++++++ .../computedPropertyNames43.errors.txt | 18 ++++++ .../reference/computedPropertyNames43.js | 57 +++++++++++++++++++ .../computedPropertyNames44.errors.txt | 20 +++++++ .../reference/computedPropertyNames44.js | 55 ++++++++++++++++++ .../computedPropertyNames45.errors.txt | 18 ++++++ .../reference/computedPropertyNames45.js | 56 ++++++++++++++++++ .../computedPropertyNames36.ts | 11 ++++ .../computedPropertyNames37.ts | 11 ++++ .../computedPropertyNames38.ts | 11 ++++ .../computedPropertyNames39.ts | 11 ++++ .../computedPropertyNames40.ts | 11 ++++ .../computedPropertyNames41.ts | 10 ++++ .../computedPropertyNames42.ts | 10 ++++ .../computedPropertyNames43.ts | 13 +++++ .../computedPropertyNames44.ts | 12 ++++ .../computedPropertyNames45.ts | 13 +++++ 30 files changed, 734 insertions(+), 12 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNames36.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames36.js create mode 100644 tests/baselines/reference/computedPropertyNames37.js create mode 100644 tests/baselines/reference/computedPropertyNames37.types create mode 100644 tests/baselines/reference/computedPropertyNames38.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames38.js create mode 100644 tests/baselines/reference/computedPropertyNames39.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames39.js create mode 100644 tests/baselines/reference/computedPropertyNames40.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames40.js create mode 100644 tests/baselines/reference/computedPropertyNames41.js create mode 100644 tests/baselines/reference/computedPropertyNames41.types create mode 100644 tests/baselines/reference/computedPropertyNames42.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames43.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames43.js create mode 100644 tests/baselines/reference/computedPropertyNames44.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames44.js create mode 100644 tests/baselines/reference/computedPropertyNames45.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames45.js create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames37.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames41.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 42612ed4cdc..35b2fb244e5 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4767,6 +4767,7 @@ module ts { return type; } } + /*Transitively mark all linked imports as referenced*/ function markLinkedImportsAsReferenced(node: ImportDeclaration): void { var nodeLinks = getNodeLinks(node); @@ -8466,41 +8467,46 @@ module ts { if (node.finallyBlock) checkBlock(node.finallyBlock); } - function checkIndexConstraints(type: Type) { + function checkIndexConstraints(type: Type) { + function checkIndexConstraintForProperty( + prop: Symbol, + propertyType: Type, + containingType: Type, + indexDeclaration: Declaration, + indexType: Type, + indexKind: IndexKind): void { - function checkIndexConstraintForProperty(prop: Symbol, propertyType: Type, indexDeclaration: Declaration, indexType: Type, indexKind: IndexKind): void { if (!indexType) { return; } // index is numeric and property name is not valid numeric literal - if (indexKind === IndexKind.Number && !isNumericLiteralName(prop.name)) { + if (indexKind === IndexKind.Number && !isNumericName(prop.valueDeclaration.name)) { return; } // perform property check if property or indexer is declared in 'type' // this allows to rule out cases when both property and indexer are inherited from the base class var errorNode: Node; - if (prop.parent === type.symbol) { + if (prop.valueDeclaration.name.kind === SyntaxKind.ComputedPropertyName || prop.parent === containingType.symbol) { errorNode = prop.valueDeclaration; } else if (indexDeclaration) { errorNode = indexDeclaration; } - - else if (type.flags & TypeFlags.Interface) { + else if (containingType.flags & TypeFlags.Interface) { // for interfaces property and indexer might be inherited from different bases // check if any base class already has both property and indexer. // check should be performed only if 'type' is the first type that brings property\indexer together - var someBaseClassHasBothPropertyAndIndexer = forEach((type).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : type.symbol.declarations[0]; + var someBaseClassHasBothPropertyAndIndexer = forEach((containingType).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { var errorMessage = indexKind === IndexKind.String - ? Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 - : Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + ? Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } @@ -8514,9 +8520,24 @@ module ts { if (stringIndexType || numberIndexType) { forEach(getPropertiesOfObjectType(type), prop => { var propType = getTypeOfSymbol(prop); - checkIndexConstraintForProperty(prop, propType, declaredStringIndexer, stringIndexType, IndexKind.String); - checkIndexConstraintForProperty(prop, propType, declaredNumberIndexer, numberIndexType, IndexKind.Number); + checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, IndexKind.String); + checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, IndexKind.Number); }); + + if (type.flags & TypeFlags.Class && type.symbol.valueDeclaration.kind === SyntaxKind.ClassDeclaration) { + var classDeclaration = type.symbol.valueDeclaration; + for (var i = 0; i < classDeclaration.members.length; i++) { + var member = classDeclaration.members[i]; + // Only process instance properties with computed names here. + // Static properties cannot be in conflict with indexers, + // and properties with literal names were already checked. + if (!(member.flags & NodeFlags.Static) && hasComputedNameButNotSymbol(member)) { + var propType = getTypeOfSymbol(member.symbol); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, IndexKind.String); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, IndexKind.Number); + } + } + } } var errorNode: Node; diff --git a/tests/baselines/reference/computedPropertyNames36.errors.txt b/tests/baselines/reference/computedPropertyNames36.errors.txt new file mode 100644 index 00000000000..a473ebfba8e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames36.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts(8,5): error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: Foo2; + + // Computed properties + get ["get1"]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + set ["set1"](p: Foo2) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames36.js b/tests/baselines/reference/computedPropertyNames36.js new file mode 100644 index 00000000000..7c731014d1e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames36.js @@ -0,0 +1,42 @@ +//// [computedPropertyNames36.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} + +//// [computedPropertyNames36.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "get1", { + // Computed properties + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, "set1", { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames37.js b/tests/baselines/reference/computedPropertyNames37.js new file mode 100644 index 00000000000..fb4c32909d5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames37.js @@ -0,0 +1,42 @@ +//// [computedPropertyNames37.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: number]: Foo2; + + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} + +//// [computedPropertyNames37.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "get1", { + // Computed properties + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, "set1", { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames37.types b/tests/baselines/reference/computedPropertyNames37.types new file mode 100644 index 00000000000..b50e0590b79 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames37.types @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames37.ts === +class Foo { x } +>Foo : Foo +>x : any + +class Foo2 { x; y } +>Foo2 : Foo2 +>x : any +>y : any + +class C { +>C : C + + [s: number]: Foo2; +>s : number +>Foo2 : Foo2 + + // Computed properties + get ["get1"]() { return new Foo } +>new Foo : Foo +>Foo : typeof Foo + + set ["set1"](p: Foo2) { } +>p : Foo2 +>Foo2 : Foo2 +} diff --git a/tests/baselines/reference/computedPropertyNames38.errors.txt b/tests/baselines/reference/computedPropertyNames38.errors.txt new file mode 100644 index 00000000000..fc5f31f1329 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames38.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts(8,5): error TS2411: Property '[1 << 6]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '[1 << 6]' of type 'Foo' is not assignable to string index type 'Foo2'. + set [1 << 6](p: Foo2) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames38.js b/tests/baselines/reference/computedPropertyNames38.js new file mode 100644 index 00000000000..922244bfecf --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames38.js @@ -0,0 +1,42 @@ +//// [computedPropertyNames38.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + set [1 << 6](p: Foo2) { } +} + +//// [computedPropertyNames38.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, 1 << 6, { + // Computed properties + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, 1 << 6, { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames39.errors.txt b/tests/baselines/reference/computedPropertyNames39.errors.txt new file mode 100644 index 00000000000..573ef726241 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames39.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts(8,5): error TS2412: Property '[1 << 6]' of type 'Foo' is not assignable to numeric index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: number]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2412: Property '[1 << 6]' of type 'Foo' is not assignable to numeric index type 'Foo2'. + set [1 << 6](p: Foo2) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames39.js b/tests/baselines/reference/computedPropertyNames39.js new file mode 100644 index 00000000000..62621f4e754 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames39.js @@ -0,0 +1,42 @@ +//// [computedPropertyNames39.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: number]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + set [1 << 6](p: Foo2) { } +} + +//// [computedPropertyNames39.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, 1 << 6, { + // Computed properties + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, 1 << 6, { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames40.errors.txt b/tests/baselines/reference/computedPropertyNames40.errors.txt new file mode 100644 index 00000000000..c5bda4ed999 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames40.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts(8,5): error TS2411: Property '[""]' of type '() => Foo' is not assignable to string index type '() => Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: () => Foo2; + + // Computed properties + [""]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '[""]' of type '() => Foo' is not assignable to string index type '() => Foo2'. + [""]() { return new Foo2 } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames40.js b/tests/baselines/reference/computedPropertyNames40.js new file mode 100644 index 00000000000..1c9b5d3bfa8 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames40.js @@ -0,0 +1,35 @@ +//// [computedPropertyNames40.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: () => Foo2; + + // Computed properties + [""]() { return new Foo } + [""]() { return new Foo2 } +} + +//// [computedPropertyNames40.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + // Computed properties + C.prototype[""] = function () { + return new Foo; + }; + C.prototype[""] = function () { + return new Foo2; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames41.js b/tests/baselines/reference/computedPropertyNames41.js new file mode 100644 index 00000000000..34fe2d33df7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames41.js @@ -0,0 +1,31 @@ +//// [computedPropertyNames41.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: () => Foo2; + + // Computed properties + static [""]() { return new Foo } +} + +//// [computedPropertyNames41.js] +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + // Computed properties + C[""] = function () { + return new Foo; + }; + return C; +})(); diff --git a/tests/baselines/reference/computedPropertyNames41.types b/tests/baselines/reference/computedPropertyNames41.types new file mode 100644 index 00000000000..1fb0af282ca --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames41.types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames41.ts === +class Foo { x } +>Foo : Foo +>x : any + +class Foo2 { x; y } +>Foo2 : Foo2 +>x : any +>y : any + +class C { +>C : C + + [s: string]: () => Foo2; +>s : string +>Foo2 : Foo2 + + // Computed properties + static [""]() { return new Foo } +>new Foo : Foo +>Foo : typeof Foo +} diff --git a/tests/baselines/reference/computedPropertyNames42.errors.txt b/tests/baselines/reference/computedPropertyNames42.errors.txt new file mode 100644 index 00000000000..059b3117a43 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames42.errors.txt @@ -0,0 +1,18 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts(8,5): error TS1166: Computed property names are not allowed in class property declarations. +tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts(8,5): error TS2411: Property '[""]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts (2 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: Foo2; + + // Computed properties + [""]: Foo; + ~~~~ +!!! error TS1166: Computed property names are not allowed in class property declarations. + ~~~~~~~~~~ +!!! error TS2411: Property '[""]' of type 'Foo' is not assignable to string index type 'Foo2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames43.errors.txt b/tests/baselines/reference/computedPropertyNames43.errors.txt new file mode 100644 index 00000000000..d38dcca9216 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames43.errors.txt @@ -0,0 +1,18 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts(10,5): error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: Foo2; + } + + class D extends C { + // Computed properties + get ["get1"]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + set ["set1"](p: Foo2) { } + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames43.js b/tests/baselines/reference/computedPropertyNames43.js new file mode 100644 index 00000000000..22ac7774439 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames43.js @@ -0,0 +1,57 @@ +//// [computedPropertyNames43.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; +} + +class D extends C { + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} + +//// [computedPropertyNames43.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 Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.apply(this, arguments); + } + Object.defineProperty(D.prototype, "get1", { + // Computed properties + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(D.prototype, "set1", { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return D; +})(C); diff --git a/tests/baselines/reference/computedPropertyNames44.errors.txt b/tests/baselines/reference/computedPropertyNames44.errors.txt new file mode 100644 index 00000000000..bf1de6687e1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames44.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts(6,5): error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. +tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts(10,5): error TS2411: Property '["set1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts (2 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + [s: string]: Foo2; + get ["get1"]() { return new Foo } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '["get1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + } + + class D extends C { + set ["set1"](p: Foo) { } + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '["set1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames44.js b/tests/baselines/reference/computedPropertyNames44.js new file mode 100644 index 00000000000..c91a52e8199 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames44.js @@ -0,0 +1,55 @@ +//// [computedPropertyNames44.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + get ["get1"]() { return new Foo } +} + +class D extends C { + set ["set1"](p: Foo) { } +} + +//// [computedPropertyNames44.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 Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "get1", { + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.apply(this, arguments); + } + Object.defineProperty(D.prototype, "set1", { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return D; +})(C); diff --git a/tests/baselines/reference/computedPropertyNames45.errors.txt b/tests/baselines/reference/computedPropertyNames45.errors.txt new file mode 100644 index 00000000000..7ad29340b25 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames45.errors.txt @@ -0,0 +1,18 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts(11,5): error TS2411: Property '["set1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts (1 errors) ==== + class Foo { x } + class Foo2 { x; y } + + class C { + get ["get1"]() { return new Foo } + } + + class D extends C { + // No error when the indexer is in a class more derived than the computed property + [s: string]: Foo2; + set ["set1"](p: Foo) { } + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2411: Property '["set1"]' of type 'Foo' is not assignable to string index type 'Foo2'. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames45.js b/tests/baselines/reference/computedPropertyNames45.js new file mode 100644 index 00000000000..7ec3c165e12 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames45.js @@ -0,0 +1,56 @@ +//// [computedPropertyNames45.ts] +class Foo { x } +class Foo2 { x; y } + +class C { + get ["get1"]() { return new Foo } +} + +class D extends C { + // No error when the indexer is in a class more derived than the computed property + [s: string]: Foo2; + set ["set1"](p: Foo) { } +} + +//// [computedPropertyNames45.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 Foo = (function () { + function Foo() { + } + return Foo; +})(); +var Foo2 = (function () { + function Foo2() { + } + return Foo2; +})(); +var C = (function () { + function C() { + } + Object.defineProperty(C.prototype, "get1", { + get: function () { + return new Foo; + }, + enumerable: true, + configurable: true + }); + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.apply(this, arguments); + } + Object.defineProperty(D.prototype, "set1", { + set: function (p) { + }, + enumerable: true, + configurable: true + }); + return D; +})(C); diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts new file mode 100644 index 00000000000..36c4e91be48 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames36.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames37.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames37.ts new file mode 100644 index 00000000000..09fe6235a1c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames37.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: number]: Foo2; + + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts new file mode 100644 index 00000000000..9054979dbd8 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames38.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + set [1 << 6](p: Foo2) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts new file mode 100644 index 00000000000..f8d4d2a0107 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames39.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: number]: Foo2; + + // Computed properties + get [1 << 6]() { return new Foo } + set [1 << 6](p: Foo2) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts new file mode 100644 index 00000000000..94d473193d9 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames40.ts @@ -0,0 +1,11 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: () => Foo2; + + // Computed properties + [""]() { return new Foo } + [""]() { return new Foo2 } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames41.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames41.ts new file mode 100644 index 00000000000..a376debec56 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames41.ts @@ -0,0 +1,10 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: () => Foo2; + + // Computed properties + static [""]() { return new Foo } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts new file mode 100644 index 00000000000..ded6cb28ce7 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames42.ts @@ -0,0 +1,10 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + + // Computed properties + [""]: Foo; +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts new file mode 100644 index 00000000000..25028273997 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames43.ts @@ -0,0 +1,13 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; +} + +class D extends C { + // Computed properties + get ["get1"]() { return new Foo } + set ["set1"](p: Foo2) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts new file mode 100644 index 00000000000..04c4ad5ed5c --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames44.ts @@ -0,0 +1,12 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + [s: string]: Foo2; + get ["get1"]() { return new Foo } +} + +class D extends C { + set ["set1"](p: Foo) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts new file mode 100644 index 00000000000..e6e058f24ab --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames45.ts @@ -0,0 +1,13 @@ +// @target: es6 +class Foo { x } +class Foo2 { x; y } + +class C { + get ["get1"]() { return new Foo } +} + +class D extends C { + // No error when the indexer is in a class more derived than the computed property + [s: string]: Foo2; + set ["set1"](p: Foo) { } +} \ No newline at end of file From 26da3782b55c442eeecc6c69759b73248d410d0e Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 20 Jan 2015 17:08:55 -0800 Subject: [PATCH 065/211] Move subroutine function to the bottom of checkIndexConstraints --- src/compiler/checker.ts | 86 ++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 35b2fb244e5..1500d82db8b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8468,49 +8468,6 @@ module ts { } function checkIndexConstraints(type: Type) { - function checkIndexConstraintForProperty( - prop: Symbol, - propertyType: Type, - containingType: Type, - indexDeclaration: Declaration, - indexType: Type, - indexKind: IndexKind): void { - - if (!indexType) { - return; - } - - // index is numeric and property name is not valid numeric literal - if (indexKind === IndexKind.Number && !isNumericName(prop.valueDeclaration.name)) { - return; - } - - // perform property check if property or indexer is declared in 'type' - // this allows to rule out cases when both property and indexer are inherited from the base class - var errorNode: Node; - if (prop.valueDeclaration.name.kind === SyntaxKind.ComputedPropertyName || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; - } - else if (indexDeclaration) { - errorNode = indexDeclaration; - } - else if (containingType.flags & TypeFlags.Interface) { - // for interfaces property and indexer might be inherited from different bases - // check if any base class already has both property and indexer. - // check should be performed only if 'type' is the first type that brings property\indexer together - var someBaseClassHasBothPropertyAndIndexer = forEach((containingType).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; - } - - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = - indexKind === IndexKind.String - ? Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 - : 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, IndexKind.Number); var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, IndexKind.String); @@ -8554,6 +8511,49 @@ module ts { error(errorNode, Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType)); } + + function checkIndexConstraintForProperty( + prop: Symbol, + propertyType: Type, + containingType: Type, + indexDeclaration: Declaration, + indexType: Type, + indexKind: IndexKind): void { + + if (!indexType) { + return; + } + + // index is numeric and property name is not valid numeric literal + if (indexKind === IndexKind.Number && !isNumericName(prop.valueDeclaration.name)) { + return; + } + + // perform property check if property or indexer is declared in 'type' + // this allows to rule out cases when both property and indexer are inherited from the base class + var errorNode: Node; + if (prop.valueDeclaration.name.kind === SyntaxKind.ComputedPropertyName || prop.parent === containingType.symbol) { + errorNode = prop.valueDeclaration; + } + else if (indexDeclaration) { + errorNode = indexDeclaration; + } + else if (containingType.flags & TypeFlags.Interface) { + // for interfaces property and indexer might be inherited from different bases + // check if any base class already has both property and indexer. + // check should be performed only if 'type' is the first type that brings property\indexer together + var someBaseClassHasBothPropertyAndIndexer = forEach((containingType).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + } + + if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = + indexKind === IndexKind.String + ? Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + } + } } function checkTypeNameIsReserved(name: DeclarationName, message: DiagnosticMessage): void { From eb7798fbb2989795abd33b4c9843c9b9b0f1b95c Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 20 Jan 2015 18:29:04 -0800 Subject: [PATCH 066/211] Skip computed properties on declaration emit --- src/compiler/emitter.ts | 16 ++++++++- .../computedPropertyNamesDeclarationEmit1.js | 33 +++++++++++++++++++ ...omputedPropertyNamesDeclarationEmit1.types | 14 ++++++++ .../computedPropertyNamesDeclarationEmit2.js | 33 +++++++++++++++++++ ...omputedPropertyNamesDeclarationEmit2.types | 14 ++++++++ ...edPropertyNamesDeclarationEmit3.errors.txt | 9 +++++ ...edPropertyNamesDeclarationEmit4.errors.txt | 9 +++++ .../computedPropertyNamesDeclarationEmit5.js | 23 +++++++++++++ ...omputedPropertyNamesDeclarationEmit5.types | 18 ++++++++++ .../computedPropertyNamesDeclarationEmit1.ts | 7 ++++ .../computedPropertyNamesDeclarationEmit2.ts | 7 ++++ .../computedPropertyNamesDeclarationEmit3.ts | 5 +++ .../computedPropertyNamesDeclarationEmit4.ts | 5 +++ .../computedPropertyNamesDeclarationEmit5.ts | 8 +++++ 14 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit1.types create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit2.types create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit3.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit4.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js create mode 100644 tests/baselines/reference/computedPropertyNamesDeclarationEmit5.types create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5.ts diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index d82e577971d..7c457126f19 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -930,6 +930,10 @@ module ts { } function emitPropertyDeclaration(node: Declaration) { + if (hasComputedNameButNotSymbol(node)) { + return; + } + emitJsDocComments(node); emitClassMemberDeclarationFlags(node); emitVariableDeclaration(node); @@ -937,11 +941,13 @@ module ts { writeLine(); } - // TODO(jfreeman): Factor out common part of property definition, but treat name differently function emitVariableDeclaration(node: VariableDeclaration) { // If we are emitting property it isn't moduleElement and hence we already know it needs to be emitted // so there is no check needed to see if declaration is visible if (node.kind !== SyntaxKind.VariableDeclaration || resolver.isDeclarationVisible(node)) { + // If this node is a computed name, it can only be a symbol, because we've already skipped + // it if it's not a well known symbol. In that case, the text of the name will be exactly + // what we want, namely the name expression enclosed in brackets. writeTextOfNode(currentSourceFile, node.name); // If optional property emit ? if ((node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature) && hasQuestionToken(node)) { @@ -1028,6 +1034,10 @@ module ts { } function emitAccessorDeclaration(node: AccessorDeclaration) { + if (hasComputedNameButNotSymbol(node)) { + return; + } + var accessors = getAllAccessorDeclarations(node.parent, node); if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); @@ -1105,6 +1115,10 @@ module ts { } function emitFunctionDeclaration(node: FunctionLikeDeclaration) { + if (hasComputedNameButNotSymbol(node)) { + return; + } + // If we are emitting Method/Constructor it isn't moduleElement and hence already determined to be emitting // so no need to verify if the declaration is visible if ((node.kind !== SyntaxKind.FunctionDeclaration || resolver.isDeclarationVisible(node)) && diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js new file mode 100644 index 00000000000..bc8b5d0e910 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js @@ -0,0 +1,33 @@ +//// [computedPropertyNamesDeclarationEmit1.ts] +class C { + ["" + ""]() { } + get ["" + ""]() { return 0; } + set ["" + ""](x) { } +} + +//// [computedPropertyNamesDeclarationEmit1.js] +var C = (function () { + function C() { + } + C.prototype["" + ""] = function () { + }; + Object.defineProperty(C.prototype, "" + "", { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C.prototype, "" + "", { + set: function (x) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); + + +//// [computedPropertyNamesDeclarationEmit1.d.ts] +declare class C { +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.types new file mode 100644 index 00000000000..e8e184a652e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1.ts === +class C { +>C : C + + ["" + ""]() { } +>"" + "" : string + + get ["" + ""]() { return 0; } +>"" + "" : string + + set ["" + ""](x) { } +>"" + "" : string +>x : any +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js new file mode 100644 index 00000000000..647f3fab135 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js @@ -0,0 +1,33 @@ +//// [computedPropertyNamesDeclarationEmit2.ts] +class C { + static ["" + ""]() { } + static get ["" + ""]() { return 0; } + static set ["" + ""](x) { } +} + +//// [computedPropertyNamesDeclarationEmit2.js] +var C = (function () { + function C() { + } + C["" + ""] = function () { + }; + Object.defineProperty(C, "" + "", { + get: function () { + return 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(C, "" + "", { + set: function (x) { + }, + enumerable: true, + configurable: true + }); + return C; +})(); + + +//// [computedPropertyNamesDeclarationEmit2.d.ts] +declare class C { +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.types new file mode 100644 index 00000000000..df1da17abea --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2.ts === +class C { +>C : C + + static ["" + ""]() { } +>"" + "" : string + + static get ["" + ""]() { return 0; } +>"" + "" : string + + static set ["" + ""](x) { } +>"" + "" : string +>x : any +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit3.errors.txt b/tests/baselines/reference/computedPropertyNamesDeclarationEmit3.errors.txt new file mode 100644 index 00000000000..69ff2b9e452 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit3.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts(2,5): error TS1169: Computed property names are not allowed in interfaces. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts (1 errors) ==== + interface I { + ["" + ""](): void; + ~~~~~~~~~ +!!! error TS1169: Computed property names are not allowed in interfaces. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit4.errors.txt b/tests/baselines/reference/computedPropertyNamesDeclarationEmit4.errors.txt new file mode 100644 index 00000000000..53eb057f8a1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit4.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts(2,5): error TS1170: Computed property names are not allowed in type literals. + + +==== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts (1 errors) ==== + var v: { + ["" + ""](): void; + ~~~~~~~~~ +!!! error TS1170: Computed property names are not allowed in type literals. + } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js new file mode 100644 index 00000000000..d7ac3319eca --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js @@ -0,0 +1,23 @@ +//// [computedPropertyNamesDeclarationEmit5.ts] +var v = { + ["" + ""]: 0, + ["" + ""]() { }, + get ["" + ""]() { return 0; }, + set ["" + ""](x) { } +} + +//// [computedPropertyNamesDeclarationEmit5.js] +var v = { + ["" + ""]: 0, + ["" + ""]() { + }, + get ["" + ""]() { + return 0; + }, + set ["" + ""](x) { + } +}; + + +//// [computedPropertyNamesDeclarationEmit5.d.ts] +declare var v: {}; diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.types new file mode 100644 index 00000000000..c63d6d0d5c3 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5.ts === +var v = { +>v : {} +>{ ["" + ""]: 0, ["" + ""]() { }, get ["" + ""]() { return 0; }, set ["" + ""](x) { }} : {} + + ["" + ""]: 0, +>"" + "" : string + + ["" + ""]() { }, +>"" + "" : string + + get ["" + ""]() { return 0; }, +>"" + "" : string + + set ["" + ""](x) { } +>"" + "" : string +>x : any +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1.ts new file mode 100644 index 00000000000..100c68653c3 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1.ts @@ -0,0 +1,7 @@ +// @target: es6 +// @declaration: true +class C { + ["" + ""]() { } + get ["" + ""]() { return 0; } + set ["" + ""](x) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2.ts new file mode 100644 index 00000000000..2f353b854cd --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2.ts @@ -0,0 +1,7 @@ +// @target: es6 +// @declaration: true +class C { + static ["" + ""]() { } + static get ["" + ""]() { return 0; } + static set ["" + ""](x) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts new file mode 100644 index 00000000000..041a2f153e7 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit3.ts @@ -0,0 +1,5 @@ +// @target: es6 +// @declaration: true +interface I { + ["" + ""](): void; +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts new file mode 100644 index 00000000000..59a5fe71267 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit4.ts @@ -0,0 +1,5 @@ +// @target: es6 +// @declaration: true +var v: { + ["" + ""](): void; +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5.ts new file mode 100644 index 00000000000..3f24075abbf --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5.ts @@ -0,0 +1,8 @@ +// @target: es6 +// @declaration: true +var v = { + ["" + ""]: 0, + ["" + ""]() { }, + get ["" + ""]() { return 0; }, + set ["" + ""](x) { } +} \ No newline at end of file From 96f8d6273e090846bace7e9d5eb6fe822882d7d3 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Wed, 21 Jan 2015 10:06:13 -0800 Subject: [PATCH 067/211] Missed a file --- tests/baselines/reference/elaboratedErrors.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/baselines/reference/elaboratedErrors.js diff --git a/tests/baselines/reference/elaboratedErrors.js b/tests/baselines/reference/elaboratedErrors.js new file mode 100644 index 00000000000..c245c1a8562 --- /dev/null +++ b/tests/baselines/reference/elaboratedErrors.js @@ -0,0 +1,45 @@ +//// [elaboratedErrors.ts] +interface FileSystem { + read: number; +} + +function fn(s: WorkerFS): void; +function fn(s: FileSystem): void; +function fn(s: FileSystem|WorkerFS) { } + +// This should issue a large error, not a small one +class WorkerFS implements FileSystem { + read: string; +} + +interface Alpha { x: string; } +interface Beta { y: number; } +var x: Alpha; +var y: Beta; + +// Only one of these errors should be large +x = y; +x = y; + +// Only one of these errors should be large +y = x; +y = x; + + +//// [elaboratedErrors.js] +function fn(s) { +} +// This should issue a large error, not a small one +var WorkerFS = (function () { + function WorkerFS() { + } + return WorkerFS; +})(); +var x; +var y; +// Only one of these errors should be large +x = y; +x = y; +// Only one of these errors should be large +y = x; +y = x; From de5aa6c0d2e8f4fe5920d8559f797e6d6d706e7f Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 21 Jan 2015 11:01:05 -0800 Subject: [PATCH 068/211] Fix source map scope name for computed properties --- src/compiler/emitter.ts | 16 ++- .../computedPropertyNamesSourceMap1.js | 17 +++ .../computedPropertyNamesSourceMap1.js.map | 2 + ...putedPropertyNamesSourceMap1.sourcemap.txt | 114 ++++++++++++++++++ .../computedPropertyNamesSourceMap1.types | 8 ++ .../computedPropertyNamesSourceMap2.js | 14 +++ .../computedPropertyNamesSourceMap2.js.map | 2 + ...putedPropertyNamesSourceMap2.sourcemap.txt | 73 +++++++++++ .../computedPropertyNamesSourceMap2.types | 9 ++ .../computedPropertyNamesSourceMap1.ts | 7 ++ .../computedPropertyNamesSourceMap2.ts | 7 ++ 11 files changed, 266 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap1.js create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap1.js.map create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap1.sourcemap.txt create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap1.types create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap2.js create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap2.js.map create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap2.sourcemap.txt create mode 100644 tests/baselines/reference/computedPropertyNamesSourceMap2.types create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.ts diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 7c457126f19..348f3037324 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1734,7 +1734,14 @@ module ts { if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - scopeName = sourceMapData.sourceMapNames[parentIndex] + "." + scopeName; + // Child scopes are always shown with a dot (even if they have no name), + // unless it is a computed property. Then it is shown with brackets, + // but the brackets are included in the name. + var name = (node).name; + if (!name || name.kind !== SyntaxKind.ComputedPropertyName) { + scopeName = "." + scopeName; + } + scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; } scopeNameIndex = getProperty(sourceMapNameIndexMap, scopeName); @@ -1762,8 +1769,11 @@ module ts { node.kind === SyntaxKind.EnumDeclaration) { // Declaration and has associated name use it if ((node).name) { - // TODO(jfreeman): Ask shkamat about what this name should be for source maps - scopeName = ((node).name).text; + var name = (node).name; + // For computed property names, the text will include the brackets + scopeName = name.kind === SyntaxKind.ComputedPropertyName + ? getTextOfNode(name) + : ((node).name).text; } recordScopeNameStart(scopeName); } diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1.js b/tests/baselines/reference/computedPropertyNamesSourceMap1.js new file mode 100644 index 00000000000..b65e3f0ce5b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1.js @@ -0,0 +1,17 @@ +//// [computedPropertyNamesSourceMap1.ts] +class C { + ["hello"]() { + debugger; + } +} + +//// [computedPropertyNamesSourceMap1.js] +var C = (function () { + function C() { + } + C.prototype["hello"] = function () { + debugger; + }; + return C; +})(); +//# sourceMappingURL=computedPropertyNamesSourceMap1.js.map \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1.js.map b/tests/baselines/reference/computedPropertyNamesSourceMap1.js.map new file mode 100644 index 00000000000..5833df72f7f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1.js.map @@ -0,0 +1,2 @@ +//// [computedPropertyNamesSourceMap1.js.map] +{"version":3,"file":"computedPropertyNamesSourceMap1.js","sourceRoot":"","sources":["computedPropertyNamesSourceMap1.ts"],"names":["C","C.constructor","C[\"hello\"]"],"mappings":"AAAA,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAIPC,CAACA;IAHGD,YAACA,OAAOA,CAACA,GAATA;QACIE,QAAQA,CAACA;IACbA,CAACA;IACLF,QAACA;AAADA,CAACA,AAJD,IAIC"} \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1.sourcemap.txt b/tests/baselines/reference/computedPropertyNamesSourceMap1.sourcemap.txt new file mode 100644 index 00000000000..e806eee1aa7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1.sourcemap.txt @@ -0,0 +1,114 @@ +=================================================================== +JsFile: computedPropertyNamesSourceMap1.js +mapUrl: computedPropertyNamesSourceMap1.js.map +sourceRoot: +sources: computedPropertyNamesSourceMap1.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.js +sourceFile:computedPropertyNamesSourceMap1.ts +------------------------------------------------------------------- +>>>var C = (function () { +1 > +2 >^^^^ +3 > ^ +4 > ^^^^^^^^^^^^^^-> +1 > +2 >class +3 > C +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(1, 7) + SourceIndex(0) +3 >Emitted(1, 6) Source(1, 8) + SourceIndex(0) +--- +>>> function C() { +1->^^^^ +2 > ^^^^^^^^^ +3 > ^ +1-> +2 > class +3 > C +1->Emitted(2, 5) Source(1, 1) + SourceIndex(0) name (C) +2 >Emitted(2, 14) Source(1, 7) + SourceIndex(0) name (C) +3 >Emitted(2, 15) Source(1, 8) + SourceIndex(0) name (C) +--- +>>> } +1 >^^^^ +2 > ^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > { + > ["hello"]() { + > debugger; + > } + > +2 > } +1 >Emitted(3, 5) Source(5, 1) + SourceIndex(0) name (C.constructor) +2 >Emitted(3, 6) Source(5, 2) + SourceIndex(0) name (C.constructor) +--- +>>> C.prototype["hello"] = function () { +1->^^^^ +2 > ^^^^^^^^^^^^ +3 > ^^^^^^^ +4 > ^ +5 > ^^^ +1-> +2 > [ +3 > "hello" +4 > ] +5 > +1->Emitted(4, 5) Source(2, 5) + SourceIndex(0) name (C) +2 >Emitted(4, 17) Source(2, 6) + SourceIndex(0) name (C) +3 >Emitted(4, 24) Source(2, 13) + SourceIndex(0) name (C) +4 >Emitted(4, 25) Source(2, 14) + SourceIndex(0) name (C) +5 >Emitted(4, 28) Source(2, 5) + SourceIndex(0) name (C) +--- +>>> debugger; +1 >^^^^^^^^ +2 > ^^^^^^^^ +3 > ^ +1 >["hello"]() { + > +2 > debugger +3 > ; +1 >Emitted(5, 9) Source(3, 9) + SourceIndex(0) name (C["hello"]) +2 >Emitted(5, 17) Source(3, 17) + SourceIndex(0) name (C["hello"]) +3 >Emitted(5, 18) Source(3, 18) + SourceIndex(0) name (C["hello"]) +--- +>>> }; +1 >^^^^ +2 > ^ +3 > ^^^^^^^^^-> +1 > + > +2 > } +1 >Emitted(6, 5) Source(4, 5) + SourceIndex(0) name (C["hello"]) +2 >Emitted(6, 6) Source(4, 6) + SourceIndex(0) name (C["hello"]) +--- +>>> return C; +1->^^^^ +2 > ^^^^^^^^ +1-> + > +2 > } +1->Emitted(7, 5) Source(5, 1) + SourceIndex(0) name (C) +2 >Emitted(7, 13) Source(5, 2) + SourceIndex(0) name (C) +--- +>>>})(); +1 > +2 >^ +3 > +4 > ^^^^ +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > +2 >} +3 > +4 > class C { + > ["hello"]() { + > debugger; + > } + > } +1 >Emitted(8, 1) Source(5, 1) + SourceIndex(0) name (C) +2 >Emitted(8, 2) Source(5, 2) + SourceIndex(0) name (C) +3 >Emitted(8, 2) Source(1, 1) + SourceIndex(0) +4 >Emitted(8, 6) Source(5, 2) + SourceIndex(0) +--- +>>>//# sourceMappingURL=computedPropertyNamesSourceMap1.js.map \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1.types b/tests/baselines/reference/computedPropertyNamesSourceMap1.types new file mode 100644 index 00000000000..54a2a9f19d0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1.types @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.ts === +class C { +>C : C + + ["hello"]() { + debugger; + } +} diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2.js b/tests/baselines/reference/computedPropertyNamesSourceMap2.js new file mode 100644 index 00000000000..d967cb0d468 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2.js @@ -0,0 +1,14 @@ +//// [computedPropertyNamesSourceMap2.ts] +var v = { + ["hello"]() { + debugger; + } +} + +//// [computedPropertyNamesSourceMap2.js] +var v = { + ["hello"]() { + debugger; + } +}; +//# sourceMappingURL=computedPropertyNamesSourceMap2.js.map \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2.js.map b/tests/baselines/reference/computedPropertyNamesSourceMap2.js.map new file mode 100644 index 00000000000..6c485c24f6f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2.js.map @@ -0,0 +1,2 @@ +//// [computedPropertyNamesSourceMap2.js.map] +{"version":3,"file":"computedPropertyNamesSourceMap2.js","sourceRoot":"","sources":["computedPropertyNamesSourceMap2.ts"],"names":["[\"hello\"]"],"mappings":"AAAA,IAAI,CAAC,GAAG;IACJ,CAAC,OAAO,CAAC;QACLA,QAAQA,CAACA;IACbA,CAACA;CACJ,CAAA"} \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2.sourcemap.txt b/tests/baselines/reference/computedPropertyNamesSourceMap2.sourcemap.txt new file mode 100644 index 00000000000..29f11b95e1f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2.sourcemap.txt @@ -0,0 +1,73 @@ +=================================================================== +JsFile: computedPropertyNamesSourceMap2.js +mapUrl: computedPropertyNamesSourceMap2.js.map +sourceRoot: +sources: computedPropertyNamesSourceMap2.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.js +sourceFile:computedPropertyNamesSourceMap2.ts +------------------------------------------------------------------- +>>>var v = { +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^^^^^^^^^-> +1 > +2 >var +3 > v +4 > = +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(1, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(1, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(1, 9) + SourceIndex(0) +--- +>>> ["hello"]() { +1->^^^^ +2 > ^ +3 > ^^^^^^^ +4 > ^ +5 > ^^^^^-> +1->{ + > +2 > [ +3 > "hello" +4 > ] +1->Emitted(2, 5) Source(2, 5) + SourceIndex(0) +2 >Emitted(2, 6) Source(2, 6) + SourceIndex(0) +3 >Emitted(2, 13) Source(2, 13) + SourceIndex(0) +4 >Emitted(2, 14) Source(2, 14) + SourceIndex(0) +--- +>>> debugger; +1->^^^^^^^^ +2 > ^^^^^^^^ +3 > ^ +1->() { + > +2 > debugger +3 > ; +1->Emitted(3, 9) Source(3, 9) + SourceIndex(0) name (["hello"]) +2 >Emitted(3, 17) Source(3, 17) + SourceIndex(0) name (["hello"]) +3 >Emitted(3, 18) Source(3, 18) + SourceIndex(0) name (["hello"]) +--- +>>> } +1 >^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(4, 5) Source(4, 5) + SourceIndex(0) name (["hello"]) +2 >Emitted(4, 6) Source(4, 6) + SourceIndex(0) name (["hello"]) +--- +>>>}; +1 >^ +2 > ^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + >} +2 > +1 >Emitted(5, 2) Source(5, 2) + SourceIndex(0) +2 >Emitted(5, 3) Source(5, 2) + SourceIndex(0) +--- +>>>//# sourceMappingURL=computedPropertyNamesSourceMap2.js.map \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2.types b/tests/baselines/reference/computedPropertyNamesSourceMap2.types new file mode 100644 index 00000000000..972259eb3e2 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.ts === +var v = { +>v : {} +>{ ["hello"]() { debugger; }} : {} + + ["hello"]() { + debugger; + } +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.ts new file mode 100644 index 00000000000..73d9dc215d9 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1.ts @@ -0,0 +1,7 @@ +// @target: es6 +// @sourceMap: true +class C { + ["hello"]() { + debugger; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.ts new file mode 100644 index 00000000000..fc7f4fcb39d --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2.ts @@ -0,0 +1,7 @@ +// @target: es6 +// @sourceMap: true +var v = { + ["hello"]() { + debugger; + } +} \ No newline at end of file From 768d818d27d06cc62214cac54b74d110053fde2e Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 21 Jan 2015 15:05:19 -0800 Subject: [PATCH 069/211] Fix error message wording --- src/compiler/checker.ts | 2 +- src/compiler/diagnosticInformationMap.generated.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- tests/baselines/reference/computedPropertyNames32.errors.txt | 4 ++-- tests/baselines/reference/computedPropertyNames35.errors.txt | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fb4a02cb563..3c8696d31e7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -342,7 +342,7 @@ module ts { if (grandparent.kind === SyntaxKind.ClassDeclaration || grandparent.kind === SyntaxKind.InterfaceDeclaration) { // A reference to this grandparent's type parameters would be an error if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & SymbolFlags.Type)) { - error(errorLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_contained_type); + error(errorLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); return undefined; } } diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 036d1840cdc..f333520733e 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -302,7 +302,7 @@ module ts { A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', or 'any'." }, this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_contained_type: { code: 2466, category: DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its contained type." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its containing type." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 94a448e7860..49ee8eebcd9 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1302,7 +1302,7 @@ "category": "Error", "code": 2466 }, - "A computed property name cannot reference a type parameter from its contained type.": { + "A computed property name cannot reference a type parameter from its containing type.": { "category": "Error", "code": 2466 }, diff --git a/tests/baselines/reference/computedPropertyNames32.errors.txt b/tests/baselines/reference/computedPropertyNames32.errors.txt index 8a7b0995153..e2f08c79fc9 100644 --- a/tests/baselines/reference/computedPropertyNames32.errors.txt +++ b/tests/baselines/reference/computedPropertyNames32.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts(6,10): error TS2466: A computed property name cannot reference a type parameter from its contained type. +tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts(6,10): error TS2466: A computed property name cannot reference a type parameter from its containing type. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts (1 errors) ==== @@ -9,5 +9,5 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames32.ts(6,10): } [foo()]() { } ~ -!!! error TS2466: A computed property name cannot reference a type parameter from its contained type. +!!! error TS2466: A computed property name cannot reference a type parameter from its containing type. } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames35.errors.txt b/tests/baselines/reference/computedPropertyNames35.errors.txt index 665831d6382..01c4614e84a 100644 --- a/tests/baselines/reference/computedPropertyNames35.errors.txt +++ b/tests/baselines/reference/computedPropertyNames35.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,5): error TS1169: Computed property names are not allowed in interfaces. -tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,10): error TS2466: A computed property name cannot reference a type parameter from its contained type. +tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,10): error TS2466: A computed property name cannot reference a type parameter from its containing type. ==== tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts (2 errors) ==== @@ -10,5 +10,5 @@ tests/cases/conformance/es6/computedProperties/computedPropertyNames35.ts(4,10): ~~~~~~~~~~ !!! error TS1169: Computed property names are not allowed in interfaces. ~ -!!! error TS2466: A computed property name cannot reference a type parameter from its contained type. +!!! error TS2466: A computed property name cannot reference a type parameter from its containing type. } \ No newline at end of file From f7a8ba28ff3428deec837e81e0ac6667694961ce Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 21 Jan 2015 17:01:42 -0800 Subject: [PATCH 070/211] Use isTypeOfKind in computed property checks --- src/compiler/checker.ts | 6 ++- .../computedPropertyNames15.errors.txt | 5 +- .../reference/computedPropertyNames46.js | 9 ++++ .../reference/computedPropertyNames46.types | 9 ++++ .../reference/computedPropertyNames47.js | 19 ++++++++ .../reference/computedPropertyNames47.types | 23 +++++++++ .../reference/computedPropertyNames48.js | 34 ++++++++++++++ .../reference/computedPropertyNames48.types | 47 +++++++++++++++++++ .../computedPropertyNames6.errors.txt | 5 +- .../computedPropertyNames7.errors.txt | 12 ----- .../reference/computedPropertyNames7.types | 16 +++++++ .../computedPropertyNames46.ts | 4 ++ .../computedPropertyNames47.ts | 6 +++ .../computedPropertyNames48.ts | 18 +++++++ 14 files changed, 191 insertions(+), 22 deletions(-) create mode 100644 tests/baselines/reference/computedPropertyNames46.js create mode 100644 tests/baselines/reference/computedPropertyNames46.types create mode 100644 tests/baselines/reference/computedPropertyNames47.js create mode 100644 tests/baselines/reference/computedPropertyNames47.types create mode 100644 tests/baselines/reference/computedPropertyNames48.js create mode 100644 tests/baselines/reference/computedPropertyNames48.types delete mode 100644 tests/baselines/reference/computedPropertyNames7.errors.txt create mode 100644 tests/baselines/reference/computedPropertyNames7.types create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames46.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames47.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNames48.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 205c280ee95..d50d8eb89d1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5383,7 +5383,9 @@ module ts { } function isNumericComputedName(name: ComputedPropertyName): boolean { - return !!(checkExpression(name.expression).flags & TypeFlags.Number); + // It seems odd to consider an expression of type Any to result in a numeric name, + // but this behavior is consistent with checkIndexedAccess + return isTypeOfKind(checkExpression(name.expression), TypeFlags.Any | TypeFlags.NumberLike); } function isNumericLiteralName(name: string) { @@ -5419,7 +5421,7 @@ module ts { // This will only allow types number, string, or any. Any types more complex will // be disallowed, even union types like string | number. In the future, we might consider // allowing types like that. - if ((links.resolvedType.flags & (TypeFlags.Number | TypeFlags.String | TypeFlags.Any)) === 0) { + if (!isTypeOfKind(links.resolvedType, TypeFlags.Any | TypeFlags.NumberLike | TypeFlags.StringLike)) { error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); } } diff --git a/tests/baselines/reference/computedPropertyNames15.errors.txt b/tests/baselines/reference/computedPropertyNames15.errors.txt index 69d997d7737..0e759668a95 100644 --- a/tests/baselines/reference/computedPropertyNames15.errors.txt +++ b/tests/baselines/reference/computedPropertyNames15.errors.txt @@ -1,16 +1,13 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(6,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts (3 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames15.ts (2 errors) ==== var p1: number | string; var p2: number | number[]; var p3: string | boolean; class C { [p1]() { } - ~~~~ -!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p2]() { } ~~~~ !!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. diff --git a/tests/baselines/reference/computedPropertyNames46.js b/tests/baselines/reference/computedPropertyNames46.js new file mode 100644 index 00000000000..e2ef2b2e729 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames46.js @@ -0,0 +1,9 @@ +//// [computedPropertyNames46.ts] +var o = { + ["" || 0]: 0 +}; + +//// [computedPropertyNames46.js] +var o = { + ["" || 0]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames46.types b/tests/baselines/reference/computedPropertyNames46.types new file mode 100644 index 00000000000..cf8585828f4 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames46.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames46.ts === +var o = { +>o : {} +>{ ["" || 0]: 0} : {} + + ["" || 0]: 0 +>"" || 0 : string | number + +}; diff --git a/tests/baselines/reference/computedPropertyNames47.js b/tests/baselines/reference/computedPropertyNames47.js new file mode 100644 index 00000000000..88e28e54239 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames47.js @@ -0,0 +1,19 @@ +//// [computedPropertyNames47.ts] +enum E1 { x } +enum E2 { x } +var o = { + [E1.x || E2.x]: 0 +}; + +//// [computedPropertyNames47.js] +var E1; +(function (E1) { + E1[E1["x"] = 0] = "x"; +})(E1 || (E1 = {})); +var E2; +(function (E2) { + E2[E2["x"] = 0] = "x"; +})(E2 || (E2 = {})); +var o = { + [0 /* x */ || 0 /* x */]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames47.types b/tests/baselines/reference/computedPropertyNames47.types new file mode 100644 index 00000000000..20d7ab1d31e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames47.types @@ -0,0 +1,23 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames47.ts === +enum E1 { x } +>E1 : E1 +>x : E1 + +enum E2 { x } +>E2 : E2 +>x : E2 + +var o = { +>o : {} +>{ [E1.x || E2.x]: 0} : {} + + [E1.x || E2.x]: 0 +>E1.x || E2.x : E1 | E2 +>E1.x : E1 +>E1 : typeof E1 +>x : E1 +>E2.x : E2 +>E2 : typeof E2 +>x : E2 + +}; diff --git a/tests/baselines/reference/computedPropertyNames48.js b/tests/baselines/reference/computedPropertyNames48.js new file mode 100644 index 00000000000..9f8e0442ebe --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames48.js @@ -0,0 +1,34 @@ +//// [computedPropertyNames48.ts] +declare function extractIndexer(p: { [n: number]: T }): T; + +enum E { x } + +var a: any; + +extractIndexer({ + [a]: "" +}); // Should return string + +extractIndexer({ + [E.x]: "" +}); // Should return string + +extractIndexer({ + ["" || 0]: "" +}); // Should return any (widened form of undefined) + +//// [computedPropertyNames48.js] +var E; +(function (E) { + E[E["x"] = 0] = "x"; +})(E || (E = {})); +var a; +extractIndexer({ + [a]: "" +}); // Should return string +extractIndexer({ + [0 /* x */]: "" +}); // Should return string +extractIndexer({ + ["" || 0]: "" +}); // Should return any (widened form of undefined) diff --git a/tests/baselines/reference/computedPropertyNames48.types b/tests/baselines/reference/computedPropertyNames48.types new file mode 100644 index 00000000000..78755d5d5d7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames48.types @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48.ts === +declare function extractIndexer(p: { [n: number]: T }): T; +>extractIndexer : (p: { [n: number]: T; }) => T +>T : T +>p : { [n: number]: T; } +>n : number +>T : T +>T : T + +enum E { x } +>E : E +>x : E + +var a: any; +>a : any + +extractIndexer({ +>extractIndexer({ [a]: ""}) : string +>extractIndexer : (p: { [n: number]: T; }) => T +>{ [a]: ""} : { [x: number]: string; } + + [a]: "" +>a : any + +}); // Should return string + +extractIndexer({ +>extractIndexer({ [E.x]: ""}) : string +>extractIndexer : (p: { [n: number]: T; }) => T +>{ [E.x]: ""} : { [x: number]: string; } + + [E.x]: "" +>E.x : E +>E : typeof E +>x : E + +}); // Should return string + +extractIndexer({ +>extractIndexer({ ["" || 0]: ""}) : any +>extractIndexer : (p: { [n: number]: T; }) => T +>{ ["" || 0]: ""} : { [x: number]: undefined; } + + ["" || 0]: "" +>"" || 0 : string | number + +}); // Should return any (widened form of undefined) diff --git a/tests/baselines/reference/computedPropertyNames6.errors.txt b/tests/baselines/reference/computedPropertyNames6.errors.txt index 100afc85992..57798e9f6b6 100644 --- a/tests/baselines/reference/computedPropertyNames6.errors.txt +++ b/tests/baselines/reference/computedPropertyNames6.errors.txt @@ -1,16 +1,13 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(6,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts(7,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts (3 errors) ==== +==== tests/cases/conformance/es6/computedProperties/computedPropertyNames6.ts (2 errors) ==== var p1: number | string; var p2: number | number[]; var p3: string | boolean; var v = { [p1]: 0, - ~~~~ -!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. [p2]: 1, ~~~~ !!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. diff --git a/tests/baselines/reference/computedPropertyNames7.errors.txt b/tests/baselines/reference/computedPropertyNames7.errors.txt deleted file mode 100644 index e98be616a3a..00000000000 --- a/tests/baselines/reference/computedPropertyNames7.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts(5,5): error TS2464: A computed property name must be of type 'string', 'number', or 'any'. - - -==== tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts (1 errors) ==== - enum E { - member - } - var v = { - [E.member]: 0 - ~~~~~~~~~~ -!!! error TS2464: A computed property name must be of type 'string', 'number', or 'any'. - } \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNames7.types b/tests/baselines/reference/computedPropertyNames7.types new file mode 100644 index 00000000000..0b5f26614fc --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames7.types @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames7.ts === +enum E { +>E : E + + member +>member : E +} +var v = { +>v : {} +>{ [E.member]: 0} : {} + + [E.member]: 0 +>E.member : E +>E : typeof E +>member : E +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames46.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames46.ts new file mode 100644 index 00000000000..219324dc153 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames46.ts @@ -0,0 +1,4 @@ +// @target: es6 +var o = { + ["" || 0]: 0 +}; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames47.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames47.ts new file mode 100644 index 00000000000..724536c90e8 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames47.ts @@ -0,0 +1,6 @@ +// @target: es6 +enum E1 { x } +enum E2 { x } +var o = { + [E1.x || E2.x]: 0 +}; \ No newline at end of file diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNames48.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNames48.ts new file mode 100644 index 00000000000..3a156aa480e --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNames48.ts @@ -0,0 +1,18 @@ +// @target: es6 +declare function extractIndexer(p: { [n: number]: T }): T; + +enum E { x } + +var a: any; + +extractIndexer({ + [a]: "" +}); // Should return string + +extractIndexer({ + [E.x]: "" +}); // Should return string + +extractIndexer({ + ["" || 0]: "" +}); // Should return any (widened form of undefined) \ No newline at end of file From 12fc41843b7d77c2d56ebdb5c3053a375cc8571a Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Wed, 21 Jan 2015 17:05:32 -0800 Subject: [PATCH 071/211] Make isNumericComputedName call checkComputedPropertyName --- 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 d50d8eb89d1..feaeff75e8f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5385,7 +5385,7 @@ module ts { function isNumericComputedName(name: ComputedPropertyName): boolean { // It seems odd to consider an expression of type Any to result in a numeric name, // but this behavior is consistent with checkIndexedAccess - return isTypeOfKind(checkExpression(name.expression), TypeFlags.Any | TypeFlags.NumberLike); + return isTypeOfKind(checkComputedPropertyName(name), TypeFlags.Any | TypeFlags.NumberLike); } function isNumericLiteralName(name: string) { From e4a24e97a3b6063019049f44352bbe68d297c998 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Wed, 21 Jan 2015 17:43:13 -0800 Subject: [PATCH 072/211] Builder implementation for properties and parameters inlcuding tests. --- src/services/services.ts | 83 +++++++++++-------- ...dentifierDefinitionLocations_parameters.ts | 8 +- ...dentifierDefinitionLocations_properties.ts | 38 +++++++++ ...mpletionListBuilderLocations_properties.ts | 16 ++++ 4 files changed, 109 insertions(+), 36 deletions(-) create mode 100644 tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts create mode 100644 tests/cases/fourslash/completionListBuilderLocations_properties.ts diff --git a/src/services/services.ts b/src/services/services.ts index bbd297a3940..0bfbd46f217 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -407,7 +407,7 @@ module ts { return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || - isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); } function isParamTag(pos: number, end: number, sourceFile: SourceFile) { @@ -798,7 +798,7 @@ module ts { if ((node).name) { namedDeclarations.push(node); } - // fall through + // fall through case SyntaxKind.Constructor: case SyntaxKind.VariableStatement: case SyntaxKind.VariableDeclarationList: @@ -819,7 +819,7 @@ module ts { if (!(node.flags & NodeFlags.AccessibilityModifier)) { break; } - // fall through + // fall through case SyntaxKind.VariableDeclaration: case SyntaxKind.BindingElement: if (isBindingPattern((node).name)) { @@ -852,13 +852,13 @@ module ts { // export interface LanguageServiceHost extends Logger { getCompilationSettings(): CompilerOptions; - getNewLine?(): string; + getNewLine? (): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): IScriptSnapshot; - getLocalizedDiagnosticMessages?(): any; - getCancellationToken?(): CancellationToken; + getLocalizedDiagnosticMessages? (): any; + getCancellationToken? (): CancellationToken; getCurrentDirectory(): string; getDefaultLibFilename(options: CompilerOptions): string; } @@ -890,7 +890,7 @@ module ts { getRenameInfo(fileName: string, position: number): RenameInfo; findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; - + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; @@ -913,7 +913,7 @@ module ts { dispose(): void; } - + export interface ClassifiedSpan { textSpan: TextSpan; classificationType: string; // ClassificationTypeNames @@ -1024,7 +1024,7 @@ module ts { text: string; kind: string; } - + export interface QuickInfo { kind: string; kindModifiers: string; @@ -1542,7 +1542,7 @@ module ts { sourceFile.version = version; sourceFile.isOpen = isOpen; sourceFile.scriptSnapshot = scriptSnapshot; - } + } export function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, isOpen: boolean, setNodeParents: boolean): SourceFile { var sourceFile = createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); @@ -1862,7 +1862,7 @@ module ts { // The position has to be: 1. in the leading trivia (before token.getStart()), and 2. within a comment return position <= token.getStart(sourceFile) && (isInsideCommentRange(getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || - isInsideCommentRange(getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + isInsideCommentRange(getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); function isInsideCommentRange(comments: CommentRange[]): boolean { return forEach(comments, comment => { @@ -1904,7 +1904,7 @@ module ts { } // A cache of completion entries for keywords, these do not change between sessions - var keywordCompletions:CompletionEntry[] = []; + var keywordCompletions: CompletionEntry[] = []; for (var i = SyntaxKind.FirstKeyword; i <= SyntaxKind.LastKeyword; i++) { keywordCompletions.push({ name: tokenToString(i), @@ -2372,8 +2372,6 @@ module ts { function isCompletionListBuilder(previousToken: Node): boolean { if (previousToken) { var containingNodeKind = previousToken.parent.kind; - // identifiers in method/function calls - // variable declarations switch (previousToken.kind) { case SyntaxKind.CommaToken: return containingNodeKind === SyntaxKind.CallExpression @@ -2385,6 +2383,20 @@ module ts { return true; case SyntaxKind.DotToken: return containingNodeKind === SyntaxKind.ModuleDeclaration; + case SyntaxKind.OpenBraceToken: + return containingNodeKind === SyntaxKind.ClassDeclaration; + case SyntaxKind.PublicKeyword: + case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: + return containingNodeKind === SyntaxKind.PropertyDeclaration; + } + + // Previous token may have been a keyword that was converted to an identifier. + switch (previousToken.getText()) { + case "public": + case "protected": + case "private": + return true; } } @@ -2457,16 +2469,16 @@ module ts { containingNodeKind === SyntaxKind.VariableStatement || containingNodeKind === SyntaxKind.EnumDeclaration || // enum a { foo, | isFunction(containingNodeKind) || - containingNodeKind === SyntaxKind.ClassDeclaration || // class A 0 && !classifyKeywordsInGenerics) { // If it looks like we're could be in something generic, don't classify this // as a keyword. We may just get overwritten by the syntactic classifier, diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts index cb1b7592518..10293c41a64 100644 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_parameters.ts @@ -14,11 +14,13 @@ ////class bar6{ constructor(public a/*constructorParamter2*/ -////class bar7{ constructor(private a/*constructorParamter3*/ +////class bar7{ constructor(protected a/*constructorParamter3*/ -////class bar8{ constructor(.../*constructorParamter4*/ +////class bar8{ constructor(private a/*constructorParamter4*/ -////class bar9{ constructor(...a/*constructorParamter5*/ +////class bar9{ constructor(.../*constructorParamter5*/ + +////class bar10{ constructor(...a/*constructorParamter6*/ test.markers().forEach((m) => { diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts new file mode 100644 index 00000000000..f15868d2158 --- /dev/null +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts @@ -0,0 +1,38 @@ +/// + +////var aa = 1; + +////class A1 { +//// /*property1*/ +////} + +////class A2 { +//// p/*property2*/ +////} + +////class A3 { +//// public s/*property3*/ +////} + +////class A4 { +//// a/*property4*/ +////} + +////class A5 { +//// public a/*property5*/ +////} + +////class A6 { +//// protected a/*property6*/ +////} + +////class A7 { +//// private a/*property7*/ +////} + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + debugger; + verify.not.completionListIsEmpty(); + verify.completionListIsBuilder(); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionListBuilderLocations_properties.ts b/tests/cases/fourslash/completionListBuilderLocations_properties.ts new file mode 100644 index 00000000000..287ffd6746b --- /dev/null +++ b/tests/cases/fourslash/completionListBuilderLocations_properties.ts @@ -0,0 +1,16 @@ +/// + +////var aa = 1; + +////class A1 { +//// public static /*property1*/ +////} + +////class A2 { +//// public static a/*property2*/ +////} + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +}); \ No newline at end of file From e15f9349f9b4237c336a8c50d8b188f94fb22af0 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Thu, 22 Jan 2015 11:10:12 -0800 Subject: [PATCH 073/211] moved all methods of SourceFile to the part exposed on the services layer --- src/services/services.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 1b94899a1f5..55aa3d7b7cc 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -64,6 +64,8 @@ module ts { getLineAndCharacterFromPosition(pos: number): LineAndCharacter; getLineStarts(): number[]; getPositionFromLineAndCharacter(line: number, character: number): number; + getSyntacticDiagnostics(): Diagnostic[]; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; } /** @@ -729,10 +731,6 @@ module ts { public statements: NodeArray; public endOfFileToken: Node; - // These methods will have their implementation provided by the implementation the - // compiler actually exports off of SourceFile. - public update: (newText: string, textChangeRange: TextChangeRange) => SourceFile; - public amdDependencies: string[]; public amdModuleName: string; public referencedFiles: FileReference[]; @@ -754,6 +752,14 @@ module ts { private namedDeclarations: Declaration[]; + public getSyntacticDiagnostics(): Diagnostic[]{ + return getSyntacticDiagnostics(this); + } + + public update(newText: string, textChangeRange: TextChangeRange): SourceFile { + return updateSourceFile(this, newText, textChangeRange); + } + public getLineAndCharacterFromPosition(position: number): LineAndCharacter { return getLineAndCharacterOfPosition(this, position); } From 54c9e569608467ab7086666e91ab773e04ae5ce8 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Thu, 22 Jan 2015 12:42:48 -0800 Subject: [PATCH 074/211] White space fixes --- src/services/services.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 0bfbd46f217..245ab05afa7 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -852,13 +852,13 @@ module ts { // export interface LanguageServiceHost extends Logger { getCompilationSettings(): CompilerOptions; - getNewLine? (): string; + getNewLine?(): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): IScriptSnapshot; - getLocalizedDiagnosticMessages? (): any; - getCancellationToken? (): CancellationToken; + getLocalizedDiagnosticMessages?(): any; + getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; getDefaultLibFilename(options: CompilerOptions): string; } From 3bb817f00086d404cdd95a936cf6b39bb9c0184a Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Thu, 22 Jan 2015 12:48:27 -0800 Subject: [PATCH 075/211] Clean up after code review, white space etc. --- src/services/services.ts | 69 +++++++++---------- ...dentifierDefinitionLocations_properties.ts | 1 - 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 245ab05afa7..662ae7df102 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2485,7 +2485,7 @@ module ts { return containingNodeKind === SyntaxKind.PropertySignature && previousToken.parent.parent.kind === SyntaxKind.InterfaceDeclaration; // interface a { f; | - case SyntaxKind.FirstBinaryOperator: + case SyntaxKind.LessThanToken: return containingNodeKind === SyntaxKind.ClassDeclaration || // class A< | containingNodeKind === SyntaxKind.FunctionDeclaration || // function A< | containingNodeKind === SyntaxKind.InterfaceDeclaration || // interface A< | @@ -5150,7 +5150,6 @@ module ts { var childNodes = parentElement.getChildren(sourceFile); for (var i = 0, n = childNodes.length; i < n; i++) { - 33 var current = childNodes[i]; if (current.kind === matchKind) { @@ -5175,14 +5174,14 @@ module ts { function getMatchingTokenKind(token: Node): ts.SyntaxKind { switch (token.kind) { - case ts.SyntaxKind.OpenBraceToken: return ts.SyntaxKind.CloseBraceToken - case ts.SyntaxKind.OpenParenToken: return ts.SyntaxKind.CloseParenToken; - case ts.SyntaxKind.OpenBracketToken: return ts.SyntaxKind.CloseBracketToken; - case ts.SyntaxKind.LessThanToken: return ts.SyntaxKind.GreaterThanToken; - case ts.SyntaxKind.CloseBraceToken: return ts.SyntaxKind.OpenBraceToken - case ts.SyntaxKind.CloseParenToken: return ts.SyntaxKind.OpenParenToken; - case ts.SyntaxKind.CloseBracketToken: return ts.SyntaxKind.OpenBracketToken; - case ts.SyntaxKind.GreaterThanToken: return ts.SyntaxKind.LessThanToken; + case ts.SyntaxKind.OpenBraceToken: return ts.SyntaxKind.CloseBraceToken + case ts.SyntaxKind.OpenParenToken: return ts.SyntaxKind.CloseParenToken; + case ts.SyntaxKind.OpenBracketToken: return ts.SyntaxKind.CloseBracketToken; + case ts.SyntaxKind.LessThanToken: return ts.SyntaxKind.GreaterThanToken; + case ts.SyntaxKind.CloseBraceToken: return ts.SyntaxKind.OpenBraceToken + case ts.SyntaxKind.CloseParenToken: return ts.SyntaxKind.OpenParenToken; + case ts.SyntaxKind.CloseBracketToken: return ts.SyntaxKind.OpenBracketToken; + case ts.SyntaxKind.GreaterThanToken: return ts.SyntaxKind.LessThanToken; } return undefined; @@ -5586,41 +5585,41 @@ module ts { if (!isTrivia(token)) { if ((token === SyntaxKind.SlashToken || token === SyntaxKind.SlashEqualsToken) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === SyntaxKind.RegularExpressionLiteral) { - token = SyntaxKind.RegularExpressionLiteral; - } + if (scanner.reScanSlashToken() === SyntaxKind.RegularExpressionLiteral) { + token = SyntaxKind.RegularExpressionLiteral; + } } else if (lastNonTriviaToken === SyntaxKind.DotToken && isKeyword(token)) { - token = SyntaxKind.Identifier; + token = SyntaxKind.Identifier; } else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { - // We have two keywords in a row. Only treat the second as a keyword if - // it's a sequence that could legally occur in the language. Otherwise - // treat it as an identifier. This way, if someone writes "private var" - // we recognize that 'var' is actually an identifier here. - token = SyntaxKind.Identifier; + // We have two keywords in a row. Only treat the second as a keyword if + // it's a sequence that could legally occur in the language. Otherwise + // treat it as an identifier. This way, if someone writes "private var" + // we recognize that 'var' is actually an identifier here. + token = SyntaxKind.Identifier; } else if (lastNonTriviaToken === SyntaxKind.Identifier && - token === SyntaxKind.LessThanToken) { - // Could be the start of something generic. Keep track of that by bumping - // up the current count of generic contexts we may be in. - angleBracketStack++; + token === SyntaxKind.LessThanToken) { + // Could be the start of something generic. Keep track of that by bumping + // up the current count of generic contexts we may be in. + angleBracketStack++; } else if (token === SyntaxKind.GreaterThanToken && angleBracketStack > 0) { - // If we think we're currently in something generic, then mark that that - // generic entity is complete. - angleBracketStack--; + // If we think we're currently in something generic, then mark that that + // generic entity is complete. + angleBracketStack--; } else if (token === SyntaxKind.AnyKeyword || - token === SyntaxKind.StringKeyword || - token === SyntaxKind.NumberKeyword || - token === SyntaxKind.BooleanKeyword) { - if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { - // If it looks like we're could be in something generic, don't classify this - // as a keyword. We may just get overwritten by the syntactic classifier, - // causing a noisy experience for the user. - token = SyntaxKind.Identifier; - } + token === SyntaxKind.StringKeyword || + token === SyntaxKind.NumberKeyword || + token === SyntaxKind.BooleanKeyword) { + if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { + // If it looks like we're could be in something generic, don't classify this + // as a keyword. We may just get overwritten by the syntactic classifier, + // causing a noisy experience for the user. + token = SyntaxKind.Identifier; + } } lastNonTriviaToken = token; diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts index f15868d2158..e709fdfe4ef 100644 --- a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_properties.ts @@ -32,7 +32,6 @@ test.markers().forEach((m) => { goTo.position(m.position, m.fileName); - debugger; verify.not.completionListIsEmpty(); verify.completionListIsBuilder(); }); \ No newline at end of file From d2e96c17791fab2dc7e6ee5c266e32ba64392410 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 22 Jan 2015 14:45:55 -0800 Subject: [PATCH 076/211] Simplify enum emit. --- src/compiler/emitter.ts | 48 +++++++++---------- .../reference/sourceMapValidationEnums.js.map | 2 +- .../sourceMapValidationEnums.sourcemap.txt | 31 ++++++++++-- 3 files changed, 51 insertions(+), 30 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index dafd03717a6..47f75dcf8ad 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3656,7 +3656,7 @@ module ts { write(") {"); increaseIndent(); scopeEmitStart(node); - emitEnumMemberDeclarations(isConstEnum); + emitLines(node.members); decreaseIndent(); writeLine(); emitToken(SyntaxKind.CloseBraceToken, node.members.end); @@ -3678,31 +3678,29 @@ module ts { write(";"); } emitTrailingComments(node); + } - function emitEnumMemberDeclarations(isConstEnum: boolean) { - forEach(node.members, 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 emitEnumMember(node: EnumMember) { + var enumParent = node.parent; + emitLeadingComments(node); + emitStart(node); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + emitExpressionForPropertyName(node.name); + write("] = "); + if (node.initializer && !isConst(enumParent)) { + emit(node.initializer); } + else { + write(resolver.getEnumMemberValue(node).toString()); + } + write("] = "); + emitExpressionForPropertyName(node.name); + emitEnd(node); + write(";"); + emitTrailingComments(node); } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration: ModuleDeclaration): ModuleDeclaration { @@ -4099,6 +4097,8 @@ module ts { return emitInterfaceDeclaration(node); case SyntaxKind.EnumDeclaration: return emitEnumDeclaration(node); + case SyntaxKind.EnumMember: + return emitEnumMember(node); case SyntaxKind.ModuleDeclaration: return emitModuleDeclaration(node); case SyntaxKind.ImportDeclaration: diff --git a/tests/baselines/reference/sourceMapValidationEnums.js.map b/tests/baselines/reference/sourceMapValidationEnums.js.map index 721e0a3b48b..1627788c6b6 100644 --- a/tests/baselines/reference/sourceMapValidationEnums.js.map +++ b/tests/baselines/reference/sourceMapValidationEnums.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationEnums.js.map] -{"version":3,"file":"sourceMapValidationEnums.js","sourceRoot":"","sources":["sourceMapValidationEnums.ts"],"names":["e","e2","e3"],"mappings":"AAAA,IAAK,CAIJ;AAJD,WAAK,CAAC;IACFA,mBAACA;IACDA,mBAACA;IACDA,mBAACA;AACLA,CAACA,EAJI,CAAC,KAAD,CAAC,QAIL;AACD,IAAK,EAKJ;AALD,WAAK,EAAE;IACHC,aAAIA,EAAEA,OAAAA;IACNA,aAAIA,EAAEA,OAAAA;IACNA,sBAACA;IACDA,wBAAEA;AACNA,CAACA,EALI,EAAE,KAAF,EAAE,QAKN;AACD,IAAK,EACJ;AADD,WAAK,EAAE;AACPC,CAACA,EADI,EAAE,KAAF,EAAE,QACN"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationEnums.js","sourceRoot":"","sources":["sourceMapValidationEnums.ts"],"names":["e","e2","e3"],"mappings":"AAAA,IAAK,CAIJ;AAJD,WAAK,CAAC;IACFA,mBAACA,CAAAA;IACDA,mBAACA,CAAAA;IACDA,mBAACA,CAAAA;AACLA,CAACA,EAJI,CAAC,KAAD,CAAC,QAIL;AACD,IAAK,EAKJ;AALD,WAAK,EAAE;IACHC,aAAIA,EAAEA,OAAAA,CAAAA;IACNA,aAAIA,EAAEA,OAAAA,CAAAA;IACNA,sBAACA,CAAAA;IACDA,wBAAEA,CAAAA;AACNA,CAACA,EALI,EAAE,KAAF,EAAE,QAKN;AACD,IAAK,EACJ;AADD,WAAK,EAAE;AACPC,CAACA,EADI,EAAE,KAAF,EAAE,QACN"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationEnums.sourcemap.txt b/tests/baselines/reference/sourceMapValidationEnums.sourcemap.txt index 18148fc281b..337aa0989d3 100644 --- a/tests/baselines/reference/sourceMapValidationEnums.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationEnums.sourcemap.txt @@ -39,31 +39,40 @@ sourceFile:sourceMapValidationEnums.ts >>> e[e["x"] = 0] = "x"; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^ -3 > ^^-> +3 > ^ +4 > ^-> 1-> { > 2 > x +3 > 1->Emitted(3, 5) Source(2, 5) + SourceIndex(0) name (e) 2 >Emitted(3, 24) Source(2, 6) + SourceIndex(0) name (e) +3 >Emitted(3, 25) Source(2, 6) + SourceIndex(0) name (e) --- >>> e[e["y"] = 1] = "y"; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^ -3 > ^^-> +3 > ^ +4 > ^-> 1->, > 2 > y +3 > 1->Emitted(4, 5) Source(3, 5) + SourceIndex(0) name (e) 2 >Emitted(4, 24) Source(3, 6) + SourceIndex(0) name (e) +3 >Emitted(4, 25) Source(3, 6) + SourceIndex(0) name (e) --- >>> e[e["x"] = 2] = "x"; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^ +3 > ^ 1->, > 2 > x +3 > 1->Emitted(5, 5) Source(4, 5) + SourceIndex(0) name (e) 2 >Emitted(5, 24) Source(4, 6) + SourceIndex(0) name (e) +3 >Emitted(5, 25) Source(4, 6) + SourceIndex(0) name (e) --- >>>})(e || (e = {})); 1 > @@ -128,51 +137,63 @@ sourceFile:sourceMapValidationEnums.ts 2 > ^^^^^^^^^^^^^ 3 > ^^ 4 > ^^^^^^^ -5 > ^^-> +5 > ^ +6 > ^-> 1-> { > 2 > x = 3 > 10 4 > +5 > 1->Emitted(9, 5) Source(7, 5) + SourceIndex(0) name (e2) 2 >Emitted(9, 18) Source(7, 9) + SourceIndex(0) name (e2) 3 >Emitted(9, 20) Source(7, 11) + SourceIndex(0) name (e2) 4 >Emitted(9, 27) Source(7, 11) + SourceIndex(0) name (e2) +5 >Emitted(9, 28) Source(7, 11) + SourceIndex(0) name (e2) --- >>> e2[e2["y"] = 10] = "y"; 1->^^^^ 2 > ^^^^^^^^^^^^^ 3 > ^^ 4 > ^^^^^^^ -5 > ^^-> +5 > ^ +6 > ^-> 1->, > 2 > y = 3 > 10 4 > +5 > 1->Emitted(10, 5) Source(8, 5) + SourceIndex(0) name (e2) 2 >Emitted(10, 18) Source(8, 9) + SourceIndex(0) name (e2) 3 >Emitted(10, 20) Source(8, 11) + SourceIndex(0) name (e2) 4 >Emitted(10, 27) Source(8, 11) + SourceIndex(0) name (e2) +5 >Emitted(10, 28) Source(8, 11) + SourceIndex(0) name (e2) --- >>> e2[e2["z"] = 11] = "z"; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^ -3 > ^^^^-> +3 > ^ +4 > ^^^-> 1->, > 2 > z +3 > 1->Emitted(11, 5) Source(9, 5) + SourceIndex(0) name (e2) 2 >Emitted(11, 27) Source(9, 6) + SourceIndex(0) name (e2) +3 >Emitted(11, 28) Source(9, 6) + SourceIndex(0) name (e2) --- >>> e2[e2["x2"] = 12] = "x2"; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^ +3 > ^ 1->, > 2 > x2 +3 > 1->Emitted(12, 5) Source(10, 5) + SourceIndex(0) name (e2) 2 >Emitted(12, 29) Source(10, 7) + SourceIndex(0) name (e2) +3 >Emitted(12, 30) Source(10, 7) + SourceIndex(0) name (e2) --- >>>})(e2 || (e2 = {})); 1 > From a82289c8b452a156c8819bae56033c758b72fe0a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 22 Jan 2015 15:58:00 -0800 Subject: [PATCH 077/211] Emit comments in a lot more places. --- src/compiler/emitter.ts | 126 +++++++++------ .../reference/arrowFunctionContexts.js | 2 + .../reference/augmentedTypesEnum2.js | 2 +- .../reference/augmentedTypesInterface.js | 2 +- .../reference/augmentedTypesModules.js | 6 +- .../reference/augmentedTypesModules2.js | 8 +- .../commaOperatorOtherValidOperation.js | 1 + .../reference/commentsOnObjectLiteral1.js | 6 +- tests/baselines/reference/commentsVarDecl.js | 4 +- .../reference/constDeclarations-scopes.js | 3 + .../reference/constDeclarations-scopes2.js | 1 + .../constDeclarations-validContexts.js | 3 + .../baselines/reference/escapedIdentifiers.js | 9 +- .../forStatementsMultipleInvalidDecl.js | 1 + .../reference/genericChainedCalls.js | 3 +- ...icitAnyDeclareFunctionWithoutFormalType.js | 8 +- ...itAnyDeclareVariablesWithoutTypeAndInit.js | 2 +- .../baselines/reference/implicitAnyInCatch.js | 1 + .../reference/letDeclarations-scopes.js | 3 + .../letDeclarations-validContexts.js | 4 + .../overEagerReturnTypeSpecialization.js | 6 +- .../reference/parserSbp_7.9_A9_T3.js | 7 + tests/baselines/reference/promiseChaining.js | 2 +- tests/baselines/reference/promiseChaining1.js | 2 +- .../reference/recursiveInitializer.js | 4 +- .../reference/scopingInCatchBlocks.js | 4 +- .../reference/sourceMapValidationClasses.js | 5 +- .../sourceMapValidationClasses.js.map | 2 +- .../sourceMapValidationClasses.sourcemap.txt | 153 ++++++++++-------- .../reference/switchAssignmentCompat.js | 2 +- .../switchCasesExpressionTypeMismatch.js | 9 +- tests/baselines/reference/throwStatements.js | 1 + .../typeGuardsInConditionalExpression.js | 41 +++-- .../typeGuardsInFunctionAndModuleBlock.js | 18 ++- .../reference/typeGuardsInIfStatement.js | 14 +- ...ypeGuardsInRightOperandOfAndAndOperator.js | 21 ++- .../typeGuardsInRightOperandOfOrOrOperator.js | 21 ++- ...eclaratorResolvedDuringContextualTyping.js | 8 +- 38 files changed, 328 insertions(+), 187 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 47f75dcf8ad..e6a44148fe2 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2403,28 +2403,20 @@ module ts { } function emitMethod(node: MethodDeclaration) { - if (!isObjectLiteralMethod(node)) { - return; - } - emitLeadingComments(node); emit(node.name); if (languageVersion < ScriptTarget.ES6) { write(": function "); } emitSignatureAndBody(node); - emitTrailingComments(node); } function emitPropertyAssignment(node: PropertyDeclaration) { - emitLeadingComments(node); emit(node.name); write(": "); emit(node.initializer); - emitTrailingComments(node); } function emitShorthandPropertyAssignment(node: ShorthandPropertyAssignment) { - emitLeadingComments(node); emit(node.name); // If short-hand property has a prefix, then regardless of the target version, we will emit it as normal property assignment. For example: // module m { @@ -2441,7 +2433,6 @@ module ts { // Short-hand, { x }, is equivalent of normal form { x: x } emitExpressionIdentifier(node.name); } - emitTrailingComments(node); } function tryEmitConstantValue(node: PropertyAccessExpression | ElementAccessExpression): boolean { @@ -2661,14 +2652,11 @@ module ts { } function emitExpressionStatement(node: ExpressionStatement) { - emitLeadingComments(node); emitParenthesized(node.expression, /*parenthesized*/ node.expression.kind === SyntaxKind.ArrowFunction); write(";"); - emitTrailingComments(node); } function emitIfStatement(node: IfStatement) { - emitLeadingComments(node); var endPos = emitToken(SyntaxKind.IfKeyword, node.pos); write(" "); endPos = emitToken(SyntaxKind.OpenParenToken, endPos); @@ -2686,7 +2674,6 @@ module ts { emitEmbeddedStatement(node.elseStatement); } } - emitTrailingComments(node); } function emitDoStatement(node: DoStatement) { @@ -2774,11 +2761,9 @@ module ts { } function emitReturnStatement(node: ReturnStatement) { - emitLeadingComments(node); emitToken(SyntaxKind.ReturnKeyword, node.pos); emitOptional(" ", node.expression); write(";"); - emitTrailingComments(node); } function emitWithStatement(node: WhileStatement) { @@ -3102,7 +3087,6 @@ module ts { } function emitVariableDeclaration(node: VariableDeclaration) { - emitLeadingComments(node); if (isBindingPattern(node.name)) { if (languageVersion < ScriptTarget.ES6) { emitDestructuring(node); @@ -3116,11 +3100,9 @@ module ts { emitModuleMemberName(node); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitVariableStatement(node: VariableStatement) { - emitLeadingComments(node); if (!(node.flags & NodeFlags.Export)) { if (isLet(node.declarationList)) { write("let "); @@ -3134,11 +3116,9 @@ module ts { } emitCommaList(node.declarationList.declarations); write(";"); - emitTrailingComments(node); } function emitParameter(node: ParameterDeclaration) { - emitLeadingComments(node); if (languageVersion < ScriptTarget.ES6) { if (isBindingPattern(node.name)) { var name = createTempVariable(node); @@ -3159,7 +3139,6 @@ module ts { emit(node.name); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitDefaultValueAssignments(node: FunctionLikeDeclaration) { @@ -3232,11 +3211,9 @@ module ts { } function emitAccessor(node: AccessorDeclaration) { - emitLeadingComments(node); write(node.kind === SyntaxKind.GetAccessor ? "get " : "set "); emit(node.name); emitSignatureAndBody(node); - emitTrailingComments(node); } function emitFunctionDeclaration(node: FunctionLikeDeclaration) { @@ -3306,7 +3283,8 @@ module ts { write(" "); emitStart(node.body); write("return "); - emitNode(node.body); + // Don't emit comments on this body. We'll have already taken care of it above. + emitNode(node.body, /*disableComments:*/ true); emitEnd(node.body); write(";"); emitTempDeclarations(/*newLine*/ false); @@ -3323,7 +3301,7 @@ module ts { writeLine(); emitLeadingComments(node.body); write("return "); - emit(node.body); + emit(node.body, /*disableComments:*/ true); write(";"); emitTrailingComments(node.body); } @@ -3504,7 +3482,6 @@ module ts { } function emitClassDeclaration(node: ClassDeclaration) { - emitLeadingComments(node); write("var "); emit(node.name); write(" = (function ("); @@ -3554,7 +3531,6 @@ module ts { emitEnd(node); write(";"); } - emitTrailingComments(node); function emitConstructorOfClass() { var saveTempCount = tempCount; @@ -3633,13 +3609,17 @@ module ts { emitPinnedOrTripleSlashComments(node); } + function shouldEmitEnumDeclaration(node: EnumDeclaration) { + var isConstEnum = isConst(node); + return !isConstEnum || compilerOptions.preserveConstEnums; + } + function emitEnumDeclaration(node: EnumDeclaration) { // const enums are completely erased during compilation. - var isConstEnum = isConst(node); - if (isConstEnum && !compilerOptions.preserveConstEnums) { + if (!shouldEmitEnumDeclaration(node)) { return; } - emitLeadingComments(node); + if (!(node.flags & NodeFlags.Export)) { emitStart(node); write("var "); @@ -3677,12 +3657,10 @@ module ts { emitEnd(node); write(";"); } - emitTrailingComments(node); } function emitEnumMember(node: EnumMember) { var enumParent = node.parent; - emitLeadingComments(node); emitStart(node); write(resolver.getLocalNameOfContainer(enumParent)); write("["); @@ -3700,7 +3678,6 @@ module ts { emitExpressionForPropertyName(node.name); emitEnd(node); write(";"); - emitTrailingComments(node); } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration: ModuleDeclaration): ModuleDeclaration { @@ -3710,14 +3687,18 @@ module ts { } } + function shouldEnumModuleDeclaration(node: ModuleDeclaration) { + return isInstantiatedModule(node, compilerOptions.preserveConstEnums); + } + function emitModuleDeclaration(node: ModuleDeclaration) { // Emit only if this module is non-ambient. - var shouldEmit = isInstantiatedModule(node, compilerOptions.preserveConstEnums); + var shouldEmit = shouldEnumModuleDeclaration(node); if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } - emitLeadingComments(node); + emitStart(node); write("var "); emit(node.name); @@ -3762,7 +3743,6 @@ module ts { emitModuleMemberName(node); write(" = {}));"); emitEnd(node); - emitTrailingComments(node); } function emitImportDeclaration(node: ImportDeclaration) { @@ -3952,7 +3932,7 @@ module ts { emitLeadingComments(node.endOfFileToken); } - function emitNode(node: Node): void { + function emitNode(node: Node, disableComments?:boolean): void { if (!node) { return; } @@ -3960,6 +3940,46 @@ module ts { if (node.flags & NodeFlags.Ambient) { return emitPinnedOrTripleSlashComments(node); } + + var emitComments = !disableComments && shouldEmitLeadingAndTrailingComments(node); + if (emitComments) { + emitLeadingComments(node); + } + + emitJavaScriptWorker(node); + + if (emitComments) { + emitTrailingComments(node); + } + } + + function shouldEmitLeadingAndTrailingComments(node: Node) { + switch (node.kind) { + // All of thes entities are emitted in a specialized fashion. As such, we allow + // the specilized methods for each to handle the comments on the nodes. + case SyntaxKind.InterfaceDeclaration: + case SyntaxKind.FunctionDeclaration: + case SyntaxKind.ImportDeclaration: + case SyntaxKind.TypeAliasDeclaration: + case SyntaxKind.ExportAssignment: + return false; + + case SyntaxKind.ModuleDeclaration: + // Only emit the leading/trailing comments for a module if we're actually + // emitting the module as well. + return shouldEnumModuleDeclaration(node); + + case SyntaxKind.EnumDeclaration: + // Only emit the leading/trailing comments for an enum if we're actually + // emitting the module as well. + return shouldEmitEnumDeclaration(node); + } + + // Emit comments for everything else. + return true; + } + + function emitJavaScriptWorker(node: Node) { // Check if the node can be emitted regardless of the ScriptTarget switch (node.kind) { case SyntaxKind.Identifier: @@ -4128,17 +4148,19 @@ module ts { 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) { - var leadingComments: CommentRange[]; - if (hasDetachedComments(node.pos)) { - // get comments without detached comments - leadingComments = getLeadingCommentsWithoutDetachedComments(); + if (node.parent) { + if (node.parent.kind === SyntaxKind.SourceFile || node.pos !== node.parent.pos) { + var leadingComments: CommentRange[]; + if (hasDetachedComments(node.pos)) { + // get comments without detached comments + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + // get the leading comments from the node + leadingComments = getLeadingCommentRangesOfNode(node, currentSourceFile); + } + return leadingComments; } - else { - // get the leading comments from the node - leadingComments = getLeadingCommentRangesOfNode(node, currentSourceFile); - } - return leadingComments; } } @@ -4151,10 +4173,12 @@ module ts { function emitTrailingDeclarationComments(node: Node) { // Emit the trailing comments only if the parent's end doesn't match - if (node.parent.kind === SyntaxKind.SourceFile || node.end !== node.parent.end) { - var trailingComments = getTrailingCommentRanges(currentSourceFile.text, node.end); - // trailing comments are emitted at space/*trailing comment1 */space/*trailing comment*/ - emitComments(currentSourceFile, writer, trailingComments, /*trailingSeparator*/ false, newLine, writeComment); + if (node.parent) { + if (node.parent.kind === SyntaxKind.SourceFile || node.end !== node.parent.end) { + var trailingComments = getTrailingCommentRanges(currentSourceFile.text, node.end); + // trailing comments are emitted at space/*trailing comment1 */space/*trailing comment*/ + emitComments(currentSourceFile, writer, trailingComments, /*trailingSeparator*/ false, newLine, writeComment); + } } } diff --git a/tests/baselines/reference/arrowFunctionContexts.js b/tests/baselines/reference/arrowFunctionContexts.js index abb8fd0ab7a..cdf902a6c37 100644 --- a/tests/baselines/reference/arrowFunctionContexts.js +++ b/tests/baselines/reference/arrowFunctionContexts.js @@ -103,6 +103,7 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; +// Arrow function used in with statement with (window) { var p = function () { return this; }; } @@ -142,6 +143,7 @@ var M; // Repeat above for module members that are functions? (necessary to redo all of them?) var M2; (function (M2) { + // Arrow function used in with statement with (window) { var p = function () { return this; }; } diff --git a/tests/baselines/reference/augmentedTypesEnum2.js b/tests/baselines/reference/augmentedTypesEnum2.js index 434e508f14c..f0c86e5640b 100644 --- a/tests/baselines/reference/augmentedTypesEnum2.js +++ b/tests/baselines/reference/augmentedTypesEnum2.js @@ -31,7 +31,7 @@ var e2; (function (e2) { e2[e2["One"] = 0] = "One"; })(e2 || (e2 = {})); -; +; // error var e2 = (function () { function e2() { } diff --git a/tests/baselines/reference/augmentedTypesInterface.js b/tests/baselines/reference/augmentedTypesInterface.js index a5039f8b1d0..e28864fd547 100644 --- a/tests/baselines/reference/augmentedTypesInterface.js +++ b/tests/baselines/reference/augmentedTypesInterface.js @@ -47,5 +47,5 @@ var i3; (function (i3) { i3[i3["One"] = 0] = "One"; })(i3 || (i3 = {})); -; +; // error //import i4 = require(''); // error diff --git a/tests/baselines/reference/augmentedTypesModules.js b/tests/baselines/reference/augmentedTypesModules.js index a9bff3fa74b..3b7544996a1 100644 --- a/tests/baselines/reference/augmentedTypesModules.js +++ b/tests/baselines/reference/augmentedTypesModules.js @@ -124,21 +124,21 @@ var m1d; var m1d = 1; // error function m2() { } -; +; // ok since the module is not instantiated var m2a; (function (m2a) { var y = 2; })(m2a || (m2a = {})); function m2a() { } -; +; // error since the module is instantiated var m2b; (function (m2b) { m2b.y = 2; })(m2b || (m2b = {})); function m2b() { } -; +; // error since the module is instantiated // should be errors to have function first function m2c() { } diff --git a/tests/baselines/reference/augmentedTypesModules2.js b/tests/baselines/reference/augmentedTypesModules2.js index d1551b6244e..70fd31f03e0 100644 --- a/tests/baselines/reference/augmentedTypesModules2.js +++ b/tests/baselines/reference/augmentedTypesModules2.js @@ -31,21 +31,21 @@ module m2g { export class C { foo() { } } } //// [augmentedTypesModules2.js] function m2() { } -; +; // ok since the module is not instantiated var m2a; (function (m2a) { var y = 2; })(m2a || (m2a = {})); function m2a() { } -; +; // error since the module is instantiated var m2b; (function (m2b) { m2b.y = 2; })(m2b || (m2b = {})); function m2b() { } -; +; // error since the module is instantiated function m2c() { } ; @@ -59,7 +59,7 @@ var m2cc; })(m2cc || (m2cc = {})); function m2cc() { } -; +; // error to have module first function m2f() { } ; diff --git a/tests/baselines/reference/commaOperatorOtherValidOperation.js b/tests/baselines/reference/commaOperatorOtherValidOperation.js index 4d556472adc..383b7c5058e 100644 --- a/tests/baselines/reference/commaOperatorOtherValidOperation.js +++ b/tests/baselines/reference/commaOperatorOtherValidOperation.js @@ -22,6 +22,7 @@ function foo1() //// [commaOperatorOtherValidOperation.js] +//Comma operator in for loop for (var i = 0, j = 10; i < j; i++, j--) { } //Comma operator in fuction arguments and return diff --git a/tests/baselines/reference/commentsOnObjectLiteral1.js b/tests/baselines/reference/commentsOnObjectLiteral1.js index 1c47ed68d8d..feb6a521b8d 100644 --- a/tests/baselines/reference/commentsOnObjectLiteral1.js +++ b/tests/baselines/reference/commentsOnObjectLiteral1.js @@ -8,4 +8,8 @@ var Person = makeClass( ); //// [commentsOnObjectLiteral1.js] -var Person = makeClass({}); +var Person = makeClass( +/** + @scope Person +*/ +{}); diff --git a/tests/baselines/reference/commentsVarDecl.js b/tests/baselines/reference/commentsVarDecl.js index 5105e03879d..5ff2a3c1c6a 100644 --- a/tests/baselines/reference/commentsVarDecl.js +++ b/tests/baselines/reference/commentsVarDecl.js @@ -66,7 +66,9 @@ var n = 30; /** var deckaration with comment on type as well*/ var y = 20; /// var deckaration with comment on type as well -var yy = 20; +var yy = +/// value comment +20; /** comment2 */ var z = function (x, y) { return x + y; }; var z2; diff --git a/tests/baselines/reference/constDeclarations-scopes.js b/tests/baselines/reference/constDeclarations-scopes.js index aa1d59aee81..b1be921849c 100644 --- a/tests/baselines/reference/constDeclarations-scopes.js +++ b/tests/baselines/reference/constDeclarations-scopes.js @@ -189,6 +189,7 @@ while (false) { label2: label3: label4: const c = 0; n = c; } +// Try/catch/finally try { const c = 0; n = c; @@ -201,12 +202,14 @@ finally { const c = 0; n = c; } +// Switch switch (0) { case 0: const c = 0; n = c; break; } +// blocks { const c = 0; n = c; diff --git a/tests/baselines/reference/constDeclarations-scopes2.js b/tests/baselines/reference/constDeclarations-scopes2.js index 1d0f252ab4f..d407cf56801 100644 --- a/tests/baselines/reference/constDeclarations-scopes2.js +++ b/tests/baselines/reference/constDeclarations-scopes2.js @@ -20,6 +20,7 @@ for (const c = 0; c < 10; n = c ) { const c = "string"; var n; var b; +// for scope for (const c = 0; c < 10; n = c) { // for block const c = false; diff --git a/tests/baselines/reference/constDeclarations-validContexts.js b/tests/baselines/reference/constDeclarations-validContexts.js index 8be43633d70..8238f69ca15 100644 --- a/tests/baselines/reference/constDeclarations-validContexts.js +++ b/tests/baselines/reference/constDeclarations-validContexts.js @@ -153,6 +153,7 @@ if (true) { while (false) { label2: label3: label4: const c9 = 0; } +// Try/catch/finally try { const c10 = 0; } @@ -162,6 +163,7 @@ catch (e) { finally { const c12 = 0; } +// Switch switch (0) { case 0: const c13 = 0; @@ -170,6 +172,7 @@ switch (0) { const c14 = 0; break; } +// blocks { const c15 = 0; { diff --git a/tests/baselines/reference/escapedIdentifiers.js b/tests/baselines/reference/escapedIdentifiers.js index cabeb7f1d5d..5de505e4cb7 100644 --- a/tests/baselines/reference/escapedIdentifiers.js +++ b/tests/baselines/reference/escapedIdentifiers.js @@ -204,19 +204,20 @@ constructorTestObject.arg\u0031 = 1; constructorTestObject.arg2 = 'string'; constructorTestObject.arg\u0033 = true; constructorTestObject.arg4 = 2; +// Lables l\u0061bel1: while (false) { while (false) - continue label1; + continue label1; // it will go to next iteration of outer loop } label2: while (false) { while (false) - continue l\u0061bel2; + continue l\u0061bel2; // it will go to next iteration of outer loop } label3: while (false) { while (false) - continue label3; + continue label3; // it will go to next iteration of outer loop } l\u0061bel4: while (false) { while (false) - continue l\u0061bel4; + continue l\u0061bel4; // it will go to next iteration of outer loop } diff --git a/tests/baselines/reference/forStatementsMultipleInvalidDecl.js b/tests/baselines/reference/forStatementsMultipleInvalidDecl.js index 73db1ff3c7d..4dbfe7e62bc 100644 --- a/tests/baselines/reference/forStatementsMultipleInvalidDecl.js +++ b/tests/baselines/reference/forStatementsMultipleInvalidDecl.js @@ -93,6 +93,7 @@ var M; } M.F2 = F2; })(M || (M = {})); +// all of these are errors for (var a;;) { } for (var a = 1;;) { diff --git a/tests/baselines/reference/genericChainedCalls.js b/tests/baselines/reference/genericChainedCalls.js index 618d34cbc5a..71d83a906bf 100644 --- a/tests/baselines/reference/genericChainedCalls.js +++ b/tests/baselines/reference/genericChainedCalls.js @@ -15,7 +15,8 @@ var s3 = s2.func(num => num.toString()) //// [genericChainedCalls.js] -var r1 = v1.func(function (num) { return num.toString(); }).func(function (str) { return str.length; }).func(function (num) { return num.toString(); }); +var r1 = v1.func(function (num) { return num.toString(); }).func(function (str) { return str.length; }) // error, number doesn't have a length +.func(function (num) { return num.toString(); }); var s1 = v1.func(function (num) { return num.toString(); }); var s2 = s1.func(function (str) { return str.length; }); // should also error var s3 = s2.func(function (num) { return num.toString(); }); diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js index 72d68da2287..6332f444487 100644 --- a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js +++ b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js @@ -18,22 +18,22 @@ function foo(x) { ; function bar(x, y) { } -; +; // error at "y"; no error at "x" function func2(a, b, c) { } -; +; // error at "a,b,c" function func3() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } } -; +; // error at "args" function func4(z, w) { if (z === void 0) { z = null; } if (w === void 0) { w = undefined; } } -; +; // error at "z,w" // these shouldn't be errors function noError1(x, y) { if (x === void 0) { x = 3; } diff --git a/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js b/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js index 95b617d79ee..ae09bf2e40e 100644 --- a/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js +++ b/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js @@ -16,7 +16,7 @@ var x1: any; var y1 = new x1; var x; // error at "x" function func(k) { } -; +; //error at "k" func(x); // this shouldn't be an error var bar = 3; diff --git a/tests/baselines/reference/implicitAnyInCatch.js b/tests/baselines/reference/implicitAnyInCatch.js index 9952c7ca327..29a2e03a130 100644 --- a/tests/baselines/reference/implicitAnyInCatch.js +++ b/tests/baselines/reference/implicitAnyInCatch.js @@ -15,6 +15,7 @@ class C { //// [implicitAnyInCatch.js] +// this should not be an error try { } catch (error) { diff --git a/tests/baselines/reference/letDeclarations-scopes.js b/tests/baselines/reference/letDeclarations-scopes.js index d0f70693d7c..dbe18311eff 100644 --- a/tests/baselines/reference/letDeclarations-scopes.js +++ b/tests/baselines/reference/letDeclarations-scopes.js @@ -205,6 +205,7 @@ for (let l = 0; n = l; l++) { } for (let l in {}) { } +// Try/catch/finally try { let l = 0; n = l; @@ -217,12 +218,14 @@ finally { let l = 0; n = l; } +// Switch switch (0) { case 0: let l = 0; n = l; break; } +// blocks { let l = 0; n = l; diff --git a/tests/baselines/reference/letDeclarations-validContexts.js b/tests/baselines/reference/letDeclarations-validContexts.js index fe9ed903bf5..ee821794b12 100644 --- a/tests/baselines/reference/letDeclarations-validContexts.js +++ b/tests/baselines/reference/letDeclarations-validContexts.js @@ -173,6 +173,7 @@ if (true) { while (false) { label2: label3: label4: let l9 = 0; } +// Try/catch/finally try { let l10 = 0; } @@ -182,6 +183,7 @@ catch (e) { finally { let l12 = 0; } +// Switch switch (0) { case 0: let l13 = 0; @@ -190,6 +192,7 @@ switch (0) { let l14 = 0; break; } +// blocks { let l15 = 0; { @@ -247,6 +250,7 @@ var o = { let l29 = 0; } }; +// labels label: let l30 = 0; { label2: let l31 = 0; diff --git a/tests/baselines/reference/overEagerReturnTypeSpecialization.js b/tests/baselines/reference/overEagerReturnTypeSpecialization.js index 18c61a2aa78..67d2005eca9 100644 --- a/tests/baselines/reference/overEagerReturnTypeSpecialization.js +++ b/tests/baselines/reference/overEagerReturnTypeSpecialization.js @@ -16,5 +16,7 @@ var r2: I1 = v1.func(num => num.toString()) // Correctly returns an I1 +.func(function (str) { return str.length; }); // should error +var r2 = v1.func(function (num) { return num.toString(); }) // Correctly returns an I1 +.func(function (str) { return str.length; }); // should be ok diff --git a/tests/baselines/reference/parserSbp_7.9_A9_T3.js b/tests/baselines/reference/parserSbp_7.9_A9_T3.js index 60c8c4ad6eb..192ca617211 100644 --- a/tests/baselines/reference/parserSbp_7.9_A9_T3.js +++ b/tests/baselines/reference/parserSbp_7.9_A9_T3.js @@ -19,6 +19,13 @@ do { //// [parserSbp_7.9_A9_T3.js] // Copyright 2009 the Sputnik authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. +/** + * Check Do-While Statement for automatic semicolon insertion + * + * @path bestPractice/Sbp_7.9_A9_T3.js + * @description Execute do { \n ; \n }while(false) true + */ +//CHECK#1 do { ; } while (false); diff --git a/tests/baselines/reference/promiseChaining.js b/tests/baselines/reference/promiseChaining.js index 20961542b22..ce15e2d44c1 100644 --- a/tests/baselines/reference/promiseChaining.js +++ b/tests/baselines/reference/promiseChaining.js @@ -19,7 +19,7 @@ var Chain = (function () { Chain.prototype.then = function (cb) { var result = cb(this.value); // should get a fresh type parameter which each then call - var z = this.then(function (x) { return result; }).then(function (x) { return "abc"; }).then(function (x) { return x.length; }); // No error + var z = this.then(function (x) { return result; }) /*S*/.then(function (x) { return "abc"; }) /*string*/.then(function (x) { return x.length; }); // No error return new Chain(result); }; return Chain; diff --git a/tests/baselines/reference/promiseChaining1.js b/tests/baselines/reference/promiseChaining1.js index ee79d3268ba..001f1ffc1a6 100644 --- a/tests/baselines/reference/promiseChaining1.js +++ b/tests/baselines/reference/promiseChaining1.js @@ -19,7 +19,7 @@ var Chain2 = (function () { Chain2.prototype.then = function (cb) { var result = cb(this.value); // should get a fresh type parameter which each then call - var z = this.then(function (x) { return result; }).then(function (x) { return "abc"; }).then(function (x) { return x.length; }); // Should error on "abc" because it is not a Function + var z = this.then(function (x) { return result; }) /*S*/.then(function (x) { return "abc"; }) /*Function*/.then(function (x) { return x.length; }); // Should error on "abc" because it is not a Function return new Chain2(result); }; return Chain2; diff --git a/tests/baselines/reference/recursiveInitializer.js b/tests/baselines/reference/recursiveInitializer.js index c7a723c35d7..82abf2b50af 100644 --- a/tests/baselines/reference/recursiveInitializer.js +++ b/tests/baselines/reference/recursiveInitializer.js @@ -23,10 +23,10 @@ var f = (x: string) => f(x); // number unless otherwise specified var n1 = n1++; var n2 = n2 + n2; -var n3 = n3 + n3; +var n3 /* any */ = n3 + n3; // string unless otherwise specified var s1 = s1 + ''; -var s2 = s2 + s2; +var s2 /* any */ = s2 + s2; var s3 = s3 + s3; var s4 = '' + s4; // boolean unless otherwise specified diff --git a/tests/baselines/reference/scopingInCatchBlocks.js b/tests/baselines/reference/scopingInCatchBlocks.js index 8590173147c..2d3ca7098b5 100644 --- a/tests/baselines/reference/scopingInCatchBlocks.js +++ b/tests/baselines/reference/scopingInCatchBlocks.js @@ -19,9 +19,9 @@ catch (ex1) { try { } catch (ex1) { -} +} // should not error try { } catch (ex1) { -} +} // should not error var x = ex1; // should error diff --git a/tests/baselines/reference/sourceMapValidationClasses.js b/tests/baselines/reference/sourceMapValidationClasses.js index 96724f7c3c7..e3b705bc4b0 100644 --- a/tests/baselines/reference/sourceMapValidationClasses.js +++ b/tests/baselines/reference/sourceMapValidationClasses.js @@ -57,9 +57,9 @@ var Foo; var greeter = new Greeter("Hello, world!"); var str = greeter.greet(); function foo2(greeting) { - var restGreetings = []; + var restGreetings /* more greeting */ = []; for (var _i = 1; _i < arguments.length; _i++) { - restGreetings[_i - 1] = arguments[_i]; + restGreetings /* more greeting */[_i - 1] = arguments[_i]; } var greeters = []; /* inline block comment */ greeters[0] = new Greeter(greeting); @@ -69,6 +69,7 @@ var Foo; return greeters; } var b = foo2("Hello", "World", "!"); + // This is simple signle line comment for (var j = 0; j < b.length; j++) { b[j].greet(); } diff --git a/tests/baselines/reference/sourceMapValidationClasses.js.map b/tests/baselines/reference/sourceMapValidationClasses.js.map index 2a1b381e116..68ded9631e2 100644 --- a/tests/baselines/reference/sourceMapValidationClasses.js.map +++ b/tests/baselines/reference/sourceMapValidationClasses.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationClasses.js.map] -{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":["Foo","Foo.Bar","Foo.Bar.Greeter","Foo.Bar.Greeter.constructor","Foo.Bar.Greeter.greet","Foo.Bar.foo","Foo.Bar.foo2"],"mappings":"AAAA,IAAO,GAAG,CAmCT;AAnCD,WAAO,GAAG;IAACA,IAAAA,GAAGA,CAmCbA;IAnCUA,WAAAA,GAAGA,EAACA,CAACA;QACZC,YAAYA,CAACA;QAEbA,IAAMA,OAAOA;YACTC,SADEA,OAAOA,CACUA,QAAgBA;gBAAhBC,aAAQA,GAARA,QAAQA,CAAQA;YACnCA,CAACA;YAEDD,uBAAKA,GAALA;gBACIE,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA,QAAQA,GAAGA,OAAOA,CAACA;YAC5CA,CAACA;YACLF,cAACA;QAADA,CAACA,AAPDD,IAOCA;QAGDA,SAASA,GAAGA,CAACA,QAAgBA;YACzBI,MAAMA,CAACA,IAAIA,OAAOA,CAACA,QAAQA,CAACA,CAACA;QACjCA,CAACA;QAEDJ,IAAIA,OAAOA,GAAGA,IAAIA,OAAOA,CAACA,eAAeA,CAACA,CAACA;QAC3CA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,KAAKA,EAAEA,CAACA;QAE1BA,SAASA,IAAIA,CAACA,QAAgBA;YAAEK,uBAA8CA;iBAA9CA,WAA8CA,CAA9CA,sBAA8CA,CAA9CA,IAA8CA;gBAA9CA,sCAA8CA;;YAC1EA,IAAIA,QAAQA,GAAcA,EAAEA,EAAEA,0BAA0BA,AAA3BA;YAC7BA,QAAQA,CAACA,CAACA,CAACA,GAAGA,IAAIA,OAAOA,CAACA,QAAQA,CAACA,CAACA;YACpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,aAAaA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,OAAOA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACjDA,CAACA;YAEDA,MAAMA,CAACA,QAAQA,CAACA;QACpBA,CAACA;QAEDL,IAAIA,CAACA,GAAGA,IAAIA,CAACA,OAAOA,EAAEA,OAAOA,EAAEA,GAAGA,CAACA,CAACA;QAEpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChCA,CAACA,CAACA,CAACA,CAACA,CAACA,KAAKA,EAAEA,CAACA;QACjBA,CAACA;IACLA,CAACA,EAnCUD,GAAGA,GAAHA,OAAGA,KAAHA,OAAGA,QAmCbA;AAADA,CAACA,EAnCM,GAAG,KAAH,GAAG,QAmCT"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":["Foo","Foo.Bar","Foo.Bar.Greeter","Foo.Bar.Greeter.constructor","Foo.Bar.Greeter.greet","Foo.Bar.foo","Foo.Bar.foo2"],"mappings":"AAAA,IAAO,GAAG,CAmCT;AAnCD,WAAO,GAAG;IAACA,IAAAA,GAAGA,CAmCbA;IAnCUA,WAAAA,GAAGA,EAACA,CAACA;QACZC,YAAYA,CAACA;QAEbA,IAAMA,OAAOA;YACTC,SADEA,OAAOA,CACUA,QAAgBA;gBAAhBC,aAAQA,GAARA,QAAQA,CAAQA;YACnCA,CAACA;YAEDD,uBAAKA,GAALA;gBACIE,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA,QAAQA,GAAGA,OAAOA,CAACA;YAC5CA,CAACA;YACLF,cAACA;QAADA,CAACA,AAPDD,IAOCA;QAGDA,SAASA,GAAGA,CAACA,QAAgBA;YACzBI,MAAMA,CAACA,IAAIA,OAAOA,CAACA,QAAQA,CAACA,CAACA;QACjCA,CAACA;QAEDJ,IAAIA,OAAOA,GAAGA,IAAIA,OAAOA,CAACA,eAAeA,CAACA,CAACA;QAC3CA,IAAIA,GAAGA,GAAGA,OAAOA,CAACA,KAAKA,EAAEA,CAACA;QAE1BA,SAASA,IAAIA,CAACA,QAAgBA;YAAEK,kBAAiBA,mBAAmBA,MAAUA;iBAA9CA,WAA8CA,CAA9CA,sBAA8CA,CAA9CA,IAA8CA;gBAA9CA,cAAiBA,mBAAmBA,yBAAUA;;YAC1EA,IAAIA,QAAQA,GAAcA,EAAEA,EAAEA,0BAA0BA,AAA3BA;YAC7BA,QAAQA,CAACA,CAACA,CAACA,GAAGA,IAAIA,OAAOA,CAACA,QAAQA,CAACA,CAACA;YACpCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,aAAaA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC5CA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,OAAOA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACjDA,CAACA;YAEDA,MAAMA,CAACA,QAAQA,CAACA;QACpBA,CAACA;QAEDL,IAAIA,CAACA,GAAGA,IAAIA,CAACA,OAAOA,EAAEA,OAAOA,EAAEA,GAAGA,CAACA,CAACA;QAEpCA,AADAA,qCAAqCA;QACrCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,CAACA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;YAChCA,CAACA,CAACA,CAACA,CAACA,CAACA,KAAKA,EAAEA,CAACA;QACjBA,CAACA;IACLA,CAACA,EAnCUD,GAAGA,GAAHA,OAAGA,KAAHA,OAAGA,QAmCbA;AAADA,CAACA,EAnCM,GAAG,KAAH,GAAG,QAmCT"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationClasses.sourcemap.txt b/tests/baselines/reference/sourceMapValidationClasses.sourcemap.txt index d82ac6c3e05..6cd77b696ff 100644 --- a/tests/baselines/reference/sourceMapValidationClasses.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationClasses.sourcemap.txt @@ -433,7 +433,7 @@ sourceFile:sourceMapValidationClasses.ts 3 > ^^^^ 4 > ^ 5 > ^^^^^^^^ -6 > ^^^^^^-> +6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > > > @@ -447,14 +447,20 @@ sourceFile:sourceMapValidationClasses.ts 4 >Emitted(20, 23) Source(21, 19) + SourceIndex(0) name (Foo.Bar) 5 >Emitted(20, 31) Source(21, 35) + SourceIndex(0) name (Foo.Bar) --- ->>> var restGreetings = []; +>>> var restGreetings /* more greeting */ = []; 1->^^^^^^^^^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^-> +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^^^^^^ +5 > ^^^^^-> 1->, -2 > ...restGreetings /* more greeting */: string[] +2 > ...restGreetings +3 > /* more greeting */ +4 > : string[] 1->Emitted(21, 13) Source(21, 37) + SourceIndex(0) name (Foo.Bar.foo2) -2 >Emitted(21, 36) Source(21, 83) + SourceIndex(0) name (Foo.Bar.foo2) +2 >Emitted(21, 31) Source(21, 54) + SourceIndex(0) name (Foo.Bar.foo2) +3 >Emitted(21, 50) Source(21, 73) + SourceIndex(0) name (Foo.Bar.foo2) +4 >Emitted(21, 56) Source(21, 83) + SourceIndex(0) name (Foo.Bar.foo2) --- >>> for (var _i = 1; _i < arguments.length; _i++) { 1->^^^^^^^^^^^^^^^^^ @@ -463,6 +469,7 @@ sourceFile:sourceMapValidationClasses.ts 4 > ^^^^^^^^^^^^^^^^^^^^^^ 5 > ^ 6 > ^^^^ +7 > ^^^^^^^^^^^^^^^^^^^-> 1-> 2 > ...restGreetings /* more greeting */: string[] 3 > @@ -476,13 +483,19 @@ sourceFile:sourceMapValidationClasses.ts 5 >Emitted(22, 53) Source(21, 37) + SourceIndex(0) name (Foo.Bar.foo2) 6 >Emitted(22, 57) Source(21, 83) + SourceIndex(0) name (Foo.Bar.foo2) --- ->>> restGreetings[_i - 1] = arguments[_i]; -1 >^^^^^^^^^^^^^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1 > -2 > ...restGreetings /* more greeting */: string[] -1 >Emitted(23, 17) Source(21, 37) + SourceIndex(0) name (Foo.Bar.foo2) -2 >Emitted(23, 55) Source(21, 83) + SourceIndex(0) name (Foo.Bar.foo2) +>>> restGreetings /* more greeting */[_i - 1] = arguments[_i]; +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> +2 > ...restGreetings +3 > /* more greeting */ +4 > : string[] +1->Emitted(23, 17) Source(21, 37) + SourceIndex(0) name (Foo.Bar.foo2) +2 >Emitted(23, 31) Source(21, 54) + SourceIndex(0) name (Foo.Bar.foo2) +3 >Emitted(23, 50) Source(21, 73) + SourceIndex(0) name (Foo.Bar.foo2) +4 >Emitted(23, 75) Source(21, 83) + SourceIndex(0) name (Foo.Bar.foo2) --- >>> } >>> var greeters = []; /* inline block comment */ @@ -717,7 +730,7 @@ sourceFile:sourceMapValidationClasses.ts 11> ^^^ 12> ^ 13> ^ -14> ^-> +14> ^^-> 1-> > > @@ -747,8 +760,21 @@ sourceFile:sourceMapValidationClasses.ts 12>Emitted(32, 44) Source(31, 40) + SourceIndex(0) name (Foo.Bar) 13>Emitted(32, 45) Source(31, 41) + SourceIndex(0) name (Foo.Bar) --- ->>> for (var j = 0; j < b.length; j++) { +>>> // This is simple signle line comment 1->^^^^^^^^ +2 > +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > // This is simple signle line comment + > +2 > +3 > // This is simple signle line comment +1->Emitted(33, 9) Source(33, 5) + SourceIndex(0) name (Foo.Bar) +2 >Emitted(33, 9) Source(32, 5) + SourceIndex(0) name (Foo.Bar) +3 >Emitted(33, 46) Source(32, 42) + SourceIndex(0) name (Foo.Bar) +--- +>>> for (var j = 0; j < b.length; j++) { +1 >^^^^^^^^ 2 > ^^^ 3 > ^ 4 > ^ @@ -768,8 +794,7 @@ sourceFile:sourceMapValidationClasses.ts 18> ^^ 19> ^^ 20> ^ -1-> - > // This is simple signle line comment +1 > > 2 > for 3 > @@ -790,26 +815,26 @@ sourceFile:sourceMapValidationClasses.ts 18> ++ 19> ) 20> { -1->Emitted(33, 9) Source(33, 5) + SourceIndex(0) name (Foo.Bar) -2 >Emitted(33, 12) Source(33, 8) + SourceIndex(0) name (Foo.Bar) -3 >Emitted(33, 13) Source(33, 9) + SourceIndex(0) name (Foo.Bar) -4 >Emitted(33, 14) Source(33, 10) + SourceIndex(0) name (Foo.Bar) -5 >Emitted(33, 17) Source(33, 13) + SourceIndex(0) name (Foo.Bar) -6 >Emitted(33, 18) Source(33, 14) + SourceIndex(0) name (Foo.Bar) -7 >Emitted(33, 19) Source(33, 15) + SourceIndex(0) name (Foo.Bar) -8 >Emitted(33, 22) Source(33, 18) + SourceIndex(0) name (Foo.Bar) -9 >Emitted(33, 23) Source(33, 19) + SourceIndex(0) name (Foo.Bar) -10>Emitted(33, 25) Source(33, 21) + SourceIndex(0) name (Foo.Bar) -11>Emitted(33, 26) Source(33, 22) + SourceIndex(0) name (Foo.Bar) -12>Emitted(33, 29) Source(33, 25) + SourceIndex(0) name (Foo.Bar) -13>Emitted(33, 30) Source(33, 26) + SourceIndex(0) name (Foo.Bar) -14>Emitted(33, 31) Source(33, 27) + SourceIndex(0) name (Foo.Bar) -15>Emitted(33, 37) Source(33, 33) + SourceIndex(0) name (Foo.Bar) -16>Emitted(33, 39) Source(33, 35) + SourceIndex(0) name (Foo.Bar) -17>Emitted(33, 40) Source(33, 36) + SourceIndex(0) name (Foo.Bar) -18>Emitted(33, 42) Source(33, 38) + SourceIndex(0) name (Foo.Bar) -19>Emitted(33, 44) Source(33, 40) + SourceIndex(0) name (Foo.Bar) -20>Emitted(33, 45) Source(33, 41) + SourceIndex(0) name (Foo.Bar) +1 >Emitted(34, 9) Source(33, 5) + SourceIndex(0) name (Foo.Bar) +2 >Emitted(34, 12) Source(33, 8) + SourceIndex(0) name (Foo.Bar) +3 >Emitted(34, 13) Source(33, 9) + SourceIndex(0) name (Foo.Bar) +4 >Emitted(34, 14) Source(33, 10) + SourceIndex(0) name (Foo.Bar) +5 >Emitted(34, 17) Source(33, 13) + SourceIndex(0) name (Foo.Bar) +6 >Emitted(34, 18) Source(33, 14) + SourceIndex(0) name (Foo.Bar) +7 >Emitted(34, 19) Source(33, 15) + SourceIndex(0) name (Foo.Bar) +8 >Emitted(34, 22) Source(33, 18) + SourceIndex(0) name (Foo.Bar) +9 >Emitted(34, 23) Source(33, 19) + SourceIndex(0) name (Foo.Bar) +10>Emitted(34, 25) Source(33, 21) + SourceIndex(0) name (Foo.Bar) +11>Emitted(34, 26) Source(33, 22) + SourceIndex(0) name (Foo.Bar) +12>Emitted(34, 29) Source(33, 25) + SourceIndex(0) name (Foo.Bar) +13>Emitted(34, 30) Source(33, 26) + SourceIndex(0) name (Foo.Bar) +14>Emitted(34, 31) Source(33, 27) + SourceIndex(0) name (Foo.Bar) +15>Emitted(34, 37) Source(33, 33) + SourceIndex(0) name (Foo.Bar) +16>Emitted(34, 39) Source(33, 35) + SourceIndex(0) name (Foo.Bar) +17>Emitted(34, 40) Source(33, 36) + SourceIndex(0) name (Foo.Bar) +18>Emitted(34, 42) Source(33, 38) + SourceIndex(0) name (Foo.Bar) +19>Emitted(34, 44) Source(33, 40) + SourceIndex(0) name (Foo.Bar) +20>Emitted(34, 45) Source(33, 41) + SourceIndex(0) name (Foo.Bar) --- >>> b[j].greet(); 1 >^^^^^^^^^^^^ @@ -831,15 +856,15 @@ sourceFile:sourceMapValidationClasses.ts 7 > greet 8 > () 9 > ; -1 >Emitted(34, 13) Source(34, 9) + SourceIndex(0) name (Foo.Bar) -2 >Emitted(34, 14) Source(34, 10) + SourceIndex(0) name (Foo.Bar) -3 >Emitted(34, 15) Source(34, 11) + SourceIndex(0) name (Foo.Bar) -4 >Emitted(34, 16) Source(34, 12) + SourceIndex(0) name (Foo.Bar) -5 >Emitted(34, 17) Source(34, 13) + SourceIndex(0) name (Foo.Bar) -6 >Emitted(34, 18) Source(34, 14) + SourceIndex(0) name (Foo.Bar) -7 >Emitted(34, 23) Source(34, 19) + SourceIndex(0) name (Foo.Bar) -8 >Emitted(34, 25) Source(34, 21) + SourceIndex(0) name (Foo.Bar) -9 >Emitted(34, 26) Source(34, 22) + SourceIndex(0) name (Foo.Bar) +1 >Emitted(35, 13) Source(34, 9) + SourceIndex(0) name (Foo.Bar) +2 >Emitted(35, 14) Source(34, 10) + SourceIndex(0) name (Foo.Bar) +3 >Emitted(35, 15) Source(34, 11) + SourceIndex(0) name (Foo.Bar) +4 >Emitted(35, 16) Source(34, 12) + SourceIndex(0) name (Foo.Bar) +5 >Emitted(35, 17) Source(34, 13) + SourceIndex(0) name (Foo.Bar) +6 >Emitted(35, 18) Source(34, 14) + SourceIndex(0) name (Foo.Bar) +7 >Emitted(35, 23) Source(34, 19) + SourceIndex(0) name (Foo.Bar) +8 >Emitted(35, 25) Source(34, 21) + SourceIndex(0) name (Foo.Bar) +9 >Emitted(35, 26) Source(34, 22) + SourceIndex(0) name (Foo.Bar) --- >>> } 1 >^^^^^^^^ @@ -848,8 +873,8 @@ sourceFile:sourceMapValidationClasses.ts 1 > > 2 > } -1 >Emitted(35, 9) Source(35, 5) + SourceIndex(0) name (Foo.Bar) -2 >Emitted(35, 10) Source(35, 6) + SourceIndex(0) name (Foo.Bar) +1 >Emitted(36, 9) Source(35, 5) + SourceIndex(0) name (Foo.Bar) +2 >Emitted(36, 10) Source(35, 6) + SourceIndex(0) name (Foo.Bar) --- >>> })(Bar = Foo.Bar || (Foo.Bar = {})); 1->^^^^ @@ -906,15 +931,15 @@ sourceFile:sourceMapValidationClasses.ts > b[j].greet(); > } > } -1->Emitted(36, 5) Source(36, 1) + SourceIndex(0) name (Foo.Bar) -2 >Emitted(36, 6) Source(36, 2) + SourceIndex(0) name (Foo.Bar) -3 >Emitted(36, 8) Source(1, 12) + SourceIndex(0) name (Foo) -4 >Emitted(36, 11) Source(1, 15) + SourceIndex(0) name (Foo) -5 >Emitted(36, 14) Source(1, 12) + SourceIndex(0) name (Foo) -6 >Emitted(36, 21) Source(1, 15) + SourceIndex(0) name (Foo) -7 >Emitted(36, 26) Source(1, 12) + SourceIndex(0) name (Foo) -8 >Emitted(36, 33) Source(1, 15) + SourceIndex(0) name (Foo) -9 >Emitted(36, 41) Source(36, 2) + SourceIndex(0) name (Foo) +1->Emitted(37, 5) Source(36, 1) + SourceIndex(0) name (Foo.Bar) +2 >Emitted(37, 6) Source(36, 2) + SourceIndex(0) name (Foo.Bar) +3 >Emitted(37, 8) Source(1, 12) + SourceIndex(0) name (Foo) +4 >Emitted(37, 11) Source(1, 15) + SourceIndex(0) name (Foo) +5 >Emitted(37, 14) Source(1, 12) + SourceIndex(0) name (Foo) +6 >Emitted(37, 21) Source(1, 15) + SourceIndex(0) name (Foo) +7 >Emitted(37, 26) Source(1, 12) + SourceIndex(0) name (Foo) +8 >Emitted(37, 33) Source(1, 15) + SourceIndex(0) name (Foo) +9 >Emitted(37, 41) Source(36, 2) + SourceIndex(0) name (Foo) --- >>>})(Foo || (Foo = {})); 1 > @@ -967,12 +992,12 @@ sourceFile:sourceMapValidationClasses.ts > b[j].greet(); > } > } -1 >Emitted(37, 1) Source(36, 1) + SourceIndex(0) name (Foo) -2 >Emitted(37, 2) Source(36, 2) + SourceIndex(0) name (Foo) -3 >Emitted(37, 4) Source(1, 8) + SourceIndex(0) -4 >Emitted(37, 7) Source(1, 11) + SourceIndex(0) -5 >Emitted(37, 12) Source(1, 8) + SourceIndex(0) -6 >Emitted(37, 15) Source(1, 11) + SourceIndex(0) -7 >Emitted(37, 23) Source(36, 2) + SourceIndex(0) +1 >Emitted(38, 1) Source(36, 1) + SourceIndex(0) name (Foo) +2 >Emitted(38, 2) Source(36, 2) + SourceIndex(0) name (Foo) +3 >Emitted(38, 4) Source(1, 8) + SourceIndex(0) +4 >Emitted(38, 7) Source(1, 11) + SourceIndex(0) +5 >Emitted(38, 12) Source(1, 8) + SourceIndex(0) +6 >Emitted(38, 15) Source(1, 11) + SourceIndex(0) +7 >Emitted(38, 23) Source(36, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationClasses.js.map \ No newline at end of file diff --git a/tests/baselines/reference/switchAssignmentCompat.js b/tests/baselines/reference/switchAssignmentCompat.js index 7b3f2af80bb..1e6792ee378 100644 --- a/tests/baselines/reference/switchAssignmentCompat.js +++ b/tests/baselines/reference/switchAssignmentCompat.js @@ -13,5 +13,5 @@ var Foo = (function () { return Foo; })(); switch (0) { - case Foo: break; + case Foo: break; // Error expected } diff --git a/tests/baselines/reference/switchCasesExpressionTypeMismatch.js b/tests/baselines/reference/switchCasesExpressionTypeMismatch.js index a35dc633e35..ca354779be1 100644 --- a/tests/baselines/reference/switchCasesExpressionTypeMismatch.js +++ b/tests/baselines/reference/switchCasesExpressionTypeMismatch.js @@ -25,12 +25,13 @@ var Foo = (function () { return Foo; })(); switch (0) { - case Foo: break; - case "sss": break; - case 123: break; - case true: break; + case Foo: break; // Error + case "sss": break; // Error + case 123: break; // No Error + case true: break; // Error } var s = 0; +// No error for all switch (s) { case Foo: break; case "sss": break; diff --git a/tests/baselines/reference/throwStatements.js b/tests/baselines/reference/throwStatements.js index 871bbc2ff0a..146d1232792 100644 --- a/tests/baselines/reference/throwStatements.js +++ b/tests/baselines/reference/throwStatements.js @@ -149,6 +149,7 @@ throw aFunctionInModule; // no initializer or annotation, so this is an 'any' var x; throw x; +// literals throw 0.0; throw false; throw null; diff --git a/tests/baselines/reference/typeGuardsInConditionalExpression.js b/tests/baselines/reference/typeGuardsInConditionalExpression.js index 303a27dc938..ebe84879d2b 100644 --- a/tests/baselines/reference/typeGuardsInConditionalExpression.js +++ b/tests/baselines/reference/typeGuardsInConditionalExpression.js @@ -105,56 +105,73 @@ function foo12(x: number | string | boolean) { // the type of a variable or parameter is narrowed by any type guard in the condition when false, // provided the false expression contains no assignments to the variable or parameter. function foo(x) { - return typeof x === "string" ? x.length : x++; // number + return typeof x === "string" ? x.length // string + : x++; // number } function foo2(x) { // x is assigned in the if true branch, the type is not narrowed - return typeof x === "string" ? (x = 10 && x) : x; // string | number + return typeof x === "string" ? (x = 10 && x) // string | number + : x; // string | number } function foo3(x) { // x is assigned in the if false branch, the type is not narrowed // even though assigned using same type as narrowed expression - return typeof x === "string" ? (x = "Hello" && x) : x; // string | number + return typeof x === "string" ? (x = "Hello" && x) // string | number + : x; // string | number } function foo4(x) { // false branch updates the variable - so here it is not number // even though assigned using same type as narrowed expression - return typeof x === "string" ? x : (x = 10 && x); // string | number + return typeof x === "string" ? x // string | number + : (x = 10 && x); // string | number } function foo5(x) { // false branch updates the variable - so here it is not number - return typeof x === "string" ? x : (x = "hello" && x); // string | number + return typeof x === "string" ? x // string | number + : (x = "hello" && x); // string | number } function foo6(x) { // Modify in both branches - return typeof x === "string" ? (x = 10 && x) : (x = "hello" && x); // string | number + return typeof x === "string" ? (x = 10 && x) // string | number + : (x = "hello" && x); // string | number } function foo7(x) { - return typeof x === "string" ? x === "hello" : typeof x === "boolean" ? x : x == 10; // number + return typeof x === "string" ? x === "hello" // string + : typeof x === "boolean" ? x // boolean + : x == 10; // number } function foo8(x) { var b; - return typeof x === "string" ? x === "hello" : ((b = x) && (typeof x === "boolean" ? x : x == 10)); // number + return typeof x === "string" ? x === "hello" : ((b = x) && (typeof x === "boolean" ? x // boolean + : x == 10)); // number } function foo9(x) { var y = 10; // usage of x or assignment to separate variable shouldn't cause narrowing of type to stop - return typeof x === "string" ? ((y = x.length) && x === "hello") : x === 10; // number + return typeof x === "string" ? ((y = x.length) && x === "hello") // string + : x === 10; // number } function foo10(x) { // Mixing typeguards var b; - return typeof x === "string" ? x : ((b = x) && typeof x === "number" && x.toString()); // x is number + return typeof x === "string" ? x // string + : ((b = x) // x is number | boolean + && typeof x === "number" && x.toString()); // x is number } function foo11(x) { // Mixing typeguards // Assigning value to x deep inside another guard stops narrowing of type too var b; - return typeof x === "string" ? x : ((b = x) && typeof x === "number" && (x = 10) && x); // x is number | boolean | string + return typeof x === "string" ? x // number | boolean | string - changed in the false branch + : ((b = x) // x is number | boolean | string - because the assignment changed it + && typeof x === "number" && (x = 10) // assignment to x + && x); // x is number | boolean | string } function foo12(x) { // Mixing typeguards // Assigning value to x in outer guard shouldn't stop narrowing in the inner expression var b; - return typeof x === "string" ? (x = 10 && x.toString().length) : ((b = x) && typeof x === "number" && x); // x is number + return typeof x === "string" ? (x = 10 && x.toString().length) // number | boolean | string - changed here + : ((b = x) // x is number | boolean | string - changed in true branch + && typeof x === "number" && x); // x is number } diff --git a/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.js b/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.js index 317017c9acc..239eeb4bfe7 100644 --- a/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.js +++ b/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.js @@ -84,25 +84,29 @@ module m1 { function foo(x) { return typeof x === "string" ? x : function f() { var b = x; // number | boolean - return typeof x === "boolean" ? x.toString() : x.toString(); // number + return typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number }(); } function foo2(x) { return typeof x === "string" ? x : function f(a) { var b = x; // new scope - number | boolean - return typeof x === "boolean" ? x.toString() : x.toString(); // number + return typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number }(x); // x here is narrowed to number | boolean } function foo3(x) { return typeof x === "string" ? x : (function () { var b = x; // new scope - number | boolean - return typeof x === "boolean" ? x.toString() : x.toString(); // number + return typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number })(); } function foo4(x) { return typeof x === "string" ? x : (function (a) { var b = x; // new scope - number | boolean - return typeof x === "boolean" ? x.toString() : x.toString(); // number + return typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number })(x); // x here is narrowed to number | boolean } // Type guards affect nested function expressions, but not nested function declarations @@ -125,7 +129,8 @@ var m; y = x; // string; } else { - y = typeof x === "boolean" ? x.toString() : x.toString(); // number + y = typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number } })(m2 || (m2 = {})); })(m || (m = {})); @@ -142,7 +147,8 @@ var m1; y = x; // string; } else { - y = typeof x === "boolean" ? x.toString() : x.toString(); // number + y = typeof x === "boolean" ? x.toString() // boolean + : x.toString(); // number } })(m3 = m2.m3 || (m2.m3 = {})); })(m2 || (m2 = {})); diff --git a/tests/baselines/reference/typeGuardsInIfStatement.js b/tests/baselines/reference/typeGuardsInIfStatement.js index 6b1fb4b062c..c228c038579 100644 --- a/tests/baselines/reference/typeGuardsInIfStatement.js +++ b/tests/baselines/reference/typeGuardsInIfStatement.js @@ -258,7 +258,8 @@ function foo10(x) { else { var y; var b = x; // number | boolean - return typeof x === "number" ? x === 10 : x; // x should be boolean + return typeof x === "number" ? x === 10 // number + : x; // x should be boolean } } function foo11(x) { @@ -270,7 +271,13 @@ function foo11(x) { else { var y; var b = x; // number | boolean | string - because below we are changing value of x in if statement - return typeof x === "number" ? (x = 10 && x.toString()) : (y = x && x.toString()); + return typeof x === "number" ? ( + // change value of x + x = 10 && x.toString() // number | boolean | string + ) : ( + // do not change value + y = x && x.toString() // number | boolean | string + ); } } function foo12(x) { @@ -282,6 +289,7 @@ function foo12(x) { else { x = 10; var b = x; // number | boolean | string - return typeof x === "number" ? x.toString() : x.toString(); // boolean | string + return typeof x === "number" ? x.toString() // number + : x.toString(); // boolean | string } } diff --git a/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.js b/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.js index 501c5d8a9f9..ffba829c37d 100644 --- a/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.js +++ b/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.js @@ -71,26 +71,37 @@ function foo3(x) { return typeof x === "string" && ((x = "hello") && x); // string | number } function foo4(x) { - return typeof x !== "string" && typeof x !== "number" && x; // boolean + return typeof x !== "string" // string | number | boolean + && typeof x !== "number" // number | boolean + && x; // boolean } function foo5(x) { // usage of x or assignment to separate variable shouldn't cause narrowing of type to stop var b; - return typeof x !== "string" && ((b = x) && (typeof x !== "number" && x)); // boolean + return typeof x !== "string" // string | number | boolean + && ((b = x) && (typeof x !== "number" // number | boolean + && x)); // boolean } function foo6(x) { // Mixing typeguard narrowing in if statement with conditional expression typeguard - return typeof x !== "string" && (typeof x !== "number" ? x : x === 10); // number + return typeof x !== "string" // string | number | boolean + && (typeof x !== "number" // number | boolean + ? x // boolean + : x === 10); // number } function foo7(x) { var y; var z; // Mixing typeguard narrowing // Assigning value to x deep inside another guard stops narrowing of type too - return typeof x !== "string" && ((z = x) && (typeof x === "number" ? (x = 10 && x.toString()) : (y = x && x.toString()))); // number | boolean | string + return typeof x !== "string" && ((z = x) // string | number | boolean - x changed deeper in conditional expression + && (typeof x === "number" ? (x = 10 && x.toString()) // number | boolean | string + : (y = x && x.toString()))); // number | boolean | string } function foo8(x) { // Mixing typeguard // Assigning value to x in outer guard shouldn't stop narrowing in the inner expression - return typeof x !== "string" && (x = 10) && (typeof x === "number" ? x : x.length); // string + return typeof x !== "string" && (x = 10) // change x - number| string + && (typeof x === "number" ? x // number + : x.length); // string } diff --git a/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.js b/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.js index d2b7938a9ca..5f5880a4947 100644 --- a/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.js +++ b/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.js @@ -71,26 +71,37 @@ function foo3(x) { return typeof x !== "string" || ((x = "hello") || x); // string | number } function foo4(x) { - return typeof x === "string" || typeof x === "number" || x; // boolean + return typeof x === "string" // string | number | boolean + || typeof x === "number" // number | boolean + || x; // boolean } function foo5(x) { // usage of x or assignment to separate variable shouldn't cause narrowing of type to stop var b; - return typeof x === "string" || ((b = x) || (typeof x === "number" || x)); // boolean + return typeof x === "string" // string | number | boolean + || ((b = x) || (typeof x === "number" // number | boolean + || x)); // boolean } function foo6(x) { // Mixing typeguard - return typeof x === "string" || (typeof x !== "number" ? x : x === 10); // number + return typeof x === "string" // string | number | boolean + || (typeof x !== "number" // number | boolean + ? x // boolean + : x === 10); // number } function foo7(x) { var y; var z; // Mixing typeguard narrowing // Assigning value to x deep inside another guard stops narrowing of type too - return typeof x === "string" || ((z = x) || (typeof x === "number" ? (x = 10 && x.toString()) : (y = x && x.toString()))); // number | boolean | string + return typeof x === "string" || ((z = x) // string | number | boolean - x changed deeper in conditional expression + || (typeof x === "number" ? (x = 10 && x.toString()) // number | boolean | string + : (y = x && x.toString()))); // number | boolean | string } function foo8(x) { // Mixing typeguard // Assigning value to x in outer guard shouldn't stop narrowing in the inner expression - return typeof x === "string" || (x = 10) || (typeof x === "number" ? x : x.length); // string + return typeof x === "string" || (x = 10) // change x - number| string + || (typeof x === "number" ? x // number + : x.length); // string } diff --git a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.js b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.js index 5196497478e..cddf9ebf254 100644 --- a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.js +++ b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.js @@ -131,12 +131,12 @@ var WinJS; })(WinJS || (WinJS = {})); var Errors; (function (Errors) { - var ConnectionError = (function () { - function ConnectionError(request) { + var ConnectionError /* extends Error */ = (function () { + function ConnectionError /* extends Error */(request) { } - return ConnectionError; + return ConnectionError /* extends Error */; })(); - Errors.ConnectionError = ConnectionError; + Errors.ConnectionError /* extends Error */ = ConnectionError /* extends Error */; })(Errors || (Errors = {})); var FileService = (function () { function FileService() { From 0940d3bb3b923615568f5cc56d876b4a6576cf79 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Thu, 22 Jan 2015 17:16:18 -0800 Subject: [PATCH 078/211] handle union properties in when doing getOccurences\findAllReferences --- src/services/services.ts | 3 ++- tests/cases/fourslash/scopeOfUnionProperties.ts | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/scopeOfUnionProperties.ts diff --git a/src/services/services.ts b/src/services/services.ts index 84e5e7fefa5..d56c2c29639 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3903,7 +3903,8 @@ module ts { } // if this symbol is visible from its parent container, e.g. exported, then bail out - if (symbol.parent) { + // if symbol correspond to the union property - bail out + if (symbol.parent || (symbol.getFlags() & SymbolFlags.UnionProperty)) { return undefined; } diff --git a/tests/cases/fourslash/scopeOfUnionProperties.ts b/tests/cases/fourslash/scopeOfUnionProperties.ts new file mode 100644 index 00000000000..ec2fe3a9ac5 --- /dev/null +++ b/tests/cases/fourslash/scopeOfUnionProperties.ts @@ -0,0 +1,7 @@ +/// + +////function f(s: string | number) { +//// s.constr/*1*/uctor +////} +goTo.marker("1") +verify.occurrencesAtPositionCount(1); From 4a7aa7e929c96adf4b3bf67408931603c90f4738 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Thu, 22 Jan 2015 19:09:10 -0800 Subject: [PATCH 079/211] Address CR feedback --- src/compiler/binder.ts | 17 +++++++++-------- src/compiler/checker.ts | 34 +++++++++++++++++++++------------- src/compiler/emitter.ts | 6 +++--- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 730fff06897..fe52e26ddd1 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -50,12 +50,13 @@ module ts { } /** - * 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 + * A declaration has a dynamic name if both of the following are true: + * 1. The declaration has a computed property name + * 2. The computed name is *not* expressed as Symbol., where name + * is a property of the Symbol constructor that denotes a built in + * Symbol. */ - export function hasComputedNameButNotSymbol(declaration: Declaration): boolean { + export function hasDynamicName(declaration: Declaration): boolean { return declaration.name && declaration.name.kind === SyntaxKind.ComputedPropertyName; } @@ -96,7 +97,7 @@ module ts { if (node.kind === SyntaxKind.ModuleDeclaration && node.name.kind === SyntaxKind.StringLiteral) { return '"' + (node.name).text + '"'; } - Debug.assert(!hasComputedNameButNotSymbol(node)); + Debug.assert(!hasDynamicName(node)); return (node.name).text; } switch (node.kind) { @@ -118,7 +119,7 @@ module ts { } function declareSymbol(symbols: SymbolTable, parent: Symbol, node: Declaration, includes: SymbolFlags, excludes: SymbolFlags): Symbol { - Debug.assert(!hasComputedNameButNotSymbol(node)); + Debug.assert(!hasDynamicName(node)); var name = getDeclarationName(node); if (name !== undefined) { @@ -508,7 +509,7 @@ module ts { } function bindPropertyOrMethodOrAccessor(node: Declaration, symbolKind: SymbolFlags, symbolExcludes: SymbolFlags, isBlockScopeContainer: boolean) { - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); } else { diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index feaeff75e8f..66edc7cda2d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -337,6 +337,15 @@ module ts { break loop; } break; + + // It is not legal to reference a class's own type parameters from a computed property name that + // belongs to the class. For example: + // + // function foo() { return '' } + // class C { // <-- Class's own type parameter T + // [foo()]() { } // <-- Reference to T from class's own computed property + // } + // case SyntaxKind.ComputedPropertyName: var grandparent = location.parent.parent; if (grandparent.kind === SyntaxKind.ClassDeclaration || grandparent.kind === SyntaxKind.InterfaceDeclaration) { @@ -1716,7 +1725,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 && !hasComputedNameButNotSymbol(func)) { + if (func.kind === SyntaxKind.SetAccessor && !hasDynamicName(func)) { var getter = getDeclarationOfKind(declaration.parent.symbol, SyntaxKind.GetAccessor); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); @@ -2632,7 +2641,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 && !hasComputedNameButNotSymbol(declaration)) { + if (declaration.kind === SyntaxKind.GetAccessor && !hasDynamicName(declaration)) { var setter = getDeclarationOfKind(declaration.symbol, SyntaxKind.SetAccessor); returnType = getAnnotatedAccessorType(setter); } @@ -5165,7 +5174,7 @@ module ts { var objectLiteral = element.parent; var type = getContextualType(objectLiteral); if (type) { - if (!hasComputedNameButNotSymbol(element)) { + if (!hasDynamicName(element)) { // For a (non-symbol) computed property, there is no reason to look up the name // in the type. It will just be "__computed", which does not appear in any // SymbolTable. @@ -5418,9 +5427,8 @@ module ts { if (!links.resolvedType) { links.resolvedType = checkExpression(node.expression); - // This will only allow types number, string, or any. Any types more complex will - // be disallowed, even union types like string | number. In the future, we might consider - // allowing types like that. + // This will allow types number, string, or any. It will also allow enums, the unknown + // type, and any union of these types (like string | number). if (!isTypeOfKind(links.resolvedType, TypeFlags.Any | TypeFlags.NumberLike | TypeFlags.StringLike)) { error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); } @@ -5477,7 +5485,7 @@ module ts { checkAccessorDeclaration(memberDecl); } - if (!hasComputedNameButNotSymbol(memberDecl)) { + if (!hasDynamicName(memberDecl)) { properties[member.name] = member; } } @@ -7079,7 +7087,7 @@ module ts { } function checkPropertyAssignment(node: PropertyAssignment, contextualMapper?: TypeMapper): Type { - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { checkComputedPropertyName(node.name); } @@ -7090,7 +7098,7 @@ module ts { // Grammar checking checkGrammarMethod(node); - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { checkComputedPropertyName(node.name); } @@ -7464,7 +7472,7 @@ module ts { } } - if (!hasComputedNameButNotSymbol(node)) { + if (!hasDynamicName(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; @@ -7902,7 +7910,7 @@ module ts { function checkFunctionLikeDeclaration(node: FunctionLikeDeclaration): void { checkSignatureDeclaration(node); - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { // This check will account for methods in class/interface declarations, // as well as accessors in classes/object literals checkComputedPropertyName(node.name); @@ -8136,7 +8144,7 @@ module ts { function checkVariableLikeDeclaration(node: VariableLikeDeclaration) { checkSourceElement(node.type); // For a computed property, just check the initializer and exit - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { checkComputedPropertyName(node.name); if (node.initializer) { checkExpressionCached(node.initializer); @@ -8501,7 +8509,7 @@ module ts { // Only process instance properties with computed names here. // Static properties cannot be in conflict with indexers, // and properties with literal names were already checked. - if (!(member.flags & NodeFlags.Static) && hasComputedNameButNotSymbol(member)) { + if (!(member.flags & NodeFlags.Static) && hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, IndexKind.String); checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, IndexKind.Number); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b61b87b8dc7..6626823379b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -932,7 +932,7 @@ module ts { } function emitPropertyDeclaration(node: Declaration) { - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { return; } @@ -1036,7 +1036,7 @@ module ts { } function emitAccessorDeclaration(node: AccessorDeclaration) { - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { return; } @@ -1117,7 +1117,7 @@ module ts { } function emitFunctionDeclaration(node: FunctionLikeDeclaration) { - if (hasComputedNameButNotSymbol(node)) { + if (hasDynamicName(node)) { return; } From de9547cc9e6134d83f790f0314346236cfca1dbd Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 23 Jan 2015 17:08:08 -0800 Subject: [PATCH 080/211] Update type checking for lexical binding due to merge with master --- src/compiler/checker.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f3f90b633ab..fd93858c24a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4832,9 +4832,12 @@ module ts { container = getThisContainer(container, /* includeArrowFunctions */ false); // When targeting es6, arrow function lexically bind "this" so we do not need to do the work of binding "this" in emitted code - if (compilerOptions.target < ScriptTarget.ES6) { - needToCaptureLexicalThis = true; + if (compilerOptions.target >= ScriptTarget.ES6) { + needToCaptureLexicalThis = false; } + else { + needToCaptureLexicalThis = true; + } } switch (container.kind) { From b05f2bf1a3ebbd0a1967c63d5cd6852d396f4bad Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 23 Jan 2015 17:08:30 -0800 Subject: [PATCH 081/211] handle binding patterns correctly when getting script lexical structure --- src/services/navigationBar.ts | 2 +- .../cases/fourslash/scriptLexicalStructureBindingPatterns.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 9051ee80399..5ffcc6e1b6a 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -51,7 +51,7 @@ module ts.NavigationBar { forEach((node).elements, visit); break; case SyntaxKind.VariableDeclaration: - if (isBindingPattern(node)) { + if (isBindingPattern((node).name)) { visit((node).name); break; } diff --git a/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts b/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts new file mode 100644 index 00000000000..b3141de5720 --- /dev/null +++ b/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts @@ -0,0 +1,4 @@ +/// +////var foo, {} +////var bar, [] +verify.getScriptLexicalStructureListCount(3); // global (1) + variable declarations (2) From 593a0992f91e77201a44cc291314b9f02cad29a0 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 23 Jan 2015 17:28:12 -0800 Subject: [PATCH 082/211] Update emitter due to merge with master --- src/compiler/emitter.ts | 2 +- src/harness/projectsRunner.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 61d60aebf3a..db13a2c03cd 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3300,7 +3300,7 @@ module ts { // When targeting ES6, emit arrow function natively in ES6 if (isES6ArrowFunction(node)) { - write(" => "); + write(" =>"); } write(" {"); diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index cbef1a2e718..9b16e93d8eb 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -164,8 +164,7 @@ class ProjectRunner extends RunnerBase { mapRoot: testCase.resolveMapRoot && testCase.mapRoot ? ts.sys.resolvePath(testCase.mapRoot) : testCase.mapRoot, sourceRoot: testCase.resolveSourceRoot && testCase.sourceRoot ? ts.sys.resolvePath(testCase.sourceRoot) : testCase.sourceRoot, module: moduleKind, - noResolve: testCase.noResolve, - target: ts.ScriptTarget.Latest + noResolve: testCase.noResolve }; } From 3115288ec56824117acebe47baadcc6194771227 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 23 Jan 2015 17:28:30 -0800 Subject: [PATCH 083/211] Update baseline and fix white space --- .../reference/constDeclarations-scopes.js | 4 +-- .../constDeclarations-validContexts.js | 4 +-- .../reference/emitArrowFunctionES6.js | 12 ++++---- .../emitArrowFunctionThisCapturingES6.js | 6 ++-- ...tDefaultParametersFunctionExpressionES6.js | 8 ++--- ...emitRestParametersFunctionExpressionES6.js | 4 +-- .../reference/letDeclarations-scopes.js | 4 +-- .../letDeclarations-validContexts.js | 4 +-- .../parenthesizedContexualTyping3.js | 16 +++++----- .../noDefaultLib/amd/noDefaultLib.errors.txt | 2 -- .../noDefaultLib/node/noDefaultLib.errors.txt | 2 -- .../reference/project/prologueEmit/amd/out.js | 3 +- .../project/prologueEmit/node/out.js | 3 +- .../taggedTemplateContextualTyping1.js | 14 ++++----- .../taggedTemplateContextualTyping2.js | 8 ++--- ...TemplateStringsTypeArgumentInferenceES6.js | 30 +++++++++---------- ...plateStringsWithOverloadResolution3_ES6.js | 4 +-- .../templateStringInArrowFunctionES6.js | 2 +- ...plateStringWithEmbeddedArrowFunctionES6.js | 2 +- 19 files changed, 65 insertions(+), 67 deletions(-) diff --git a/tests/baselines/reference/constDeclarations-scopes.js b/tests/baselines/reference/constDeclarations-scopes.js index 1250adcbc47..aa35dc7df76 100644 --- a/tests/baselines/reference/constDeclarations-scopes.js +++ b/tests/baselines/reference/constDeclarations-scopes.js @@ -220,7 +220,7 @@ function F() { const c = 0; n = c; } -var F2 = () => { +var F2 = () => { const c = 0; n = c; }; @@ -269,7 +269,7 @@ var o = { const c = 0; n = c; }, - f2: () => { + f2: () => { const c = 0; n = c; } diff --git a/tests/baselines/reference/constDeclarations-validContexts.js b/tests/baselines/reference/constDeclarations-validContexts.js index 42c13728d86..7c33c4e1446 100644 --- a/tests/baselines/reference/constDeclarations-validContexts.js +++ b/tests/baselines/reference/constDeclarations-validContexts.js @@ -183,7 +183,7 @@ const c18 = 0; function F() { const c19 = 0; } -var F2 = () => { +var F2 = () => { const c20 = 0; }; var F3 = function () { @@ -223,7 +223,7 @@ var o = { f() { const c28 = 0; }, - f2: () => { + f2: () => { const c29 = 0; } }; diff --git a/tests/baselines/reference/emitArrowFunctionES6.js b/tests/baselines/reference/emitArrowFunctionES6.js index 2f054c97f32..c518a52f629 100644 --- a/tests/baselines/reference/emitArrowFunctionES6.js +++ b/tests/baselines/reference/emitArrowFunctionES6.js @@ -9,17 +9,17 @@ foo(() => { return false; }); //// [emitArrowFunctionES6.js] -var f1 = () => { +var f1 = () => { }; -var f2 = (x, y) => { +var f2 = (x, y) => { }; -var f3 = (x, y, ...rest) => { +var f3 = (x, y, ...rest) => { }; -var f4 = (x, y, z = 10) => { +var f4 = (x, y, z = 10) => { }; function foo(func) { } -foo(() => { return true; }); -foo(() => { +foo(() => { return true; }); +foo(() => { return false; }); diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js index f8c4426ed55..bf235bc0eef 100644 --- a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js @@ -15,15 +15,15 @@ foo(() => { //// [emitArrowFunctionThisCapturingES6.js] -var f1 = () => { +var f1 = () => { this.age = 10; }; -var f2 = (x) => { +var f2 = (x) => { this.name = x; }; function foo(func) { } -foo(() => { +foo(() => { this.age = 100; return true; }); diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js index eabb0e1e344..5a49a200c6b 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js @@ -9,13 +9,13 @@ var y = (function (num = 10, boo = false, ...rest) { })() var z = (function (num: number, boo = false, ...rest) { })(10) //// [emitDefaultParametersFunctionExpressionES6.js] -var lambda1 = function (y = "hello") { +var lambda1 = (y = "hello") => { }; -var lambda2 = function (x, y = "hello") { +var lambda2 = (x, y = "hello") => { }; -var lambda3 = function (x, y = "hello", ...rest) { +var lambda3 = (x, y = "hello", ...rest) => { }; -var lambda4 = function (y = "hello", ...rest) { +var lambda4 = (y = "hello", ...rest) => { }; var x = function (str = "hello", ...rest) { }; diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js index 6c79e4956ae..c7851db5e78 100644 --- a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js @@ -5,9 +5,9 @@ var funcExp2 = function (...rest) { } var funcExp3 = (function (...rest) { })() //// [emitRestParametersFunctionExpressionES6.js] -var funcExp = function (...rest) { +var funcExp = (...rest) => { }; -var funcExp1 = function (X, ...rest) { +var funcExp1 = (X, ...rest) => { }; var funcExp2 = function (...rest) { }; diff --git a/tests/baselines/reference/letDeclarations-scopes.js b/tests/baselines/reference/letDeclarations-scopes.js index 4398aade539..b4910f0ed45 100644 --- a/tests/baselines/reference/letDeclarations-scopes.js +++ b/tests/baselines/reference/letDeclarations-scopes.js @@ -236,7 +236,7 @@ function F() { let l = 0; n = l; } -var F2 = () => { +var F2 = () => { let l = 0; n = l; }; @@ -286,7 +286,7 @@ var o = { let l = 0; n = l; }, - f2: () => { + f2: () => { let l = 0; n = l; } diff --git a/tests/baselines/reference/letDeclarations-validContexts.js b/tests/baselines/reference/letDeclarations-validContexts.js index 01c76c024e6..7347be61325 100644 --- a/tests/baselines/reference/letDeclarations-validContexts.js +++ b/tests/baselines/reference/letDeclarations-validContexts.js @@ -203,7 +203,7 @@ let l18 = 0; function F() { let l19 = 0; } -var F2 = () => { +var F2 = () => { let l20 = 0; }; var F3 = function () { @@ -243,7 +243,7 @@ var o = { f() { let l28 = 0; }, - f2: () => { + f2: () => { let l29 = 0; } }; diff --git a/tests/baselines/reference/parenthesizedContexualTyping3.js b/tests/baselines/reference/parenthesizedContexualTyping3.js index 69784d14ce4..efff077d331 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping3.js +++ b/tests/baselines/reference/parenthesizedContexualTyping3.js @@ -25,11 +25,11 @@ var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` function tempFun(tempStrs, g, x) { return g(x); } -var a = tempFun `${function (x) { return x; }} ${10}`; -var b = tempFun `${(function (x) { return x; })} ${10}`; -var c = tempFun `${((function (x) { return x; }))} ${10}`; -var d = tempFun `${function (x) { return x; }} ${function (x) { return x; }} ${10}`; -var e = tempFun `${function (x) { return x; }} ${(function (x) { return x; })} ${10}`; -var f = tempFun `${function (x) { return x; }} ${((function (x) { return x; }))} ${10}`; -var g = tempFun `${(function (x) { return x; })} ${(((function (x) { return x; })))} ${10}`; -var h = tempFun `${(function (x) { return x; })} ${(((function (x) { return x; })))} ${undefined}`; +var a = tempFun `${(x) => { return x; }} ${10}`; +var b = tempFun `${((x) => { return x; })} ${10}`; +var c = tempFun `${(((x) => { return x; }))} ${10}`; +var d = tempFun `${(x) => { return x; }} ${(x) => { return x; }} ${10}`; +var e = tempFun `${(x) => { return x; }} ${((x) => { return x; })} ${10}`; +var f = tempFun `${(x) => { return x; }} ${(((x) => { return x; }))} ${10}`; +var g = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${10}`; +var h = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${undefined}`; diff --git a/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt b/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt index a18186f558d..5541c8d7c19 100644 --- a/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt +++ b/tests/baselines/reference/project/noDefaultLib/amd/noDefaultLib.errors.txt @@ -1,4 +1,3 @@ -error TS2318: Cannot find global type 'TemplateStringsArray'. error TS2318: Cannot find global type 'String'. error TS2318: Cannot find global type 'RegExp'. error TS2318: Cannot find global type 'Object'. @@ -10,7 +9,6 @@ error TS2318: Cannot find global type 'Array'. test.ts(3,8): error TS2304: Cannot find name 'Array'. -!!! error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'String'. !!! error TS2318: Cannot find global type 'RegExp'. !!! error TS2318: Cannot find global type 'Object'. diff --git a/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt b/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt index a18186f558d..5541c8d7c19 100644 --- a/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt +++ b/tests/baselines/reference/project/noDefaultLib/node/noDefaultLib.errors.txt @@ -1,4 +1,3 @@ -error TS2318: Cannot find global type 'TemplateStringsArray'. error TS2318: Cannot find global type 'String'. error TS2318: Cannot find global type 'RegExp'. error TS2318: Cannot find global type 'Object'. @@ -10,7 +9,6 @@ error TS2318: Cannot find global type 'Array'. test.ts(3,8): error TS2304: Cannot find name 'Array'. -!!! error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'String'. !!! error TS2318: Cannot find global type 'RegExp'. !!! error TS2318: Cannot find global type 'Object'. diff --git a/tests/baselines/reference/project/prologueEmit/amd/out.js b/tests/baselines/reference/project/prologueEmit/amd/out.js index 635493592a4..b19a07f6490 100644 --- a/tests/baselines/reference/project/prologueEmit/amd/out.js +++ b/tests/baselines/reference/project/prologueEmit/amd/out.js @@ -1,5 +1,6 @@ +var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(() => { return this.window; }); +(function () { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/baselines/reference/project/prologueEmit/node/out.js b/tests/baselines/reference/project/prologueEmit/node/out.js index 635493592a4..b19a07f6490 100644 --- a/tests/baselines/reference/project/prologueEmit/node/out.js +++ b/tests/baselines/reference/project/prologueEmit/node/out.js @@ -1,5 +1,6 @@ +var _this = this; // Add a lambda to ensure global 'this' capture is triggered -(() => { return this.window; }); +(function () { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } diff --git a/tests/baselines/reference/taggedTemplateContextualTyping1.js b/tests/baselines/reference/taggedTemplateContextualTyping1.js index c1ae5c384e4..be8ec812741 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping1.js +++ b/tests/baselines/reference/taggedTemplateContextualTyping1.js @@ -26,28 +26,28 @@ function tempTag1(...rest) { // Otherwise, the arrow functions' parameters will be typed as 'any', // and it is an error to invoke an any-typed value with type arguments, // so this test will error. -tempTag1 `${function (x) { +tempTag1 `${(x) => { x(undefined); return x; }}${10}`; -tempTag1 `${function (x) { +tempTag1 `${(x) => { x(undefined); return x; -}}${function (y) { +}}${(y) => { y(undefined); return y; }}${10}`; -tempTag1 `${function (x) { +tempTag1 `${(x) => { x(undefined); return x; -}}${function (y) { +}}${(y) => { y(undefined); return y; }}${undefined}`; -tempTag1 `${function (x) { +tempTag1 `${(x) => { x(undefined); return x; -}}${function (y) { +}}${(y) => { y(undefined); return y; }}${undefined}`; diff --git a/tests/baselines/reference/taggedTemplateContextualTyping2.js b/tests/baselines/reference/taggedTemplateContextualTyping2.js index a24de8224f3..387d5f49883 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping2.js +++ b/tests/baselines/reference/taggedTemplateContextualTyping2.js @@ -25,18 +25,18 @@ function tempTag2(...rest) { // Otherwise, the arrow functions' parameters will be typed as 'any', // and it is an error to invoke an any-typed value with type arguments, // so this test will error. -tempTag2 `${function (x) { +tempTag2 `${(x) => { x(undefined); return x; }}${0}`; -tempTag2 `${function (x) { +tempTag2 `${(x) => { x(undefined); return x; -}}${function (y) { +}}${(y) => { y(null); return y; }}${"hello"}`; -tempTag2 `${function (x) { +tempTag2 `${(x) => { x(undefined); return x; }}${undefined}${"hello"}`; diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js index 2e30b756823..8e96736e790 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js @@ -111,40 +111,40 @@ someGenerics1b `${3}`; // Generic tag with argument of function type whose parameter is of type parameter type function someGenerics2a(strs, n) { } -someGenerics2a `${(n) => { return n; }}`; +someGenerics2a `${(n) => { return n; }}`; function someGenerics2b(strs, n) { } -someGenerics2b `${(n, x) => { return n; }}`; +someGenerics2b `${(n, x) => { return n; }}`; // Generic tag with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter function someGenerics3(strs, producer) { } -someGenerics3 `${() => { return ''; }}`; -someGenerics3 `${() => { return undefined; }}`; -someGenerics3 `${() => { return 3; }}`; +someGenerics3 `${() => { return ''; }}`; +someGenerics3 `${() => { return undefined; }}`; +someGenerics3 `${() => { return 3; }}`; // 2 parameter generic tag with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(strs, n, f) { } -someGenerics4 `${4}${() => { return null; }}`; -someGenerics4 `${''}${() => { return 3; }}`; +someGenerics4 `${4}${() => { return null; }}`; +someGenerics4 `${''}${() => { return 3; }}`; someGenerics4 `${null}${null}`; // 2 parameter generic tag with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(strs, n, f) { } -someGenerics5 `${4} ${() => { return null; }}`; -someGenerics5 `${''}${() => { return 3; }}`; +someGenerics5 `${4} ${() => { return null; }}`; +someGenerics5 `${''}${() => { return 3; }}`; someGenerics5 `${null}${null}`; // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs, a, b, c) { } -someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with multiple arguments of function types that each have parameters of different generic type function someGenerics7(strs, a, b, c) { } -someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with argument of generic function type function someGenerics8(strs, n) { return n; diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js index 99363d21de9..eb7086eadec 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js @@ -118,5 +118,5 @@ fn4 `${null}${true}`; function fn5() { return undefined; } -fn5 `${(n) => { return n.toFixed(); }}`; // will error; 'n' should have type 'string'. -fn5 `${(n) => { return n.substr(0); }}`; +fn5 `${(n) => { return n.toFixed(); }}`; // will error; 'n' should have type 'string'. +fn5 `${(n) => { return n.substr(0); }}`; diff --git a/tests/baselines/reference/templateStringInArrowFunctionES6.js b/tests/baselines/reference/templateStringInArrowFunctionES6.js index 2cb33efe5d6..1dc7b5c9fa1 100644 --- a/tests/baselines/reference/templateStringInArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringInArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = x => `abc${ x }def`; //// [templateStringInArrowFunctionES6.js] -var x = (x) => { return `abc${x}def`; }; +var x = (x) => { return `abc${x}def`; }; diff --git a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js index 9789c68047f..5d95a9a0079 100644 --- a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = `abc${ x => x }def`; //// [templateStringWithEmbeddedArrowFunctionES6.js] -var x = `abc${(x) => { return x; }}def`; +var x = `abc${(x) => { return x; }}def`; From f4ca318c39ca4181fb331c2b03980524359c0572 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Sat, 24 Jan 2015 00:17:55 -0800 Subject: [PATCH 084/211] add binding elements from variable declaration into script lexical structure --- src/services/navigationBar.ts | 36 ++++++++++++++----- .../scriptLexicalStructureBindingPatterns.ts | 19 +++++++++- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 5ffcc6e1b6a..423ee5e58a6 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -50,6 +50,7 @@ module ts.NavigationBar { case SyntaxKind.ArrayBindingPattern: forEach((node).elements, visit); break; + case SyntaxKind.BindingElement: case SyntaxKind.VariableDeclaration: if (isBindingPattern((node).name)) { visit((node).name); @@ -262,17 +263,34 @@ module ts.NavigationBar { return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.functionElement); case SyntaxKind.VariableDeclaration: - if (isBindingPattern((node).name)) { - break; - } - if (isConst(node)) { - return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.constElement); - } - else if (isLet(node)) { - return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.letElement); + case SyntaxKind.BindingElement: + var variableDeclarationNode: Node; + var name: Node; + + if (node.kind === SyntaxKind.BindingElement) { + name = (node).name; + variableDeclarationNode = node; + // binding elements are added only for variable declarations + // bubble up to the containing variable declaration + while (variableDeclarationNode && variableDeclarationNode.kind !== SyntaxKind.VariableDeclaration) { + variableDeclarationNode = variableDeclarationNode.parent; + } + Debug.assert(variableDeclarationNode !== undefined); } else { - return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.variableElement); + Debug.assert(!isBindingPattern((node).name)); + variableDeclarationNode = node; + name = (node).name; + } + + if (isConst(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.constElement); + } + else if (isLet(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.letElement); + } + else { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); } case SyntaxKind.Constructor: diff --git a/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts b/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts index b3141de5720..2b363bfad3b 100644 --- a/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts +++ b/tests/cases/fourslash/scriptLexicalStructureBindingPatterns.ts @@ -1,4 +1,21 @@ /// +////'use strict' ////var foo, {} ////var bar, [] -verify.getScriptLexicalStructureListCount(3); // global (1) + variable declarations (2) +////let foo1, {a, b} +////const bar1, [c, d] +////var {e, x: [f, g]} = {a:1, x:[]}; + +verify.getScriptLexicalStructureListCount(12); // global (1) + variable declarations (4) + binding patterns (7) +verify.getScriptLexicalStructureListContains("foo", "var"); +verify.getScriptLexicalStructureListContains("bar", "var"); +verify.getScriptLexicalStructureListContains("foo1", "let") +verify.getScriptLexicalStructureListContains("a", "let"); +verify.getScriptLexicalStructureListContains("b", "let"); +verify.getScriptLexicalStructureListContains("bar1", "const"); +verify.getScriptLexicalStructureListContains("c", "const"); +verify.getScriptLexicalStructureListContains("d", "const"); +verify.getScriptLexicalStructureListContains("e", "var"); +verify.getScriptLexicalStructureListContains("f", "var"); +verify.getScriptLexicalStructureListContains("g", "var"); + From 15dcccde7ddbbb3626a3e3c2d5a53fe27650196a Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 24 Jan 2015 08:03:29 -0800 Subject: [PATCH 085/211] Improved subtype compatibility for types of object literals --- src/compiler/checker.ts | 73 ++++++++++++++++++++--------------------- src/compiler/types.ts | 5 ++- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7233c2e85d5..431d81696a1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -66,8 +66,8 @@ module ts { var numberType = createIntrinsicType(TypeFlags.Number, "number"); var booleanType = createIntrinsicType(TypeFlags.Boolean, "boolean"); var voidType = createIntrinsicType(TypeFlags.Void, "void"); - var undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.Unwidened, "undefined"); - var nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.Unwidened, "null"); + var undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.ContainsUndefined, "undefined"); + var nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.ContainsUndefined, "null"); var unknownType = createIntrinsicType(TypeFlags.Any, "unknown"); var resolvingType = createIntrinsicType(TypeFlags.Any, "__resolving__"); @@ -2807,15 +2807,19 @@ module ts { } } - function getUnwidenedFlagOfTypes(types: Type[]): TypeFlags { - return forEach(types, t => t.flags & TypeFlags.Unwidened) || 0; + function getWideningFlagsOfTypes(types: Type[]): TypeFlags { + var result: TypeFlags = 0; + for (var i = 0; i < types.length; i++) { + result |= types[i].flags; + } + return result & TypeFlags.RequiresWidening; } function createTypeReference(target: GenericType, typeArguments: Type[]): TypeReference { var id = getTypeListId(typeArguments); var type = target.instantiations[id]; if (!type) { - var flags = TypeFlags.Reference | getUnwidenedFlagOfTypes(typeArguments); + var flags = TypeFlags.Reference | getWideningFlagsOfTypes(typeArguments); type = target.instantiations[id] = createObjectType(flags, target.symbol); type.target = target; type.typeArguments = typeArguments; @@ -3076,7 +3080,7 @@ module ts { var id = getTypeListId(sortedTypes); var type = unionTypes[id]; if (!type) { - type = unionTypes[id] = createObjectType(TypeFlags.Union | getUnwidenedFlagOfTypes(sortedTypes)); + type = unionTypes[id] = createObjectType(TypeFlags.Union | getWideningFlagsOfTypes(sortedTypes)); type.types = sortedTypes; } return type; @@ -3692,12 +3696,13 @@ module ts { } var result = Ternary.True; var properties = getPropertiesOfObjectType(target); + var requireOptionalProperties = relation === subtypeRelation && !(source.flags & TypeFlags.ObjectLiteral); 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 || !(targetProp.flags & SymbolFlags.Optional)) { + if (!(targetProp.flags & SymbolFlags.Optional) || requireOptionalProperties) { if (reportErrors) { reportError(Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); } @@ -4088,10 +4093,6 @@ module ts { errorMessageChainHead); } - function isTypeOfObjectLiteral(type: Type): boolean { - return (type.flags & TypeFlags.Anonymous) && type.symbol && (type.symbol.flags & SymbolFlags.ObjectLiteral) ? true : false; - } - function isArrayType(type: Type): boolean { return type.flags & TypeFlags.Reference && (type).target === globalArrayType; } @@ -4104,13 +4105,18 @@ module ts { var properties = getPropertiesOfObjectType(type); var members: SymbolTable = {}; forEach(properties, p => { - var symbol = createSymbol(p.flags | SymbolFlags.Transient, p.name); - symbol.declarations = p.declarations; - symbol.parent = p.parent; - symbol.type = getWidenedType(getTypeOfSymbol(p)); - symbol.target = p; - if (p.valueDeclaration) symbol.valueDeclaration = p.valueDeclaration; - members[symbol.name] = symbol; + var propType = getTypeOfSymbol(p); + var widenedType = getWidenedType(propType); + if (propType !== widenedType) { + var symbol = createSymbol(p.flags | SymbolFlags.Transient, p.name); + symbol.declarations = p.declarations; + symbol.parent = p.parent; + symbol.type = getWidenedType(getTypeOfSymbol(p)); + symbol.target = p; + if (p.valueDeclaration) symbol.valueDeclaration = p.valueDeclaration; + p = symbol; + } + members[p.name] = p; }); var stringIndexType = getIndexTypeOfType(type, IndexKind.String); var numberIndexType = getIndexTypeOfType(type, IndexKind.Number); @@ -4120,16 +4126,16 @@ module ts { } function getWidenedType(type: Type): Type { - if (type.flags & TypeFlags.Unwidened) { + if (type.flags & TypeFlags.RequiresWidening) { if (type.flags & (TypeFlags.Undefined | TypeFlags.Null)) { return anyType; } + if (type.flags & TypeFlags.ObjectLiteral) { + return getWidenedTypeOfObjectLiteral(type); + } if (type.flags & TypeFlags.Union) { return getUnionType(map((type).types, getWidenedType)); } - if (isTypeOfObjectLiteral(type)) { - return getWidenedTypeOfObjectLiteral(type); - } if (isArrayType(type)) { return createArrayType(getWidenedType((type).typeArguments[0])); } @@ -4150,11 +4156,11 @@ module ts { if (isArrayType(type)) { return reportWideningErrorsInType((type).typeArguments[0]); } - if (isTypeOfObjectLiteral(type)) { + if (type.flags & TypeFlags.ObjectLiteral) { var errorReported = false; forEach(getPropertiesOfObjectType(type), p => { var t = getTypeOfSymbol(p); - if (t.flags & TypeFlags.Unwidened) { + if (t.flags & TypeFlags.ContainsUndefined) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } @@ -4198,7 +4204,7 @@ module ts { } function reportErrorsFromWidening(declaration: Declaration, type: Type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & TypeFlags.Unwidened) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & TypeFlags.ContainsUndefined) { // Report implicit any error within type if possible, otherwise report error on declaration if (!reportWideningErrorsInType(type)) { reportImplicitAnyError(declaration, type); @@ -5455,21 +5461,10 @@ module ts { } } - // If object literal is contextually (but not inferentially) typed, copy missing optional properties from - // the contextual type such that the resulting type becomes a subtype in cases where only optional properties - // were omitted. There is no need to create new property objects as nothing in them needs to change. - if (contextualType && !isInferentialContext(contextualMapper)) { - forEach(getPropertiesOfObjectType(contextualType), p => { - if (p.flags & SymbolFlags.Optional && !hasProperty(properties, p.name)) { - properties[p.name] = p; - } - }); - } - var stringIndexType = getIndexType(IndexKind.String); var numberIndexType = getIndexType(IndexKind.Number); var result = createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= (typeFlags & TypeFlags.Unwidened); + result.flags |= TypeFlags.ObjectLiteral | TypeFlags.ContainsLiteral | (typeFlags & TypeFlags.ContainsUndefined); return result; function getIndexType(kind: IndexKind) { @@ -5485,7 +5480,9 @@ module ts { } } } - return propTypes.length ? getUnionType(propTypes) : undefinedType; + var result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= result.flags; + return result; } return undefined; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b8c842641d7..474fdf30fed 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1283,12 +1283,15 @@ module ts { Union = 0x00004000, // Union Anonymous = 0x00008000, // Anonymous FromSignature = 0x00010000, // Created for signature assignment check - Unwidened = 0x00020000, // Unwidened type (is or contains Undefined or Null type) + ObjectLiteral = 0x00020000, // Originates in an object literal + ContainsUndefined = 0x00040000, // Type is or contains Undefined or Null type + ContainsLiteral = 0x00080000, // Type is or contains object literal type Intrinsic = Any | String | Number | Boolean | Void | Undefined | Null, StringLike = String | StringLiteral, NumberLike = Number | Enum, ObjectType = Class | Interface | Reference | Tuple | Anonymous, + RequiresWidening = ContainsUndefined | ContainsLiteral } // Properties common to all types From d6eb486c3ad424bcc101733cb23893ce1ab51e2a Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 24 Jan 2015 08:04:23 -0800 Subject: [PATCH 086/211] Accepting new baselines --- .../baselines/reference/arrayCast.errors.txt | 2 ++ .../reference/assignmentCompatBug2.errors.txt | 16 +++++++------- .../assignmentCompatWithObjectMembers3.types | 4 ++-- .../reference/assignmentCompatability1.types | 2 +- .../reference/assignmentCompatability2.types | 2 +- .../reference/assignmentCompatability3.types | 2 +- .../reference/assignmentCompatability4.types | 2 +- .../reference/assignmentCompatability5.types | 2 +- .../reference/assignmentCompatability6.types | 4 ++-- .../reference/assignmentCompatability7.types | 4 ++-- .../reference/assignmentCompatability8.types | 2 +- .../reference/assignmentCompatability9.types | 2 +- .../reference/getterSetterNonAccessor.types | 4 ++-- tests/baselines/reference/indexer2.errors.txt | 20 ------------------ tests/baselines/reference/indexer2.types | 21 +++++++++++++++++++ .../baselines/reference/indexer2A.errors.txt | 15 ++----------- .../reference/intTypeCheck.errors.txt | 8 +++---- .../reference/interfaceContextualType.types | 12 +++++------ .../reference/objectLitGetterSetter.types | 4 ++-- .../objectLiteralContextualTyping.types | 4 ++-- .../optionalAccessorsInInterface1.types | 4 ++-- .../optionalPropertiesTest.errors.txt | 8 +++---- ...adBindingAcrossDeclarationBoundaries.types | 6 +++--- ...dBindingAcrossDeclarationBoundaries2.types | 6 +++--- ...notationBestCommonTypeInArrayLiteral.types | 6 +++--- .../baselines/reference/underscoreTest1.types | 6 +++--- 26 files changed, 80 insertions(+), 88 deletions(-) delete mode 100644 tests/baselines/reference/indexer2.errors.txt create mode 100644 tests/baselines/reference/indexer2.types diff --git a/tests/baselines/reference/arrayCast.errors.txt b/tests/baselines/reference/arrayCast.errors.txt index 53be1c903a3..10562cc57e4 100644 --- a/tests/baselines/reference/arrayCast.errors.txt +++ b/tests/baselines/reference/arrayCast.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/arrayCast.ts(3,1): error TS2352: Neither type '{ foo: string; }[]' nor type '{ id: number; }[]' is assignable to the other. Type '{ foo: string; }' is not assignable to type '{ id: number; }'. + Property 'id' is missing in type '{ foo: string; }'. ==== tests/cases/compiler/arrayCast.ts (1 errors) ==== @@ -9,6 +10,7 @@ tests/cases/compiler/arrayCast.ts(3,1): error TS2352: Neither type '{ foo: strin ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '{ foo: string; }[]' nor type '{ id: number; }[]' is assignable to the other. !!! error TS2352: Type '{ foo: string; }' is not assignable to type '{ id: number; }'. +!!! error TS2352: Property 'id' is missing in type '{ foo: string; }'. // Should succeed, as the {} element causes the type of the array to be {}[] <{ id: number; }[]>[{ foo: "s" }, {}]; \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatBug2.errors.txt b/tests/baselines/reference/assignmentCompatBug2.errors.txt index b90c470d771..15bf1111391 100644 --- a/tests/baselines/reference/assignmentCompatBug2.errors.txt +++ b/tests/baselines/reference/assignmentCompatBug2.errors.txt @@ -2,10 +2,10 @@ tests/cases/compiler/assignmentCompatBug2.ts(1,5): error TS2322: Type '{ a: numb Property 'b' is missing in type '{ a: number; }'. tests/cases/compiler/assignmentCompatBug2.ts(3,1): error TS2322: Type '{ a: number; }' is not assignable to type '{ b: number; }'. Property 'b' is missing in type '{ a: number; }'. -tests/cases/compiler/assignmentCompatBug2.ts(15,1): error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; n?: number; k?(a: any): any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. - Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; n?: number; k?(a: any): any; }'. -tests/cases/compiler/assignmentCompatBug2.ts(20,1): error TS2322: Type '{ f: (n: number) => number; m: number; n?: number; k?(a: any): any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. - Property 'g' is missing in type '{ f: (n: number) => number; m: number; n?: number; k?(a: any): any; }'. +tests/cases/compiler/assignmentCompatBug2.ts(15,1): error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. + Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; }'. +tests/cases/compiler/assignmentCompatBug2.ts(20,1): error TS2322: Type '{ f: (n: number) => number; m: number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. + Property 'g' is missing in type '{ f: (n: number) => number; m: number; }'. tests/cases/compiler/assignmentCompatBug2.ts(33,1): error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }'. @@ -33,16 +33,16 @@ tests/cases/compiler/assignmentCompatBug2.ts(33,1): error TS2322: Type '{ f: (n: b3 = { ~~ -!!! error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; n?: number; k?(a: any): any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. -!!! error TS2322: Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; n?: number; k?(a: any): any; }'. +!!! error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. +!!! error TS2322: Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; }'. f: (n) => { return 0; }, g: (s) => { return 0; }, }; // error b3 = { ~~ -!!! error TS2322: Type '{ f: (n: number) => number; m: number; n?: number; k?(a: any): any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. -!!! error TS2322: Property 'g' is missing in type '{ f: (n: number) => number; m: number; n?: number; k?(a: any): any; }'. +!!! error TS2322: Type '{ f: (n: number) => number; m: number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'. +!!! error TS2322: Property 'g' is missing in type '{ f: (n: number) => number; m: number; }'. f: (n) => { return 0; }, m: 0, }; // error diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types index ff7ef23307d..85a7e59ffbc 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types @@ -51,13 +51,13 @@ var b: { foo: string; baz?: string } var a2: S2 = { foo: '' }; >a2 : S2 >S2 : S2 ->{ foo: '' } : { foo: string; bar?: string; } +>{ foo: '' } : { foo: string; } >foo : string var b2: T2 = { foo: '' }; >b2 : T2 >T2 : T2 ->{ foo: '' } : { foo: string; baz?: string; } +>{ foo: '' } : { foo: string; } >foo : string s = t; diff --git a/tests/baselines/reference/assignmentCompatability1.types b/tests/baselines/reference/assignmentCompatability1.types index 8bb4301b201..9949fc14bf5 100644 --- a/tests/baselines/reference/assignmentCompatability1.types +++ b/tests/baselines/reference/assignmentCompatability1.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability2.types b/tests/baselines/reference/assignmentCompatability2.types index 69a20b34dd7..16da45c7e35 100644 --- a/tests/baselines/reference/assignmentCompatability2.types +++ b/tests/baselines/reference/assignmentCompatability2.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability3.types b/tests/baselines/reference/assignmentCompatability3.types index 4b598fba84c..61279b9c7fa 100644 --- a/tests/baselines/reference/assignmentCompatability3.types +++ b/tests/baselines/reference/assignmentCompatability3.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability4.types b/tests/baselines/reference/assignmentCompatability4.types index 3d8e776ff72..f7e5801e9b3 100644 --- a/tests/baselines/reference/assignmentCompatability4.types +++ b/tests/baselines/reference/assignmentCompatability4.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability5.types b/tests/baselines/reference/assignmentCompatability5.types index 970c913955d..80eda3e510b 100644 --- a/tests/baselines/reference/assignmentCompatability5.types +++ b/tests/baselines/reference/assignmentCompatability5.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability6.types b/tests/baselines/reference/assignmentCompatability6.types index cf131600c41..5e9ae8c6a2f 100644 --- a/tests/baselines/reference/assignmentCompatability6.types +++ b/tests/baselines/reference/assignmentCompatability6.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; @@ -29,7 +29,7 @@ module __test2__ { >T : T >obj3 : interfaceWithOptional >interfaceWithOptional : interfaceWithOptional ->{ } : { one?: number; } +>{ } : {} export var __val__obj3 = obj3; >__val__obj3 : interfaceWithOptional diff --git a/tests/baselines/reference/assignmentCompatability7.types b/tests/baselines/reference/assignmentCompatability7.types index 5bb46428314..b7b2ab70566 100644 --- a/tests/baselines/reference/assignmentCompatability7.types +++ b/tests/baselines/reference/assignmentCompatability7.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; @@ -32,7 +32,7 @@ module __test2__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability8.types b/tests/baselines/reference/assignmentCompatability8.types index 21fa300a37d..1c009eea482 100644 --- a/tests/baselines/reference/assignmentCompatability8.types +++ b/tests/baselines/reference/assignmentCompatability8.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/assignmentCompatability9.types b/tests/baselines/reference/assignmentCompatability9.types index cc8df0387e7..a8235220bec 100644 --- a/tests/baselines/reference/assignmentCompatability9.types +++ b/tests/baselines/reference/assignmentCompatability9.types @@ -12,7 +12,7 @@ module __test1__ { >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional ->{ one: 1 } : { one: number; two?: string; } +>{ one: 1 } : { one: number; } >one : number export var __val__obj4 = obj4; diff --git a/tests/baselines/reference/getterSetterNonAccessor.types b/tests/baselines/reference/getterSetterNonAccessor.types index 0c1be481b3a..f3e5d549cff 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.types +++ b/tests/baselines/reference/getterSetterNonAccessor.types @@ -14,8 +14,8 @@ Object.defineProperty({}, "0", ({ >{} : {} >({ get: getFunc, set: setFunc, configurable: true }) : PropertyDescriptor >PropertyDescriptor : PropertyDescriptor ->({ get: getFunc, set: setFunc, configurable: true }) : { get: () => any; set: (v: any) => void; configurable: boolean; enumerable?: boolean; value?: any; writable?: boolean; } ->{ get: getFunc, set: setFunc, configurable: true } : { get: () => any; set: (v: any) => void; configurable: boolean; enumerable?: boolean; value?: any; writable?: boolean; } +>({ get: getFunc, set: setFunc, configurable: true }) : { get: () => any; set: (v: any) => void; configurable: boolean; } +>{ get: getFunc, set: setFunc, configurable: true } : { get: () => any; set: (v: any) => void; configurable: boolean; } get: getFunc, >get : () => any diff --git a/tests/baselines/reference/indexer2.errors.txt b/tests/baselines/reference/indexer2.errors.txt deleted file mode 100644 index 28020a570ed..00000000000 --- a/tests/baselines/reference/indexer2.errors.txt +++ /dev/null @@ -1,20 +0,0 @@ -tests/cases/compiler/indexer2.ts(6,25): error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. - Types of property 'hasOwnProperty' are incompatible. - Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. - Types of parameters 'v' and 'objectId' are incompatible. - Type 'string' is not assignable to type 'number'. - - -==== tests/cases/compiler/indexer2.ts (1 errors) ==== - interface IHeapObjectProperty {} - interface IDirectChildrenMap { - hasOwnProperty(objectId: number) : boolean; - [objectId: number] : IHeapObjectProperty[]; - } - var directChildrenMap = {}; - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. -!!! error TS2352: Types of property 'hasOwnProperty' are incompatible. -!!! error TS2352: Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. -!!! error TS2352: Types of parameters 'v' and 'objectId' are incompatible. -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/indexer2.types b/tests/baselines/reference/indexer2.types new file mode 100644 index 00000000000..7f1ccd41cb5 --- /dev/null +++ b/tests/baselines/reference/indexer2.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/indexer2.ts === +interface IHeapObjectProperty {} +>IHeapObjectProperty : IHeapObjectProperty + +interface IDirectChildrenMap { +>IDirectChildrenMap : IDirectChildrenMap + + hasOwnProperty(objectId: number) : boolean; +>hasOwnProperty : (objectId: number) => boolean +>objectId : number + + [objectId: number] : IHeapObjectProperty[]; +>objectId : number +>IHeapObjectProperty : IHeapObjectProperty +} +var directChildrenMap = {}; +>directChildrenMap : IDirectChildrenMap +>{} : IDirectChildrenMap +>IDirectChildrenMap : IDirectChildrenMap +>{} : { [x: number]: undefined; } + diff --git a/tests/baselines/reference/indexer2A.errors.txt b/tests/baselines/reference/indexer2A.errors.txt index f2314c5b49b..adf90fb743f 100644 --- a/tests/baselines/reference/indexer2A.errors.txt +++ b/tests/baselines/reference/indexer2A.errors.txt @@ -1,12 +1,7 @@ tests/cases/compiler/indexer2A.ts(4,5): error TS2391: Function implementation is missing or not immediately following the declaration. -tests/cases/compiler/indexer2A.ts(7,25): error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. - Types of property 'hasOwnProperty' are incompatible. - Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. - Types of parameters 'v' and 'objectId' are incompatible. - Type 'string' is not assignable to type 'number'. -==== tests/cases/compiler/indexer2A.ts (2 errors) ==== +==== tests/cases/compiler/indexer2A.ts (1 errors) ==== class IHeapObjectProperty { } class IDirectChildrenMap { // Decided to enforce a semicolon after declarations @@ -15,10 +10,4 @@ tests/cases/compiler/indexer2A.ts(7,25): error TS2352: Neither type '{ [x: numbe !!! error TS2391: Function implementation is missing or not immediately following the declaration. [objectId: number]: IHeapObjectProperty[] } - var directChildrenMap = {}; - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. -!!! error TS2352: Types of property 'hasOwnProperty' are incompatible. -!!! error TS2352: Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. -!!! error TS2352: Types of parameters 'v' and 'objectId' are incompatible. -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file + var directChildrenMap = {}; \ No newline at end of file diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index 237a4b8e7f2..5f7c213a916 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -39,8 +39,8 @@ tests/cases/compiler/intTypeCheck.ts(146,5): error TS2322: Type 'boolean' is not tests/cases/compiler/intTypeCheck.ts(146,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(146,22): error TS2304: Cannot find name 'i4'. tests/cases/compiler/intTypeCheck.ts(147,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. -tests/cases/compiler/intTypeCheck.ts(152,5): error TS2322: Type '{ p1?: any; p2?: string; p4?(): any; p5?(): void; p7?(pa1: any, pa2: any): void; }' is not assignable to type 'i5'. - Property 'p' is missing in type '{ p1?: any; p2?: string; p4?(): any; p5?(): void; p7?(pa1: any, pa2: any): void; }'. +tests/cases/compiler/intTypeCheck.ts(152,5): error TS2322: Type '{}' is not assignable to type 'i5'. + Property 'p' is missing in type '{}'. tests/cases/compiler/intTypeCheck.ts(153,5): error TS2322: Type 'Object' is not assignable to type 'i5'. Property 'p' is missing in type 'Object'. tests/cases/compiler/intTypeCheck.ts(154,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -313,8 +313,8 @@ tests/cases/compiler/intTypeCheck.ts(203,17): error TS2351: Cannot use 'new' wit var obj44: i5; var obj45: i5 = {}; ~~~~~ -!!! error TS2322: Type '{ p1?: any; p2?: string; p4?(): any; p5?(): void; p7?(pa1: any, pa2: any): void; }' is not assignable to type 'i5'. -!!! error TS2322: Property 'p' is missing in type '{ p1?: any; p2?: string; p4?(): any; p5?(): void; p7?(pa1: any, pa2: any): void; }'. +!!! error TS2322: Type '{}' is not assignable to type 'i5'. +!!! error TS2322: Property 'p' is missing in type '{}'. var obj46: i5 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i5'. diff --git a/tests/baselines/reference/interfaceContextualType.types b/tests/baselines/reference/interfaceContextualType.types index 412a48cfbda..3078ecfdfa4 100644 --- a/tests/baselines/reference/interfaceContextualType.types +++ b/tests/baselines/reference/interfaceContextualType.types @@ -34,27 +34,27 @@ class Bug { >{} : { [x: string]: undefined; } this.values['comments'] = { italic: true }; ->this.values['comments'] = { italic: true } : { italic: boolean; bold?: boolean; } +>this.values['comments'] = { italic: true } : { italic: boolean; } >this.values['comments'] : IOptions >this.values : IMap >this : Bug >values : IMap ->{ italic: true } : { italic: boolean; bold?: boolean; } +>{ italic: true } : { italic: boolean; } >italic : boolean } shouldBeOK() { >shouldBeOK : () => void this.values = { ->this.values = { comments: { italic: true } } : { [x: string]: { italic: boolean; bold?: boolean; }; comments: { italic: boolean; bold?: boolean; }; } +>this.values = { comments: { italic: true } } : { [x: string]: { italic: boolean; }; comments: { italic: boolean; }; } >this.values : IMap >this : Bug >values : IMap ->{ comments: { italic: true } } : { [x: string]: { italic: boolean; bold?: boolean; }; comments: { italic: boolean; bold?: boolean; }; } +>{ comments: { italic: true } } : { [x: string]: { italic: boolean; }; comments: { italic: boolean; }; } comments: { italic: true } ->comments : { italic: boolean; bold?: boolean; } ->{ italic: true } : { italic: boolean; bold?: boolean; } +>comments : { italic: boolean; } +>{ italic: true } : { italic: boolean; } >italic : boolean }; diff --git a/tests/baselines/reference/objectLitGetterSetter.types b/tests/baselines/reference/objectLitGetterSetter.types index bbb7ee10140..92decfd4068 100644 --- a/tests/baselines/reference/objectLitGetterSetter.types +++ b/tests/baselines/reference/objectLitGetterSetter.types @@ -11,8 +11,8 @@ >obj : {} >({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : PropertyDescriptor >PropertyDescriptor : PropertyDescriptor ->({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : { get: () => number; set: (v: any) => void; configurable?: boolean; enumerable?: boolean; value?: any; writable?: boolean; } ->{ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } } : { get: () => number; set: (v: any) => void; configurable?: boolean; enumerable?: boolean; value?: any; writable?: boolean; } +>({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : { get: () => number; set: (v: any) => void; } +>{ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } } : { get: () => number; set: (v: any) => void; } get: function () { >get : () => number diff --git a/tests/baselines/reference/objectLiteralContextualTyping.types b/tests/baselines/reference/objectLiteralContextualTyping.types index 495e8df1438..32c9e91b2c7 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.types +++ b/tests/baselines/reference/objectLiteralContextualTyping.types @@ -24,7 +24,7 @@ var x = foo({ name: "Sprocket" }); >x : string >foo({ name: "Sprocket" }) : string >foo : { (item: Item): string; (item: any): number; } ->{ name: "Sprocket" } : { name: string; description?: string; } +>{ name: "Sprocket" } : { name: string; } >name : string var x: string; @@ -74,7 +74,7 @@ var b = bar({}); >b : {} >bar({}) : {} >bar : (param: { x?: T; }) => T ->{} : { x?: {}; } +>{} : {} var b: {}; >b : {} diff --git a/tests/baselines/reference/optionalAccessorsInInterface1.types b/tests/baselines/reference/optionalAccessorsInInterface1.types index f1dcd854f75..c426cdba178 100644 --- a/tests/baselines/reference/optionalAccessorsInInterface1.types +++ b/tests/baselines/reference/optionalAccessorsInInterface1.types @@ -21,7 +21,7 @@ defineMyProperty({}, "name", { get: function () { return 5; } }); >defineMyProperty({}, "name", { get: function () { return 5; } }) : any >defineMyProperty : (o: any, p: string, attributes: MyPropertyDescriptor) => any >{} : {} ->{ get: function () { return 5; } } : { get: () => number; set?(v: any): void; } +>{ get: function () { return 5; } } : { get: () => number; } >get : () => number >function () { return 5; } : () => number @@ -47,7 +47,7 @@ defineMyProperty2({}, "name", { get: function () { return 5; } }); >defineMyProperty2({}, "name", { get: function () { return 5; } }) : any >defineMyProperty2 : (o: any, p: string, attributes: MyPropertyDescriptor2) => any >{} : {} ->{ get: function () { return 5; } } : { get: () => number; set?: (v: any) => void; } +>{ get: function () { return 5; } } : { get: () => number; } >get : () => number >function () { return 5; } : () => number diff --git a/tests/baselines/reference/optionalPropertiesTest.errors.txt b/tests/baselines/reference/optionalPropertiesTest.errors.txt index a904911e232..a4b721e92ef 100644 --- a/tests/baselines/reference/optionalPropertiesTest.errors.txt +++ b/tests/baselines/reference/optionalPropertiesTest.errors.txt @@ -1,5 +1,5 @@ -tests/cases/compiler/optionalPropertiesTest.ts(14,1): error TS2322: Type '{ name: string; print?(): void; }' is not assignable to type 'IFoo'. - Property 'id' is missing in type '{ name: string; print?(): void; }'. +tests/cases/compiler/optionalPropertiesTest.ts(14,1): error TS2322: Type '{ name: string; }' is not assignable to type 'IFoo'. + Property 'id' is missing in type '{ name: string; }'. tests/cases/compiler/optionalPropertiesTest.ts(25,5): error TS2322: Type '{}' is not assignable to type 'i1'. Property 'M' is missing in type '{}'. tests/cases/compiler/optionalPropertiesTest.ts(26,5): error TS2322: Type '{}' is not assignable to type 'i3'. @@ -24,8 +24,8 @@ tests/cases/compiler/optionalPropertiesTest.ts(40,1): error TS2322: Type 'i2' is foo = { id: 1234, name: "test" }; // Ok foo = { name: "test" }; // Error, id missing ~~~ -!!! error TS2322: Type '{ name: string; print?(): void; }' is not assignable to type 'IFoo'. -!!! error TS2322: Property 'id' is missing in type '{ name: string; print?(): void; }'. +!!! error TS2322: Type '{ name: string; }' is not assignable to type 'IFoo'. +!!! error TS2322: Property 'id' is missing in type '{ name: string; }'. foo = {id: 1234, print:()=>{}} // Ok var s = foo.name || "default"; diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types index f597c93bdda..311cf971b61 100644 --- a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types @@ -105,17 +105,17 @@ var a1 = a.a({}); >a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } >a : A >a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } ->{} : { r?: any; } +>{} : {} var a1 = a({}); >a1 : Opt3 >a({}) : Opt3 >a : A ->{} : { r?: any; } +>{} : {} var a1 = new a({}); >a1 : Opt3 >new a({}) : Opt3 >a : A ->{} : { r?: any; } +>{} : {} diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types index a854c159e0c..e67ff2f8de6 100644 --- a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types @@ -108,17 +108,17 @@ var a1 = a.a({}); >a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } >a : A >a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } ->{} : { r?: any; } +>{} : {} var a1 = a({}); >a1 : Opt3 >a({}) : Opt3 >a : A ->{} : { r?: any; } +>{} : {} var a1 = new a({}); >a1 : Opt3 >new a({}) : Opt3 >a : A ->{} : { r?: any; } +>{} : {} diff --git a/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types b/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types index 661aa3c3cbb..27fcd05bb28 100644 --- a/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types +++ b/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types @@ -23,16 +23,16 @@ interface IMenuItem { var menuData: IMenuItem[] = [ >menuData : IMenuItem[] >IMenuItem : IMenuItem ->[ { "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" }, { "id": "productName", "type": "default", "link": "", "text": "Product Name" }] : ({ "id": string; "type": string; "link": string; "icon": string; classes?: string; text?: string; } | { "id": string; "type": string; "link": string; "text": string; classes?: string; icon?: string; })[] +>[ { "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" }, { "id": "productName", "type": "default", "link": "", "text": "Product Name" }] : ({ "id": string; "type": string; "link": string; "icon": string; } | { "id": string; "type": string; "link": string; "text": string; })[] { ->{ "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" } : { "id": string; "type": string; "link": string; "icon": string; classes?: string; text?: string; } +>{ "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" } : { "id": string; "type": string; "link": string; "icon": string; } "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" }, { ->{ "id": "productName", "type": "default", "link": "", "text": "Product Name" } : { "id": string; "type": string; "link": string; "text": string; classes?: string; icon?: string; } +>{ "id": "productName", "type": "default", "link": "", "text": "Product Name" } : { "id": string; "type": string; "link": string; "text": string; } "id": "productName", "type": "default", diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index 9e4f5ea1d1b..a3347457b8a 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -1317,11 +1317,11 @@ compiled2({ epithet: "stooge" }); >epithet : string _.templateSettings = { ->_.templateSettings = { interpolate: /\{\{(.+?)\}\}/g} : { interpolate: RegExp; evaluate?: RegExp; escape?: RegExp; } +>_.templateSettings = { interpolate: /\{\{(.+?)\}\}/g} : { interpolate: RegExp; } >_.templateSettings : Underscore.TemplateSettings >_ : Underscore.Static >templateSettings : Underscore.TemplateSettings ->{ interpolate: /\{\{(.+?)\}\}/g} : { interpolate: RegExp; evaluate?: RegExp; escape?: RegExp; } +>{ interpolate: /\{\{(.+?)\}\}/g} : { interpolate: RegExp; } interpolate: /\{\{(.+?)\}\}/g >interpolate : RegExp @@ -1347,7 +1347,7 @@ _.template("Using 'with': <%= data.answer %>", { answer: 'no' }, { variable: 'da >template : { (templateString: string): (data: any) => string; (templateString: string, data: any, settings?: Underscore.TemplateSettings): string; } >{ answer: 'no' } : { answer: string; } >answer : string ->{ variable: 'data' } : { variable: string; evaluate?: RegExp; interpolate?: RegExp; escape?: RegExp; } +>{ variable: 'data' } : { variable: string; } >variable : string === tests/cases/compiler/underscoreTest1_underscore.ts === From afc9f45468238e086d2d2fc5a6986ff7c30b9841 Mon Sep 17 00:00:00 2001 From: Chris Bubernak Date: Sat, 24 Jan 2015 08:50:01 -0800 Subject: [PATCH 087/211] more changes based on CR feedback --- src/compiler/checker.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1bcc4cbcf24..c3b3ae9ed23 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1097,10 +1097,10 @@ module ts { // Get qualified name if the symbol is not a type parameter // and there is an enclosing declaration or we specifically - // asked for it - var typeParameter = (symbol.flags & SymbolFlags.TypeParameter); + // asked for it + var isTypeParameter = symbol.flags & SymbolFlags.TypeParameter; var typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; - if (!typeParameter && (enclosingDeclaration || typeFormatFlag)) { + if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { walkSymbol(symbol, meaning); return; } @@ -1123,6 +1123,7 @@ module ts { writeTypeReference(type, flags); } else if (type.flags & (TypeFlags.Class | TypeFlags.Interface | TypeFlags.Enum | TypeFlags.TypeParameter)) { + // The specified symbol flags need to be reinterpreted as type flags buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, flags); } else if (type.flags & TypeFlags.Tuple) { @@ -1204,6 +1205,7 @@ module ts { // If type is an anonymous type literal in a type alias declaration, use type alias name var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { + // The specified symbol flags need to be reinterpreted as type flags buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, flags); } else { @@ -1238,10 +1240,10 @@ module ts { } } - function writeTypeofSymbol(type: ObjectType, flags?: TypeFormatFlags) { + function writeTypeofSymbol(type: ObjectType, typeFormatFlags?: TypeFormatFlags) { writeKeyword(writer, SyntaxKind.TypeOfKeyword); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, SymbolFormatFlags.None, flags); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value, SymbolFormatFlags.None, typeFormatFlags); } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { From 95a314a754f70271682e06b2ae82f21a54130e07 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 24 Jan 2015 17:21:49 -0800 Subject: [PATCH 088/211] Correct support for type guards with unions containing enums --- src/compiler/checker.ts | 53 +++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a606a3f00fd..f5592560ed4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -107,6 +107,21 @@ module ts { var diagnostics: Diagnostic[] = []; var diagnosticsModified: boolean = false; + var primitiveTypeInfo: Map<{ type: Type; flags: TypeFlags }> = { + "string": { + type: stringType, + flags: TypeFlags.StringLike + }, + "number": { + type: numberType, + flags: TypeFlags.NumberLike + }, + "boolean": { + type: booleanType, + flags: TypeFlags.Boolean + } + }; + function addDiagnostic(diagnostic: Diagnostic) { diagnostics.push(diagnostic); diagnosticsModified = true; @@ -4454,12 +4469,15 @@ module ts { Debug.fail("should not get here"); } - // Remove one or more primitive types from a union type - function subtractPrimitiveTypes(type: Type, subtractMask: TypeFlags): Type { + // For a union type, remove all constituent types for which the given flags have the given state + function removeTypesFromUnionType(type: Type, maskFlags: TypeFlags, maskState: boolean): Type { if (type.flags & TypeFlags.Union) { var types = (type).types; - if (forEach(types, t => t.flags & subtractMask)) { - return getUnionType(filter(types, t => !(t.flags & subtractMask))); + if (forEach(types, t => !(t.flags & maskFlags) !== maskState)) { + var reducedType = getUnionType(filter(types, t => !(t.flags & maskFlags) === maskState)); + if (reducedType !== emptyObjectType) { + return reducedType; + } } } return type; @@ -4635,8 +4653,8 @@ module ts { // Stop at the first containing function or module declaration break loop; } - // Use narrowed type if it is a subtype and construct contains no assignments to variable - if (narrowedType !== type && isTypeSubtypeOf(narrowedType, type)) { + // Use narrowed type if construct contains no assignments to variable + if (narrowedType !== type) { if (isVariableAssignedWithin(symbol, node)) { break; } @@ -4656,20 +4674,29 @@ module ts { 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; + var typeInfo = primitiveTypeInfo[right.text]; 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. - return checkType === emptyObjectType ? subtractPrimitiveTypes(type, TypeFlags.String | TypeFlags.Number | TypeFlags.Boolean) : checkType; + // Assumed result is true. If check was not for a primitive type, remove all primitive types + if (!typeInfo) { + return removeTypesFromUnionType(type, TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.Boolean, true); + } + // Check was for a primitive type, return that primitive type if it is a subtype + if (isTypeSubtypeOf(typeInfo.type, type)) { + return typeInfo.type; + } + // Otherwise, remove all types that aren't of the primitive type kind + return removeTypesFromUnionType(type, typeInfo.flags, false); } else { - // The assumed result is false. If check was for a primitive type we can remove that type from the narrowed type. + // Assumed result is false. If check was for a primitive type, remove that primitive type + if (typeInfo) { + return removeTypesFromUnionType(type, typeInfo.flags, true); + } // Otherwise we don't have enough information to do anything. - return checkType === emptyObjectType ? type : subtractPrimitiveTypes(type, checkType.flags); + return type; } } From 7f63180b64ed83877416ac42165c98180a7907e9 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 24 Jan 2015 17:23:22 -0800 Subject: [PATCH 089/211] Adding tests --- .../reference/TypeGuardWithEnumUnion.js | 77 +++++++++++++++ .../reference/TypeGuardWithEnumUnion.types | 96 +++++++++++++++++++ .../typeGuards/TypeGuardWithEnumUnion.ts | 35 +++++++ 3 files changed, 208 insertions(+) create mode 100644 tests/baselines/reference/TypeGuardWithEnumUnion.js create mode 100644 tests/baselines/reference/TypeGuardWithEnumUnion.types create mode 100644 tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.js b/tests/baselines/reference/TypeGuardWithEnumUnion.js new file mode 100644 index 00000000000..f582c70857a --- /dev/null +++ b/tests/baselines/reference/TypeGuardWithEnumUnion.js @@ -0,0 +1,77 @@ +//// [TypeGuardWithEnumUnion.ts] +enum Color { R, G, B } + +function f1(x: Color | string) { + if (typeof x === "number") { + var y = x; + var y: Color; + } + else { + var z = x; + var z: string; + } +} + +function f2(x: Color | string | string[]) { + if (typeof x === "object") { + var y = x; + var y: string[]; + } + if (typeof x === "number") { + var z = x; + var z: Color; + } + else { + var w = x; + var w: string | string[]; + } + if (typeof x === "string") { + var a = x; + var a: string; + } + else { + var b = x; + var b: Color | string[]; + } +} + + +//// [TypeGuardWithEnumUnion.js] +var Color; +(function (Color) { + Color[Color["R"] = 0] = "R"; + Color[Color["G"] = 1] = "G"; + Color[Color["B"] = 2] = "B"; +})(Color || (Color = {})); +function f1(x) { + if (typeof x === "number") { + var y = x; + var y; + } + else { + var z = x; + var z; + } +} +function f2(x) { + if (typeof x === "object") { + var y = x; + var y; + } + if (typeof x === "number") { + var z = x; + var z; + } + else { + var w = x; + var w; + } + if (typeof x === "string") { + var a = x; + var a; + } + else { + var b = x; + var b; + } +} diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.types b/tests/baselines/reference/TypeGuardWithEnumUnion.types new file mode 100644 index 00000000000..9296e0ad04e --- /dev/null +++ b/tests/baselines/reference/TypeGuardWithEnumUnion.types @@ -0,0 +1,96 @@ +=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts === +enum Color { R, G, B } +>Color : Color +>R : Color +>G : Color +>B : Color + +function f1(x: Color | string) { +>f1 : (x: string | Color) => void +>x : string | Color +>Color : Color + + if (typeof x === "number") { +>typeof x === "number" : boolean +>typeof x : string +>x : string | Color + + var y = x; +>y : Color +>x : Color + + var y: Color; +>y : Color +>Color : Color + } + else { + var z = x; +>z : string +>x : string + + var z: string; +>z : string + } +} + +function f2(x: Color | string | string[]) { +>f2 : (x: string | string[] | Color) => void +>x : string | string[] | Color +>Color : Color + + if (typeof x === "object") { +>typeof x === "object" : boolean +>typeof x : string +>x : string | string[] | Color + + var y = x; +>y : string[] +>x : string[] + + var y: string[]; +>y : string[] + } + if (typeof x === "number") { +>typeof x === "number" : boolean +>typeof x : string +>x : string | string[] | Color + + var z = x; +>z : Color +>x : Color + + var z: Color; +>z : Color +>Color : Color + } + else { + var w = x; +>w : string | string[] +>x : string | string[] + + var w: string | string[]; +>w : string | string[] + } + if (typeof x === "string") { +>typeof x === "string" : boolean +>typeof x : string +>x : string | string[] | Color + + var a = x; +>a : string +>x : string + + var a: string; +>a : string + } + else { + var b = x; +>b : string[] | Color +>x : string[] | Color + + var b: Color | string[]; +>b : string[] | Color +>Color : Color + } +} + diff --git a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts new file mode 100644 index 00000000000..3d105e91502 --- /dev/null +++ b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts @@ -0,0 +1,35 @@ +enum Color { R, G, B } + +function f1(x: Color | string) { + if (typeof x === "number") { + var y = x; + var y: Color; + } + else { + var z = x; + var z: string; + } +} + +function f2(x: Color | string | string[]) { + if (typeof x === "object") { + var y = x; + var y: string[]; + } + if (typeof x === "number") { + var z = x; + var z: Color; + } + else { + var w = x; + var w: string | string[]; + } + if (typeof x === "string") { + var a = x; + var a: string; + } + else { + var b = x; + var b: Color | string[]; + } +} From e5e06d8ca52cc1c6361436565e62fc97f206dada Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sun, 25 Jan 2015 16:14:20 -0800 Subject: [PATCH 090/211] Allow union types containing primtives as first argument in instanceof --- src/compiler/checker.ts | 2 +- src/compiler/types.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f5592560ed4..d3e119700b5 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6776,7 +6776,7 @@ module ts { // and the right operand to be of type Any or a subtype of the 'Function' interface type. // The result is always of the Boolean primitive type. // NOTE: do not raise error if leftType is unknown as related error was already reported - if (!isTypeOfKind(leftType, TypeFlags.Any | TypeFlags.ObjectType | TypeFlags.TypeParameter)) { + if (isTypeOfKind(leftType, TypeFlags.Primitive)) { error(node.left, Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); } // NOTE: do not raise error if right is unknown as related error was already reported diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b8c842641d7..207006cdaf8 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1286,6 +1286,7 @@ module ts { Unwidened = 0x00020000, // Unwidened type (is or contains Undefined or Null type) Intrinsic = Any | String | Number | Boolean | Void | Undefined | Null, + Primitive = String | Number | Boolean | Void | Undefined | Null | StringLiteral | Enum, StringLike = String | StringLiteral, NumberLike = Number | Enum, ObjectType = Class | Interface | Reference | Tuple | Anonymous, From 0410394de04ad02c06054aee5a554cb7655d6804 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sun, 25 Jan 2015 16:25:38 -0800 Subject: [PATCH 091/211] Modifying test --- .../reference/instanceofOperatorWithLHSIsObject.js | 7 ++++++- .../reference/instanceofOperatorWithLHSIsObject.types | 10 ++++++++++ .../instanceofOperatorWithLHSIsObject.ts | 4 +++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.js b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.js index 5ccf195cd88..c687027ae9b 100644 --- a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.js +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.js @@ -7,10 +7,13 @@ var x2: Function; var a: {}; var b: Object; var c: C; +var d: string | C; var r1 = a instanceof x1; var r2 = b instanceof x2; -var r3 = c instanceof x1; +var r3 = c instanceof x1; +var r4 = d instanceof x1; + //// [instanceofOperatorWithLHSIsObject.js] var C = (function () { @@ -23,6 +26,8 @@ var x2; var a; var b; var c; +var d; var r1 = a instanceof x1; var r2 = b instanceof x2; var r3 = c instanceof x1; +var r4 = d instanceof x1; diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types index 26aea98028e..9962a23dced 100644 --- a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types @@ -20,6 +20,10 @@ var c: C; >c : C >C : C +var d: string | C; +>d : string | C +>C : C + var r1 = a instanceof x1; >r1 : boolean >a instanceof x1 : boolean @@ -38,3 +42,9 @@ var r3 = c instanceof x1; >c : C >x1 : any +var r4 = d instanceof x1; +>r4 : boolean +>d instanceof x1 : boolean +>d : string | C +>x1 : any + diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts index 285335e40e7..6b88cd39f2a 100644 --- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts +++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts @@ -6,7 +6,9 @@ var x2: Function; var a: {}; var b: Object; var c: C; +var d: string | C; var r1 = a instanceof x1; var r2 = b instanceof x2; -var r3 = c instanceof x1; \ No newline at end of file +var r3 = c instanceof x1; +var r4 = d instanceof x1; From 75404a7e00cc22a8873ec6eb9c7d92d6db7420c2 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 26 Jan 2015 13:09:23 -0800 Subject: [PATCH 092/211] Addressing CR feedback --- src/compiler/checker.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d3e119700b5..336bfab5ccb 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4469,14 +4469,16 @@ module ts { Debug.fail("should not get here"); } - // For a union type, remove all constituent types for which the given flags have the given state - function removeTypesFromUnionType(type: Type, maskFlags: TypeFlags, maskState: boolean): Type { + // For a union type, remove all constituent types for that are of the given type kind (when isOfTypeKind is true) + // or not of the given type kind (when isOfTypeKind is false) + function removeTypesFromUnionType(type: Type, typeKind: TypeFlags, isOfTypeKind: boolean): Type { if (type.flags & TypeFlags.Union) { var types = (type).types; - if (forEach(types, t => !(t.flags & maskFlags) !== maskState)) { - var reducedType = getUnionType(filter(types, t => !(t.flags & maskFlags) === maskState)); - if (reducedType !== emptyObjectType) { - return reducedType; + if (forEach(types, t => !!(t.flags & typeKind) === isOfTypeKind)) { + // Above we checked if we have anything to remove, now use the opposite test to do the removal + var narrowedType = getUnionType(filter(types, t => !(t.flags & typeKind) === isOfTypeKind)); + if (narrowedType !== emptyObjectType) { + return narrowedType; } } } @@ -4687,7 +4689,8 @@ module ts { if (isTypeSubtypeOf(typeInfo.type, type)) { return typeInfo.type; } - // Otherwise, remove all types that aren't of the primitive type kind + // Otherwise, remove all types that aren't of the primitive type kind. This can happen when the type is + // union of enum types and other types. return removeTypesFromUnionType(type, typeInfo.flags, false); } else { @@ -4757,7 +4760,8 @@ module ts { return type; } - // Narrow the given type based on the given expression having the assumed boolean value + // Narrow the given type based on the given expression having the assumed boolean value. The returned type + // will be a subtype or the same type as the argument. function narrowType(type: Type, expr: Expression, assumeTrue: boolean): Type { switch (expr.kind) { case SyntaxKind.ParenthesizedExpression: From a298835f01b660e7b44ea526fde8060fa03779bb Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 26 Jan 2015 16:23:21 -0800 Subject: [PATCH 093/211] Addressing CR feedback --- src/compiler/checker.ts | 15 +++++++++------ src/compiler/types.ts | 42 ++++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 431d81696a1..9e88a6cb01a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -66,8 +66,8 @@ module ts { var numberType = createIntrinsicType(TypeFlags.Number, "number"); var booleanType = createIntrinsicType(TypeFlags.Boolean, "boolean"); var voidType = createIntrinsicType(TypeFlags.Void, "void"); - var undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.ContainsUndefined, "undefined"); - var nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.ContainsUndefined, "null"); + var undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.ContainsUndefinedOrNull, "undefined"); + var nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.ContainsUndefinedOrNull, "null"); var unknownType = createIntrinsicType(TypeFlags.Any, "unknown"); var resolvingType = createIntrinsicType(TypeFlags.Any, "__resolving__"); @@ -2807,6 +2807,9 @@ module ts { } } + // This function is used to propagate widening flags when creating new object types references and union types. + // It is only necessary to do so if a constituent type might be the undefined type, the null type, or the type + // of an object literal (since those types have widening related information we need to track). function getWideningFlagsOfTypes(types: Type[]): TypeFlags { var result: TypeFlags = 0; for (var i = 0; i < types.length; i++) { @@ -4111,7 +4114,7 @@ module ts { var symbol = createSymbol(p.flags | SymbolFlags.Transient, p.name); symbol.declarations = p.declarations; symbol.parent = p.parent; - symbol.type = getWidenedType(getTypeOfSymbol(p)); + symbol.type = widenedType; symbol.target = p; if (p.valueDeclaration) symbol.valueDeclaration = p.valueDeclaration; p = symbol; @@ -4160,7 +4163,7 @@ module ts { var errorReported = false; forEach(getPropertiesOfObjectType(type), p => { var t = getTypeOfSymbol(p); - if (t.flags & TypeFlags.ContainsUndefined) { + if (t.flags & TypeFlags.ContainsUndefinedOrNull) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } @@ -4204,7 +4207,7 @@ module ts { } function reportErrorsFromWidening(declaration: Declaration, type: Type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & TypeFlags.ContainsUndefined) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & TypeFlags.ContainsUndefinedOrNull) { // Report implicit any error within type if possible, otherwise report error on declaration if (!reportWideningErrorsInType(type)) { reportImplicitAnyError(declaration, type); @@ -5464,7 +5467,7 @@ module ts { var stringIndexType = getIndexType(IndexKind.String); var numberIndexType = getIndexType(IndexKind.Number); var result = createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= TypeFlags.ObjectLiteral | TypeFlags.ContainsLiteral | (typeFlags & TypeFlags.ContainsUndefined); + result.flags |= TypeFlags.ObjectLiteral | TypeFlags.ContainsObjectLiteral | (typeFlags & TypeFlags.ContainsUndefinedOrNull); return result; function getIndexType(kind: IndexKind) { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 474fdf30fed..ad20efcef3e 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1266,32 +1266,32 @@ module ts { } export const enum TypeFlags { - Any = 0x00000001, - String = 0x00000002, - Number = 0x00000004, - Boolean = 0x00000008, - Void = 0x00000010, - Undefined = 0x00000020, - Null = 0x00000040, - Enum = 0x00000080, // Enum type - StringLiteral = 0x00000100, // String literal type - TypeParameter = 0x00000200, // Type parameter - Class = 0x00000400, // Class - Interface = 0x00000800, // Interface - Reference = 0x00001000, // Generic type reference - Tuple = 0x00002000, // Tuple - Union = 0x00004000, // Union - Anonymous = 0x00008000, // Anonymous - FromSignature = 0x00010000, // Created for signature assignment check - ObjectLiteral = 0x00020000, // Originates in an object literal - ContainsUndefined = 0x00040000, // Type is or contains Undefined or Null type - ContainsLiteral = 0x00080000, // Type is or contains object literal type + Any = 0x00000001, + String = 0x00000002, + Number = 0x00000004, + Boolean = 0x00000008, + Void = 0x00000010, + Undefined = 0x00000020, + Null = 0x00000040, + Enum = 0x00000080, // Enum type + StringLiteral = 0x00000100, // String literal type + TypeParameter = 0x00000200, // Type parameter + Class = 0x00000400, // Class + Interface = 0x00000800, // Interface + Reference = 0x00001000, // Generic type reference + Tuple = 0x00002000, // Tuple + Union = 0x00004000, // Union + Anonymous = 0x00008000, // Anonymous + FromSignature = 0x00010000, // Created for signature assignment check + ObjectLiteral = 0x00020000, // Originates in an object literal + ContainsUndefinedOrNull = 0x00040000, // Type is or contains Undefined or Null type + ContainsObjectLiteral = 0x00080000, // Type is or contains object literal type Intrinsic = Any | String | Number | Boolean | Void | Undefined | Null, StringLike = String | StringLiteral, NumberLike = Number | Enum, ObjectType = Class | Interface | Reference | Tuple | Anonymous, - RequiresWidening = ContainsUndefined | ContainsLiteral + RequiresWidening = ContainsUndefinedOrNull | ContainsObjectLiteral } // Properties common to all types From 0257acebd37374b71d176db050d987b32e8c8315 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 26 Jan 2015 16:45:34 -0800 Subject: [PATCH 094/211] Respond to code review comments --- src/compiler/core.ts | 2 +- src/compiler/program.ts | 2 +- src/services/services.ts | 12 ++++++------ tests/cases/unittests/services/documentRegistry.ts | 12 ++++++------ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index d57553d053e..aafec557de4 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -633,7 +633,7 @@ module ts { } } - export function getDefaultLibraryFilename(options: CompilerOptions): string { + export function getDefaultLibFilename(options: CompilerOptions): string { return options.target === ScriptTarget.ES6 ? "lib.es6.d.ts" : "lib.d.ts"; } diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 21a5d9e7d37..dac92431bea 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -64,7 +64,7 @@ module ts { return { getSourceFile, - getDefaultLibFilename: options => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), getDefaultLibraryFilename(options)), + getDefaultLibFilename: options => combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), getDefaultLibFilename(options)), writeFile, getCurrentDirectory: () => currentDirectory || (currentDirectory = sys.getCurrentDirectory()), useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames, diff --git a/src/services/services.ts b/src/services/services.ts index 875b67aba0f..1a9e49c49a9 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2045,12 +2045,12 @@ module ts { // Now create a new compiler program = createProgram(hostfilenames, compilationSettings, { - getSourceFile: getSourceFile, + getSourceFile, getCancellationToken: () => cancellationToken, getCanonicalFileName: filename => useCaseSensitivefilenames ? filename : filename.toLowerCase(), useCaseSensitiveFileNames: () => useCaseSensitivefilenames, getNewLine: () => host.getNewLine ? host.getNewLine() : "\r\n", - getDefaultLibFilename: getDefaultLibraryFilename, + getDefaultLibFilename, writeFile: (filename, data, writeByteOrderMark) => { }, getCurrentDirectory: () => host.getCurrentDirectory() }); @@ -5698,16 +5698,16 @@ module ts { /// getDefaultLibraryFilePath declare var __dirname: string; - declare var module: any; - + /** * Get the path of the default library file (lib.d.ts) as distributed with the typescript * node package. * The functionality is not supported if the ts module is consumed outside of a node module. */ export function getDefaultLibraryFilePath(options: CompilerOptions): string { - if (typeof module !== "undefined" && module.exports) { - return __dirname + directorySeparator + getDefaultLibraryFilename(options); + // Check __dirname is defined and that we are on a node.js system. + if (typeof __dirname !== "undefined") { + return __dirname + directorySeparator + getDefaultLibFilename(options); } throw new Error("getDefaultLibraryFilename is only supported when consumed as a node module. "); diff --git a/tests/cases/unittests/services/documentRegistry.ts b/tests/cases/unittests/services/documentRegistry.ts index 598416b9812..339c8866329 100644 --- a/tests/cases/unittests/services/documentRegistry.ts +++ b/tests/cases/unittests/services/documentRegistry.ts @@ -5,8 +5,8 @@ describe("DocumentRegistry", () => { var documentRegistry = ts.createDocumentRegistry(); var defaultCompilerOptions = ts.getDefaultCompilerOptions(); - var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); - var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); + var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); assert(f1 === f2, "DocumentRegistry should return the same document for the same name"); }); @@ -17,21 +17,21 @@ describe("DocumentRegistry", () => { // change compilation setting that doesn't affect parsing - should have the same document compilerOptions.declaration = true; - var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); compilerOptions.declaration = false; - var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); assert(f1 === f2, "Expected to have the same document instance"); // change value of compilation setting that is used during production of AST - new document is required compilerOptions.target = ts.ScriptTarget.ES3; - var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); assert(f1 !== f3, "Changed target: Expected to have different instances of document"); compilerOptions.module = ts.ModuleKind.CommonJS; - var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), "1"); + var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, ts.ScriptSnapshot.fromString("var x = 1;"), /* version */ "1"); assert(f3 === f4, "Changed module: Expected to have the same instance of the document"); }); From 35b2038af75bd80e4569c4896e50776e1ff0350a Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 26 Jan 2015 16:46:52 -0800 Subject: [PATCH 095/211] Addressing CR feedback --- src/compiler/checker.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 336bfab5ccb..0c4d6c2da73 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4469,7 +4469,7 @@ module ts { Debug.fail("should not get here"); } - // For a union type, remove all constituent types for that are of the given type kind (when isOfTypeKind is true) + // For a union type, remove all constituent types that are of the given type kind (when isOfTypeKind is true) // or not of the given type kind (when isOfTypeKind is false) function removeTypesFromUnionType(type: Type, typeKind: TypeFlags, isOfTypeKind: boolean): Type { if (type.flags & TypeFlags.Union) { @@ -4683,7 +4683,7 @@ module ts { if (assumeTrue) { // Assumed result is true. If check was not for a primitive type, remove all primitive types if (!typeInfo) { - return removeTypesFromUnionType(type, TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.Boolean, true); + return removeTypesFromUnionType(type, /*typeKind*/ TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.Boolean, /*isOfTypeKind*/ true); } // Check was for a primitive type, return that primitive type if it is a subtype if (isTypeSubtypeOf(typeInfo.type, type)) { @@ -4691,12 +4691,12 @@ module ts { } // Otherwise, remove all types that aren't of the primitive type kind. This can happen when the type is // union of enum types and other types. - return removeTypesFromUnionType(type, typeInfo.flags, false); + return removeTypesFromUnionType(type, /*typeKind*/ typeInfo.flags, /*isOfTypeKind*/ false); } else { // Assumed result is false. If check was for a primitive type, remove that primitive type if (typeInfo) { - return removeTypesFromUnionType(type, typeInfo.flags, true); + return removeTypesFromUnionType(type, /*typeKind*/ typeInfo.flags, /*isOfTypeKind*/ true); } // Otherwise we don't have enough information to do anything. return type; From ca8c446d3f62769ac3a739a54164cccefe150142 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Mon, 26 Jan 2015 16:48:53 -0800 Subject: [PATCH 096/211] Use transient symbols when computing the indexers for object literals --- src/compiler/checker.ts | 20 ++++++++++++------- .../objectLiteralIndexerNoImplicitAny.js | 13 ++++++++++++ .../objectLiteralIndexerNoImplicitAny.types | 16 +++++++++++++++ .../objectLiteralIndexerNoImplicitAny.ts | 8 ++++++++ 4 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 tests/baselines/reference/objectLiteralIndexerNoImplicitAny.js create mode 100644 tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types create mode 100644 tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fd85a477bd4..e5624fb8916 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5441,7 +5441,8 @@ module ts { // Grammar checking checkGrammarObjectLiteralExpression(node); - var properties: SymbolTable = {}; + var propertiesTable: SymbolTable = {}; + var propertiesArray: Symbol[] = []; var contextualType = getContextualType(node); var typeFlags: TypeFlags; @@ -5486,8 +5487,9 @@ module ts { } if (!hasDynamicName(memberDecl)) { - properties[member.name] = member; + propertiesTable[member.name] = member; } + propertiesArray.push(member); } // If object literal is contextually (but not inferentially) typed, copy missing optional properties from @@ -5495,25 +5497,29 @@ module ts { // were omitted. There is no need to create new property objects as nothing in them needs to change. if (contextualType && !isInferentialContext(contextualMapper)) { forEach(getPropertiesOfObjectType(contextualType), p => { - if (p.flags & SymbolFlags.Optional && !hasProperty(properties, p.name)) { - properties[p.name] = p; + if (p.flags & SymbolFlags.Optional && !hasProperty(propertiesTable, p.name)) { + propertiesTable[p.name] = p; } }); } var stringIndexType = getIndexType(IndexKind.String); var numberIndexType = getIndexType(IndexKind.Number); - var result = createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); + var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); result.flags |= (typeFlags & TypeFlags.Unwidened); return result; function getIndexType(kind: IndexKind) { if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { var propTypes: Type[] = []; - for (var i = 0; i < node.properties.length; i++) { + for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; if (kind === IndexKind.String || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(getSymbolOfNode(propertyDecl)); + // Do not call getSymbolOfNode(propertyDecl), as that will get the + // original symbol for the node. We actually want to get the symbol + // created by checkObjectLiteral, since that will be appropriately + // contextually typed and resolved. + var type = getTypeOfSymbol(propertiesArray[i]); if (!contains(propTypes, type)) { propTypes.push(type); } diff --git a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.js b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.js new file mode 100644 index 00000000000..2cbb76b200d --- /dev/null +++ b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.js @@ -0,0 +1,13 @@ +//// [objectLiteralIndexerNoImplicitAny.ts] +interface I { + [s: string]: any; +} + +var x: I = { + p: null +} + +//// [objectLiteralIndexerNoImplicitAny.js] +var x = { + p: null +}; diff --git a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types new file mode 100644 index 00000000000..14bcc6f5b62 --- /dev/null +++ b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types @@ -0,0 +1,16 @@ +=== tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts === +interface I { +>I : I + + [s: string]: any; +>s : string +} + +var x: I = { +>x : I +>I : I +>{ p: null} : { [x: string]: null; p: null; } + + p: null +>p : null +} diff --git a/tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts b/tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts new file mode 100644 index 00000000000..c21d8df52fc --- /dev/null +++ b/tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts @@ -0,0 +1,8 @@ +//@noImplicitAny: true +interface I { + [s: string]: any; +} + +var x: I = { + p: null +} \ No newline at end of file From 93dbcf006f3855c20f02e587970add1744cf32d1 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 26 Jan 2015 18:42:17 -0800 Subject: [PATCH 097/211] Contextually type parameters in super calls using type arguments on the base class. --- src/compiler/checker.ts | 31 +++++++++++++-- .../superCallArgsMustMatch.errors.txt | 29 ++++++++++++++ .../reference/superCallArgsMustMatch.types | 38 ------------------- .../superCallParameterContextualTyping1.js | 35 +++++++++++++++++ .../superCallParameterContextualTyping1.types | 34 +++++++++++++++++ ...rCallParameterContextualTyping2.errors.txt | 17 +++++++++ .../superCallParameterContextualTyping2.js | 34 +++++++++++++++++ .../superCallParameterContextualTyping1.ts | 11 ++++++ .../superCallParameterContextualTyping2.ts | 11 ++++++ ...ntextuallyTypedArrowFunctionInSuperCall.ts | 20 ++++++++++ 10 files changed, 219 insertions(+), 41 deletions(-) create mode 100644 tests/baselines/reference/superCallArgsMustMatch.errors.txt delete mode 100644 tests/baselines/reference/superCallArgsMustMatch.types create mode 100644 tests/baselines/reference/superCallParameterContextualTyping1.js create mode 100644 tests/baselines/reference/superCallParameterContextualTyping1.types create mode 100644 tests/baselines/reference/superCallParameterContextualTyping2.errors.txt create mode 100644 tests/baselines/reference/superCallParameterContextualTyping2.js create mode 100644 tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts create mode 100644 tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts create mode 100644 tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e5624fb8916..6887421ba32 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5978,11 +5978,36 @@ module ts { return args; } + // In a 'super' call, type arguments are not provided within the CallExpression node itself. + // Instead, they must be fetched from the class declaration's base type node. + function getEffectiveTypeArguments(callExpression: CallExpression): TypeNode[] { + if (callExpression.expression.kind === SyntaxKind.SuperKeyword) { + // TODO (drosen): 1) Discuss if checking needs to be done at this point. + // 2) Have a test where type arguments are not provided on the base class. + // 3) Have a test where the base class is not generic. + var containingClass = getAncestor(callExpression, SyntaxKind.ClassDeclaration); + var baseClassTypeNode = getClassBaseTypeNode(containingClass); + return baseClassTypeNode.typeArguments; + } + else { + // Ordinary case - simple function invocation. + return (callExpression).typeArguments; + } + } + function resolveCall(node: CallLikeExpression, signatures: Signature[], candidatesOutArray: Signature[]): Signature { var isTaggedTemplate = node.kind === SyntaxKind.TaggedTemplateExpression; - var typeArguments = isTaggedTemplate ? undefined : (node).typeArguments; - forEach(typeArguments, checkSourceElement); + var typeArguments: TypeNode[]; + + if (!isTaggedTemplate) { + typeArguments = getEffectiveTypeArguments(node); + + // We already perform checking on the type arguments on the class declaration itself. + if ((node).expression.kind !== SyntaxKind.SuperKeyword) { + forEach(typeArguments, checkSourceElement); + } + } var candidates = candidatesOutArray || []; // collectCandidates fills up the candidates array directly @@ -6248,7 +6273,7 @@ module ts { // Another error has already been reported return resolveErrorCall(node); } - + // Technically, this signatures list may be incomplete. We are taking the apparent type, // but we are not including call signatures that may have been added to the Object or // Function interface, since they have none by default. This is a bit of a leap of faith diff --git a/tests/baselines/reference/superCallArgsMustMatch.errors.txt b/tests/baselines/reference/superCallArgsMustMatch.errors.txt new file mode 100644 index 00000000000..e9a665acd1f --- /dev/null +++ b/tests/baselines/reference/superCallArgsMustMatch.errors.txt @@ -0,0 +1,29 @@ +tests/cases/compiler/superCallArgsMustMatch.ts(15,15): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + + +==== tests/cases/compiler/superCallArgsMustMatch.ts (1 errors) ==== + class T5{ + + public foo: T; + + constructor(public bar: T) { } + + } + + + + class T6 extends T5{ + + constructor() { + + super("hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause + ~~~~ +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + + var x: number = this.foo; + + } + + } + + \ No newline at end of file diff --git a/tests/baselines/reference/superCallArgsMustMatch.types b/tests/baselines/reference/superCallArgsMustMatch.types deleted file mode 100644 index c2019881d94..00000000000 --- a/tests/baselines/reference/superCallArgsMustMatch.types +++ /dev/null @@ -1,38 +0,0 @@ -=== tests/cases/compiler/superCallArgsMustMatch.ts === -class T5{ ->T5 : T5 ->T : T - - public foo: T; ->foo : T ->T : T - - constructor(public bar: T) { } ->bar : T ->T : T - -} - - - -class T6 extends T5{ ->T6 : T6 ->T5 : T5 - - constructor() { - - super("hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause ->super("hi") : void ->super : typeof T5 - - var x: number = this.foo; ->x : number ->this.foo : number ->this : T6 ->foo : number - - } - -} - - diff --git a/tests/baselines/reference/superCallParameterContextualTyping1.js b/tests/baselines/reference/superCallParameterContextualTyping1.js new file mode 100644 index 00000000000..b11d62d62c8 --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping1.js @@ -0,0 +1,35 @@ +//// [superCallParameterContextualTyping1.ts] + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. + constructor() { super(value => String(value.toExponential())); } +} + + +//// [superCallParameterContextualTyping1.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function (_super) { + __extends(B, _super); + // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. + function B() { + _super.call(this, function (value) { return String(value.toExponential()); }); + } + return B; +})(A); diff --git a/tests/baselines/reference/superCallParameterContextualTyping1.types b/tests/baselines/reference/superCallParameterContextualTyping1.types new file mode 100644 index 00000000000..23aa3147997 --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping1.types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts === + +class A { +>A : A +>T1 : T1 +>T2 : T2 + + constructor(private map: (value: T1) => T2) { +>map : (value: T1) => T2 +>value : T1 +>T1 : T1 +>T2 : T2 + + } +} + +class B extends A { +>B : B +>A : A + + // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. + constructor() { super(value => String(value.toExponential())); } +>super(value => String(value.toExponential())) : void +>super : typeof A +>value => String(value.toExponential()) : (value: number) => string +>value : number +>String(value.toExponential()) : string +>String : StringConstructor +>value.toExponential() : string +>value.toExponential : (fractionDigits?: number) => string +>value : number +>toExponential : (fractionDigits?: number) => string +} + diff --git a/tests/baselines/reference/superCallParameterContextualTyping2.errors.txt b/tests/baselines/reference/superCallParameterContextualTyping2.errors.txt new file mode 100644 index 00000000000..a1e89d41efc --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping2.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts(10,43): error TS2349: Cannot invoke an expression whose type lacks a call signature. + + +==== tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts (1 errors) ==== + + class A { + constructor(private map: (value: T1) => T2) { + + } + } + + class C extends A { + // Ensure 'value' is not of type 'any' by invoking it with type arguments. + constructor() { super(value => String(value())); } + ~~~~~~~~~~~~~~~ +!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallParameterContextualTyping2.js b/tests/baselines/reference/superCallParameterContextualTyping2.js new file mode 100644 index 00000000000..61e8b94f00f --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping2.js @@ -0,0 +1,34 @@ +//// [superCallParameterContextualTyping2.ts] + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class C extends A { + // Ensure 'value' is not of type 'any' by invoking it with type arguments. + constructor() { super(value => String(value())); } +} + +//// [superCallParameterContextualTyping2.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var C = (function (_super) { + __extends(C, _super); + // Ensure 'value' is not of type 'any' by invoking it with type arguments. + function C() { + _super.call(this, function (value) { return String(value()); }); + } + return C; +})(A); diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts new file mode 100644 index 00000000000..7bcde9a6955 --- /dev/null +++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts @@ -0,0 +1,11 @@ + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. + constructor() { super(value => String(value.toExponential())); } +} diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts new file mode 100644 index 00000000000..32b43374946 --- /dev/null +++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping2.ts @@ -0,0 +1,11 @@ + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class C extends A { + // Ensure 'value' is not of type 'any' by invoking it with type arguments. + constructor() { super(value => String(value())); } +} \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts b/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts new file mode 100644 index 00000000000..6a5e71bd4a0 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts @@ -0,0 +1,20 @@ +/// + +////class A { +//// constructor(private map: (value: T1) => T2) { +//// +//// } +////} +//// +////class B extends A { +//// constructor() { super(va/*1*/lue => String(va/*2*/lue.toExpone/*3*/ntial())); } +////} + +goTo.marker('1'); +verify.quickInfoIs('(var) value: number'); + +goTo.marker('2'); +verify.quickInfoIs('(var) value: number'); + +goTo.marker('3'); +verify.quickInfoIs('(method) Number.toExponential(fractionDigits?: number): string'); \ No newline at end of file From f219a2de254b1569a0e47e180c3d1b20c0c5d72a Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 26 Jan 2015 19:00:38 -0800 Subject: [PATCH 098/211] Address code review; preserve users non-parenthesis --- src/compiler/emitter.ts | 22 +++++++++++++++++-- src/compiler/parser.ts | 3 +++ src/compiler/types.ts | 2 ++ .../reference/emitArrowFunctionsAsIs.js | 13 +++++++++++ .../reference/emitArrowFunctionsAsIs.types | 17 ++++++++++++++ .../reference/emitArrowFunctionsAsIsES6.js | 13 +++++++++++ .../reference/emitArrowFunctionsAsIsES6.types | 17 ++++++++++++++ .../parenthesizedContexualTyping3.js | 16 +++++++------- .../taggedTemplateContextualTyping1.js | 10 ++++----- .../taggedTemplateContextualTyping2.js | 8 +++---- ...TemplateStringsTypeArgumentInferenceES6.js | 8 +++---- .../templateStringInArrowFunctionES6.js | 2 +- ...plateStringWithEmbeddedArrowFunctionES6.js | 2 +- .../arrowFunction/emitArrowFunctionsAsIs.ts | 5 +++++ .../emitArrowFunctionsAsIsES6.ts | 5 +++++ 15 files changed, 118 insertions(+), 25 deletions(-) create mode 100644 tests/baselines/reference/emitArrowFunctionsAsIs.js create mode 100644 tests/baselines/reference/emitArrowFunctionsAsIs.types create mode 100644 tests/baselines/reference/emitArrowFunctionsAsIsES6.js create mode 100644 tests/baselines/reference/emitArrowFunctionsAsIsES6.types create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index db13a2c03cd..afd493bc8f1 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3289,6 +3289,21 @@ module ts { decreaseIndent(); } + function emitSignatureParametersES6(node: FunctionLikeDeclaration) { + // Check the node's parameters whether it contains flags indicating that it has no parenthesis around the parameters + // Preserver no-parenthesis + if (node && node.flags & NodeFlags.SimpleArrowFunction) { + increaseIndent(); + var parameters = node.parameters; + var omitCount = languageVersion < ScriptTarget.ES6 && hasRestParameters(node) ? 1 : 0; + emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); + decreaseIndent(); + } + else { + emitSignatureParameters(node); + } + } + function emitSignatureAndBody(node: FunctionLikeDeclaration) { var saveTempCount = tempCount; var saveTempVariables = tempVariables; @@ -3296,12 +3311,15 @@ module ts { tempCount = 0; tempVariables = undefined; tempParameters = undefined; - emitSignatureParameters(node); // When targeting ES6, emit arrow function natively in ES6 if (isES6ArrowFunction(node)) { - write(" =>"); + emitSignatureParametersES6(node); + write(" =>"); } + else { + emitSignatureParameters(node); + } write(" {"); scopeEmitStart(node); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5ae44e5ff39..82fa5f2c579 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2883,6 +2883,9 @@ module ts { node.parameters = >[parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; + // Add node flags for simple arrow function(no parenthesis around parameters) + // so that in emit state we can check this flag and preserve users original text + node.flags |= NodeFlags.SimpleArrowFunction; parseExpected(SyntaxKind.EqualsGreaterThanToken); node.body = parseArrowFunctionExpressionBody(); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b8c842641d7..fb1f2d8d5be 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -293,6 +293,8 @@ module ts { Const = 0x00001000, // Variable declaration OctalLiteral = 0x00002000, + SimpleArrowFunction = 0x00004000, // Arrow function without parenthesized parameters + Modifier = Export | Ambient | Public | Private | Protected | Static, AccessibilityModifier = Public | Private | Protected, BlockScoped = Let | Const diff --git a/tests/baselines/reference/emitArrowFunctionsAsIs.js b/tests/baselines/reference/emitArrowFunctionsAsIs.js new file mode 100644 index 00000000000..ee8347dda3e --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIs.js @@ -0,0 +1,13 @@ +//// [emitArrowFunctionsAsIs.ts] +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; + +//// [emitArrowFunctionsAsIs.js] +var arrow1 = function (a) { +}; +var arrow2 = function (a) { +}; +var arrow3 = function (a, b) { +}; diff --git a/tests/baselines/reference/emitArrowFunctionsAsIs.types b/tests/baselines/reference/emitArrowFunctionsAsIs.types new file mode 100644 index 00000000000..36dae7e9c5a --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIs.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts === +var arrow1 = a => { }; +>arrow1 : (a: any) => void +>a => { } : (a: any) => void +>a : any + +var arrow2 = (a) => { }; +>arrow2 : (a: any) => void +>(a) => { } : (a: any) => void +>a : any + +var arrow3 = (a, b) => { }; +>arrow3 : (a: any, b: any) => void +>(a, b) => { } : (a: any, b: any) => void +>a : any +>b : any + diff --git a/tests/baselines/reference/emitArrowFunctionsAsIsES6.js b/tests/baselines/reference/emitArrowFunctionsAsIsES6.js new file mode 100644 index 00000000000..021e048ed88 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIsES6.js @@ -0,0 +1,13 @@ +//// [emitArrowFunctionsAsIsES6.ts] +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; + +//// [emitArrowFunctionsAsIsES6.js] +var arrow1 = a => { +}; +var arrow2 = (a) => { +}; +var arrow3 = (a, b) => { +}; diff --git a/tests/baselines/reference/emitArrowFunctionsAsIsES6.types b/tests/baselines/reference/emitArrowFunctionsAsIsES6.types new file mode 100644 index 00000000000..4073355d259 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIsES6.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts === +var arrow1 = a => { }; +>arrow1 : (a: any) => void +>a => { } : (a: any) => void +>a : any + +var arrow2 = (a) => { }; +>arrow2 : (a: any) => void +>(a) => { } : (a: any) => void +>a : any + +var arrow3 = (a, b) => { }; +>arrow3 : (a: any, b: any) => void +>(a, b) => { } : (a: any, b: any) => void +>a : any +>b : any + diff --git a/tests/baselines/reference/parenthesizedContexualTyping3.js b/tests/baselines/reference/parenthesizedContexualTyping3.js index efff077d331..cc6dbd44f88 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping3.js +++ b/tests/baselines/reference/parenthesizedContexualTyping3.js @@ -25,11 +25,11 @@ var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` function tempFun(tempStrs, g, x) { return g(x); } -var a = tempFun `${(x) => { return x; }} ${10}`; -var b = tempFun `${((x) => { return x; })} ${10}`; -var c = tempFun `${(((x) => { return x; }))} ${10}`; -var d = tempFun `${(x) => { return x; }} ${(x) => { return x; }} ${10}`; -var e = tempFun `${(x) => { return x; }} ${((x) => { return x; })} ${10}`; -var f = tempFun `${(x) => { return x; }} ${(((x) => { return x; }))} ${10}`; -var g = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${10}`; -var h = tempFun `${((x) => { return x; })} ${((((x) => { return x; })))} ${undefined}`; +var a = tempFun `${x => { return x; }} ${10}`; +var b = tempFun `${(x => { return x; })} ${10}`; +var c = tempFun `${((x => { return x; }))} ${10}`; +var d = tempFun `${x => { return x; }} ${x => { return x; }} ${10}`; +var e = tempFun `${x => { return x; }} ${(x => { return x; })} ${10}`; +var f = tempFun `${x => { return x; }} ${((x => { return x; }))} ${10}`; +var g = tempFun `${(x => { return x; })} ${(((x => { return x; })))} ${10}`; +var h = tempFun `${(x => { return x; })} ${(((x => { return x; })))} ${undefined}`; diff --git a/tests/baselines/reference/taggedTemplateContextualTyping1.js b/tests/baselines/reference/taggedTemplateContextualTyping1.js index be8ec812741..173d0f56bb7 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping1.js +++ b/tests/baselines/reference/taggedTemplateContextualTyping1.js @@ -26,18 +26,18 @@ function tempTag1(...rest) { // Otherwise, the arrow functions' parameters will be typed as 'any', // and it is an error to invoke an any-typed value with type arguments, // so this test will error. -tempTag1 `${(x) => { +tempTag1 `${x => { x(undefined); return x; }}${10}`; -tempTag1 `${(x) => { +tempTag1 `${x => { x(undefined); return x; -}}${(y) => { +}}${y => { y(undefined); return y; }}${10}`; -tempTag1 `${(x) => { +tempTag1 `${x => { x(undefined); return x; }}${(y) => { @@ -47,7 +47,7 @@ tempTag1 `${(x) => { tempTag1 `${(x) => { x(undefined); return x; -}}${(y) => { +}}${y => { y(undefined); return y; }}${undefined}`; diff --git a/tests/baselines/reference/taggedTemplateContextualTyping2.js b/tests/baselines/reference/taggedTemplateContextualTyping2.js index 387d5f49883..1eed600da4c 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping2.js +++ b/tests/baselines/reference/taggedTemplateContextualTyping2.js @@ -25,18 +25,18 @@ function tempTag2(...rest) { // Otherwise, the arrow functions' parameters will be typed as 'any', // and it is an error to invoke an any-typed value with type arguments, // so this test will error. -tempTag2 `${(x) => { +tempTag2 `${x => { x(undefined); return x; }}${0}`; -tempTag2 `${(x) => { +tempTag2 `${x => { x(undefined); return x; -}}${(y) => { +}}${y => { y(null); return y; }}${"hello"}`; -tempTag2 `${(x) => { +tempTag2 `${x => { x(undefined); return x; }}${undefined}${"hello"}`; diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js index 8e96736e790..da39703931c 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js @@ -136,14 +136,14 @@ someGenerics5 `${null}${null}`; // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs, a, b, c) { } -someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics6 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; +someGenerics6 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with multiple arguments of function types that each have parameters of different generic type function someGenerics7(strs, a, b, c) { } -someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; -someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; +someGenerics7 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; +someGenerics7 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with argument of generic function type function someGenerics8(strs, n) { diff --git a/tests/baselines/reference/templateStringInArrowFunctionES6.js b/tests/baselines/reference/templateStringInArrowFunctionES6.js index 1dc7b5c9fa1..11dd7a82fe3 100644 --- a/tests/baselines/reference/templateStringInArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringInArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = x => `abc${ x }def`; //// [templateStringInArrowFunctionES6.js] -var x = (x) => { return `abc${x}def`; }; +var x = x => { return `abc${x}def`; }; diff --git a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js index 5d95a9a0079..3dd7e4c11e4 100644 --- a/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js +++ b/tests/baselines/reference/templateStringWithEmbeddedArrowFunctionES6.js @@ -2,4 +2,4 @@ var x = `abc${ x => x }def`; //// [templateStringWithEmbeddedArrowFunctionES6.js] -var x = `abc${(x) => { return x; }}def`; +var x = `abc${x => { return x; }}def`; diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts new file mode 100644 index 00000000000..1366fff90a1 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts @@ -0,0 +1,5 @@ +// @target:ES5 +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts new file mode 100644 index 00000000000..01331ededf9 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts @@ -0,0 +1,5 @@ +// @target:ES6 +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; \ No newline at end of file From 1638ae75186d9a8ac200f5c3723960be2f683a14 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 27 Jan 2015 10:52:40 -0800 Subject: [PATCH 099/211] Updated comments and formatting as per review feedback. --- src/services/services.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index a88b31bd2fe..13212ede54c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -335,13 +335,14 @@ module ts { var paramTag = "@param"; var jsDocCommentParts: SymbolDisplayPart[] = []; - ts.forEach(declarations,(declaration, indexOfDeclaration) => { + ts.forEach(declarations, (declaration, indexOfDeclaration) => { + // Make sure we are collecting doc comment from declaration once, + // In case of union property there might be same declaration multiple times + // which only varies in type parameter + // Eg. var a: Array | Array; a.length + // The property length will have two declarations of property length coming + // from Array - Array and Array if (indexOf(declarations, declaration) === indexOfDeclaration) { - // Already collected the doc comments from this declaration. - // Eg. var a: Array | Array; a.length - // The property length will have two declarations of property length coming - // from Array - Array and Array - var sourceFileOfDeclaration = getSourceFileOfNode(declaration); // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments if (canUseParsedParamTagComments && declaration.kind === SyntaxKind.Parameter) { From 4646d6355859fa59fe52ab8801e6c686ff9f0748 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 13:28:32 -0800 Subject: [PATCH 100/211] Fixed fourslash test. --- .../quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts b/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts index 6a5e71bd4a0..e24a484979a 100644 --- a/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts +++ b/tests/cases/fourslash/quickInfoForContextuallyTypedArrowFunctionInSuperCall.ts @@ -11,10 +11,10 @@ ////} goTo.marker('1'); -verify.quickInfoIs('(var) value: number'); +verify.quickInfoIs('(parameter) value: number'); goTo.marker('2'); -verify.quickInfoIs('(var) value: number'); +verify.quickInfoIs('(parameter) value: number'); goTo.marker('3'); verify.quickInfoIs('(method) Number.toExponential(fractionDigits?: number): string'); \ No newline at end of file From 8ee09dbe6ebdcd18c3208936b6226c712a0050ea Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 13:36:10 -0800 Subject: [PATCH 101/211] Addressed Jason's pedantic correction over the wording of a comment. --- .../baselines/reference/superCallArgsMustMatch.errors.txt | 6 ++++-- tests/baselines/reference/superCallArgsMustMatch.js | 8 ++++++-- tests/cases/compiler/superCallArgsMustMatch.ts | 4 +++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tests/baselines/reference/superCallArgsMustMatch.errors.txt b/tests/baselines/reference/superCallArgsMustMatch.errors.txt index e9a665acd1f..06758b44fe6 100644 --- a/tests/baselines/reference/superCallArgsMustMatch.errors.txt +++ b/tests/baselines/reference/superCallArgsMustMatch.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/superCallArgsMustMatch.ts(15,15): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/compiler/superCallArgsMustMatch.ts(17,15): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. ==== tests/cases/compiler/superCallArgsMustMatch.ts (1 errors) ==== @@ -16,7 +16,9 @@ tests/cases/compiler/superCallArgsMustMatch.ts(15,15): error TS2345: Argument of constructor() { - super("hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause + // Should error; base constructor has type T for first arg, + // which is instantiated with 'number' in the extends clause + super("hi"); ~~~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. diff --git a/tests/baselines/reference/superCallArgsMustMatch.js b/tests/baselines/reference/superCallArgsMustMatch.js index 0b772fd39d8..e38c519ead9 100644 --- a/tests/baselines/reference/superCallArgsMustMatch.js +++ b/tests/baselines/reference/superCallArgsMustMatch.js @@ -13,7 +13,9 @@ class T6 extends T5{ constructor() { - super("hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause + // Should error; base constructor has type T for first arg, + // which is instantiated with 'number' in the extends clause + super("hi"); var x: number = this.foo; @@ -39,7 +41,9 @@ var T5 = (function () { var T6 = (function (_super) { __extends(T6, _super); function T6() { - _super.call(this, "hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause + // Should error; base constructor has type T for first arg, + // which is instantiated with 'number' in the extends clause + _super.call(this, "hi"); var x = this.foo; } return T6; diff --git a/tests/cases/compiler/superCallArgsMustMatch.ts b/tests/cases/compiler/superCallArgsMustMatch.ts index a27aff3919b..5407c3301fa 100644 --- a/tests/cases/compiler/superCallArgsMustMatch.ts +++ b/tests/cases/compiler/superCallArgsMustMatch.ts @@ -12,7 +12,9 @@ class T6 extends T5{ constructor() { - super("hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause + // Should error; base constructor has type T for first arg, + // which is instantiated with 'number' in the extends clause + super("hi"); var x: number = this.foo; From 2e2559b0974d1424a0d7e987cf1086f0445e5f29 Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 27 Jan 2015 14:27:51 -0800 Subject: [PATCH 102/211] Update tests baseline from merging with master --- tests/baselines/reference/computedPropertyNames29.js | 5 ++--- tests/baselines/reference/computedPropertyNames3.js | 2 +- tests/baselines/reference/computedPropertyNames30.js | 2 +- tests/baselines/reference/computedPropertyNames31.js | 2 +- .../reference/computedPropertyNamesContextualType1.js | 2 +- .../reference/computedPropertyNamesContextualType2.js | 2 +- .../reference/computedPropertyNamesContextualType3.js | 2 +- .../reference/computedPropertyNamesContextualType6.js | 2 +- .../reference/computedPropertyNamesContextualType7.js | 2 +- 9 files changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/baselines/reference/computedPropertyNames29.js b/tests/baselines/reference/computedPropertyNames29.js index dc45746c63c..94e83f34629 100644 --- a/tests/baselines/reference/computedPropertyNames29.js +++ b/tests/baselines/reference/computedPropertyNames29.js @@ -15,10 +15,9 @@ var C = (function () { function C() { } C.prototype.bar = function () { - var _this = this; - (function () { + (() => { var obj = { - [_this.bar()]() { + [this.bar()]() { } // needs capture }; }); diff --git a/tests/baselines/reference/computedPropertyNames3.js b/tests/baselines/reference/computedPropertyNames3.js index fbd76bf48fc..969bbf96d86 100644 --- a/tests/baselines/reference/computedPropertyNames3.js +++ b/tests/baselines/reference/computedPropertyNames3.js @@ -16,7 +16,7 @@ var C = (function () { } C.prototype[0 + 1] = function () { }; - C[function () { + C[() => { }] = function () { }; Object.defineProperty(C.prototype, delete id, { diff --git a/tests/baselines/reference/computedPropertyNames30.js b/tests/baselines/reference/computedPropertyNames30.js index c10ba51316d..608531ffb5b 100644 --- a/tests/baselines/reference/computedPropertyNames30.js +++ b/tests/baselines/reference/computedPropertyNames30.js @@ -31,7 +31,7 @@ var C = (function (_super) { __extends(C, _super); function C() { _super.call(this); - (function () { + (() => { var obj = { // Ideally, we would capture this. But the reference is // illegal, and not capturing this is consistent with diff --git a/tests/baselines/reference/computedPropertyNames31.js b/tests/baselines/reference/computedPropertyNames31.js index bf75ac2be74..9a31b80e346 100644 --- a/tests/baselines/reference/computedPropertyNames31.js +++ b/tests/baselines/reference/computedPropertyNames31.js @@ -37,7 +37,7 @@ var C = (function (_super) { } C.prototype.foo = function () { var _this = this; - (function () { + (() => { var obj = { [_super.prototype.bar.call(_this)]() { } // needs capture diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1.js b/tests/baselines/reference/computedPropertyNamesContextualType1.js index d7704c8c377..82429be9c40 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType1.js @@ -14,5 +14,5 @@ var o = { ["" + 0](y) { return y.length; }, - ["" + 1]: function (y) { return y.length; } + ["" + 1]: y => { return y.length; } }; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2.js b/tests/baselines/reference/computedPropertyNamesContextualType2.js index 7b9f98402f5..028e797be18 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType2.js @@ -14,5 +14,5 @@ var o = { [+"foo"](y) { return y.length; }, - [+"bar"]: function (y) { return y.length; } + [+"bar"]: y => { return y.length; } }; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3.js b/tests/baselines/reference/computedPropertyNamesContextualType3.js index f5b2c71bc18..944bb3595d4 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType3.js @@ -13,5 +13,5 @@ var o = { [+"foo"](y) { return y.length; }, - [+"bar"]: function (y) { return y.length; } + [+"bar"]: y => { return y.length; } }; diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6.js b/tests/baselines/reference/computedPropertyNamesContextualType6.js index 5d0cc149b2c..a92958871d9 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType6.js @@ -16,7 +16,7 @@ foo({ //// [computedPropertyNamesContextualType6.js] foo({ p: "", - 0: function () { + 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7.js b/tests/baselines/reference/computedPropertyNamesContextualType7.js index 74030be6f2a..00103bc76db 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType7.js @@ -16,7 +16,7 @@ foo({ //// [computedPropertyNamesContextualType7.js] foo({ p: "", - 0: function () { + 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, From 40796b2c6d64b1d3b304b33ece97bd6893437762 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 14:42:39 -0800 Subject: [PATCH 103/211] Added more tests. --- ...IncorrectNumberOfTypeArguments1.errors.txt | 19 +++++++++++ ...eButWithIncorrectNumberOfTypeArguments1.js | 32 +++++++++++++++++ ...ericTypeButWithNoTypeArguments1.errors.txt | 19 +++++++++++ ...sFromGenericTypeButWithNoTypeArguments1.js | 32 +++++++++++++++++ ...enericTypeButWithTypeArguments1.errors.txt | 19 +++++++++++ ...ivesNonGenericTypeButWithTypeArguments1.js | 32 +++++++++++++++++ ...CallFromClassThatHasNoBaseType1.errors.txt | 16 +++++++++ .../superCallFromClassThatHasNoBaseType1.js | 25 ++++++++++++++ .../superCallFromFunction1.errors.txt | 10 ++++++ .../reference/superCallFromFunction1.js | 10 ++++++ .../reference/superNewCall1.errors.txt | 23 +++++++++++++ tests/baselines/reference/superNewCall1.js | 34 +++++++++++++++++++ ...eButWithIncorrectNumberOfTypeArguments1.ts | 10 ++++++ ...sFromGenericTypeButWithNoTypeArguments1.ts | 10 ++++++ ...ivesNonGenericTypeButWithTypeArguments1.ts | 10 ++++++ .../superCallFromClassThatHasNoBaseType1.ts | 10 ++++++ .../cases/compiler/superCallFromFunction1.ts | 4 +++ tests/cases/compiler/superNewCall1.ts | 12 +++++++ 18 files changed, 327 insertions(+) create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.errors.txt create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.js create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.errors.txt create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.js create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.errors.txt create mode 100644 tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.js create mode 100644 tests/baselines/reference/superCallFromClassThatHasNoBaseType1.errors.txt create mode 100644 tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js create mode 100644 tests/baselines/reference/superCallFromFunction1.errors.txt create mode 100644 tests/baselines/reference/superCallFromFunction1.js create mode 100644 tests/baselines/reference/superNewCall1.errors.txt create mode 100644 tests/baselines/reference/superNewCall1.js create mode 100644 tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts create mode 100644 tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts create mode 100644 tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts create mode 100644 tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts create mode 100644 tests/cases/compiler/superCallFromFunction1.ts create mode 100644 tests/cases/compiler/superNewCall1.ts diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.errors.txt b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.errors.txt new file mode 100644 index 00000000000..14905b224ad --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts(8,17): error TS2314: Generic type 'A' requires 2 type argument(s). +tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts(9,21): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts (2 errors) ==== + + class A { + constructor(private map: (value: T1) => T2) { + + } + } + + class B extends A { + ~~~~~~~~~ +!!! error TS2314: Generic type 'A' requires 2 type argument(s). + constructor() { super(value => String(value)); } + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.js b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.js new file mode 100644 index 00000000000..92abed0d66d --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.js @@ -0,0 +1,32 @@ +//// [superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts] + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} + +//// [superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function (_super) { + __extends(B, _super); + function B() { + _super.call(this, function (value) { return String(value); }); + } + return B; +})(A); diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.errors.txt b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.errors.txt new file mode 100644 index 00000000000..d402272df1b --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts(8,17): error TS2314: Generic type 'A' requires 2 type argument(s). +tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts(9,21): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts (2 errors) ==== + + class A { + constructor(private map: (value: T1) => T2) { + + } + } + + class B extends A { + ~ +!!! error TS2314: Generic type 'A' requires 2 type argument(s). + constructor() { super(value => String(value)); } + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.js b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.js new file mode 100644 index 00000000000..7e3c61e6690 --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.js @@ -0,0 +1,32 @@ +//// [superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts] + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} + +//// [superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function (_super) { + __extends(B, _super); + function B() { + _super.call(this, function (value) { return String(value); }); + } + return B; +})(A); diff --git a/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.errors.txt b/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.errors.txt new file mode 100644 index 00000000000..8bbf8b87cd3 --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts(8,17): error TS2315: Type 'A' is not generic. +tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts(9,21): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts (2 errors) ==== + + class A { + constructor(private map: (value: number) => string) { + + } + } + + class B extends A { + ~~~~~~~~~~~~~~~~~ +!!! error TS2315: Type 'A' is not generic. + constructor() { super(value => String(value)); } + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.js b/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.js new file mode 100644 index 00000000000..b48d5bb7f58 --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.js @@ -0,0 +1,32 @@ +//// [superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts] + +class A { + constructor(private map: (value: number) => string) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} + +//// [superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function (_super) { + __extends(B, _super); + function B() { + _super.call(this, function (value) { return String(value); }); + } + return B; +})(A); diff --git a/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.errors.txt b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.errors.txt new file mode 100644 index 00000000000..bac5abad004 --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts(9,21): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts (1 errors) ==== + + class A { + constructor(private map: (value: number) => string) { + + } + } + + class B { + constructor() { super(value => String(value)); } + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js new file mode 100644 index 00000000000..7818aed7ff8 --- /dev/null +++ b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js @@ -0,0 +1,25 @@ +//// [superCallFromClassThatHasNoBaseType1.ts] + +class A { + constructor(private map: (value: number) => string) { + + } +} + +class B { + constructor() { super(value => String(value)); } +} + +//// [superCallFromClassThatHasNoBaseType1.js] +var A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function () { + function B() { + _super.call(this, function (value) { return String(value); }); + } + return B; +})(); diff --git a/tests/baselines/reference/superCallFromFunction1.errors.txt b/tests/baselines/reference/superCallFromFunction1.errors.txt new file mode 100644 index 00000000000..374a3aeb16c --- /dev/null +++ b/tests/baselines/reference/superCallFromFunction1.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/superCallFromFunction1.ts(3,5): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/compiler/superCallFromFunction1.ts (1 errors) ==== + + function foo() { + super(value => String(value)); + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } \ No newline at end of file diff --git a/tests/baselines/reference/superCallFromFunction1.js b/tests/baselines/reference/superCallFromFunction1.js new file mode 100644 index 00000000000..a7fcbaaeff0 --- /dev/null +++ b/tests/baselines/reference/superCallFromFunction1.js @@ -0,0 +1,10 @@ +//// [superCallFromFunction1.ts] + +function foo() { + super(value => String(value)); +} + +//// [superCallFromFunction1.js] +function foo() { + _super.call(this, function (value) { return String(value); }); +} diff --git a/tests/baselines/reference/superNewCall1.errors.txt b/tests/baselines/reference/superNewCall1.errors.txt new file mode 100644 index 00000000000..2b104e7d647 --- /dev/null +++ b/tests/baselines/reference/superNewCall1.errors.txt @@ -0,0 +1,23 @@ +tests/cases/compiler/superNewCall1.ts(9,5): error TS2377: Constructors for derived classes must contain a 'super' call. +tests/cases/compiler/superNewCall1.ts(10,9): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + + +==== tests/cases/compiler/superNewCall1.ts (2 errors) ==== + + class A { + constructor(private map: (value: T1) => T2) { + + } + } + + class B extends A { + constructor() { + ~~~~~~~~~~~~~~~ + new super(value => String(value)); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. + } + ~~~~~ +!!! error TS2377: Constructors for derived classes must contain a 'super' call. + } \ No newline at end of file diff --git a/tests/baselines/reference/superNewCall1.js b/tests/baselines/reference/superNewCall1.js new file mode 100644 index 00000000000..d9b74ac5080 --- /dev/null +++ b/tests/baselines/reference/superNewCall1.js @@ -0,0 +1,34 @@ +//// [superNewCall1.ts] + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { + new super(value => String(value)); + } +} + +//// [superNewCall1.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 A = (function () { + function A(map) { + this.map = map; + } + return A; +})(); +var B = (function (_super) { + __extends(B, _super); + function B() { + new _super.prototype(function (value) { return String(value); }); + } + return B; +})(A); diff --git a/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts b/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts new file mode 100644 index 00000000000..d633ccb018f --- /dev/null +++ b/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithIncorrectNumberOfTypeArguments1.ts @@ -0,0 +1,10 @@ + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} \ No newline at end of file diff --git a/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts b/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts new file mode 100644 index 00000000000..c09fb37db2d --- /dev/null +++ b/tests/cases/compiler/superCallFromClassThatDerivesFromGenericTypeButWithNoTypeArguments1.ts @@ -0,0 +1,10 @@ + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} \ No newline at end of file diff --git a/tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts b/tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts new file mode 100644 index 00000000000..99755d87fbf --- /dev/null +++ b/tests/cases/compiler/superCallFromClassThatDerivesNonGenericTypeButWithTypeArguments1.ts @@ -0,0 +1,10 @@ + +class A { + constructor(private map: (value: number) => string) { + + } +} + +class B extends A { + constructor() { super(value => String(value)); } +} \ No newline at end of file diff --git a/tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts b/tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts new file mode 100644 index 00000000000..5f030bd5562 --- /dev/null +++ b/tests/cases/compiler/superCallFromClassThatHasNoBaseType1.ts @@ -0,0 +1,10 @@ + +class A { + constructor(private map: (value: number) => string) { + + } +} + +class B { + constructor() { super(value => String(value)); } +} \ No newline at end of file diff --git a/tests/cases/compiler/superCallFromFunction1.ts b/tests/cases/compiler/superCallFromFunction1.ts new file mode 100644 index 00000000000..81874204e1a --- /dev/null +++ b/tests/cases/compiler/superCallFromFunction1.ts @@ -0,0 +1,4 @@ + +function foo() { + super(value => String(value)); +} \ No newline at end of file diff --git a/tests/cases/compiler/superNewCall1.ts b/tests/cases/compiler/superNewCall1.ts new file mode 100644 index 00000000000..b3792d55221 --- /dev/null +++ b/tests/cases/compiler/superNewCall1.ts @@ -0,0 +1,12 @@ + +class A { + constructor(private map: (value: T1) => T2) { + + } +} + +class B extends A { + constructor() { + new super(value => String(value)); + } +} \ No newline at end of file From 9d8319dc79b206eb62bcbd98138dd41dbd67854e Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 14:55:42 -0800 Subject: [PATCH 104/211] Perform checking, document function. --- src/compiler/checker.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6887421ba32..8eb834c63a4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5978,16 +5978,21 @@ module ts { return args; } - // In a 'super' call, type arguments are not provided within the CallExpression node itself. - // Instead, they must be fetched from the class declaration's base type node. + /** + * In a 'super' call, type arguments are not provided within the CallExpression node itself. + * Instead, they must be fetched from the class declaration's base type node. + * + * If 'node' is a 'super' call (e.g. super(...), new super(...)), then we attempt to fetch + * the type arguments off the containing class's first heritage clause (if one exists). Note that if + * type arguments are supplied on the 'super' call, they are ignored (though this is syntactically incorrect). + * + * In all other cases, the call's explicit type arguments are returned. + */ function getEffectiveTypeArguments(callExpression: CallExpression): TypeNode[] { if (callExpression.expression.kind === SyntaxKind.SuperKeyword) { - // TODO (drosen): 1) Discuss if checking needs to be done at this point. - // 2) Have a test where type arguments are not provided on the base class. - // 3) Have a test where the base class is not generic. var containingClass = getAncestor(callExpression, SyntaxKind.ClassDeclaration); - var baseClassTypeNode = getClassBaseTypeNode(containingClass); - return baseClassTypeNode.typeArguments; + var baseClassTypeNode = containingClass && getClassBaseTypeNode(containingClass); + return baseClassTypeNode && baseClassTypeNode.typeArguments; } else { // Ordinary case - simple function invocation. From 0ffa722e23a14f281debebd8d0612dfc66909ddd Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 14:57:38 -0800 Subject: [PATCH 105/211] Removed superfluous type assertion. --- 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 8eb834c63a4..732acf1843b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5996,7 +5996,7 @@ module ts { } else { // Ordinary case - simple function invocation. - return (callExpression).typeArguments; + return callExpression.typeArguments; } } From 34b342ac9731a1db3a349bc075345ec41943f2c8 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 27 Jan 2015 17:09:57 -0800 Subject: [PATCH 106/211] Fix method name. --- src/compiler/emitter.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index e6a44148fe2..36741ab6cb0 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3687,13 +3687,13 @@ module ts { } } - function shouldEnumModuleDeclaration(node: ModuleDeclaration) { + function shouldEmitModuleDeclaration(node: ModuleDeclaration) { return isInstantiatedModule(node, compilerOptions.preserveConstEnums); } function emitModuleDeclaration(node: ModuleDeclaration) { // Emit only if this module is non-ambient. - var shouldEmit = shouldEnumModuleDeclaration(node); + var shouldEmit = shouldEmitModuleDeclaration(node); if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); @@ -3967,7 +3967,7 @@ module ts { case SyntaxKind.ModuleDeclaration: // Only emit the leading/trailing comments for a module if we're actually // emitting the module as well. - return shouldEnumModuleDeclaration(node); + return shouldEmitModuleDeclaration(node); case SyntaxKind.EnumDeclaration: // Only emit the leading/trailing comments for an enum if we're actually From 3c5ff5310fc553e0256f7e8c3b3763ee4d60fe62 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 27 Jan 2015 17:16:28 -0800 Subject: [PATCH 107/211] CR feedback . --- src/compiler/emitter.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 945ff3e15ae..34978ed7fd6 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3307,7 +3307,9 @@ module ts { write(" "); emitStart(node.body); write("return "); - // Don't emit comments on this body. We'll have already taken care of it above. + + // Don't emit comments on this body. We'll have already taken care of it above + // when we called emitDetachedComments. emitNode(node.body, /*disableComments:*/ true); emitEnd(node.body); write(";"); @@ -3979,7 +3981,7 @@ module ts { function shouldEmitLeadingAndTrailingComments(node: Node) { switch (node.kind) { - // All of thes entities are emitted in a specialized fashion. As such, we allow + // All of these entities are emitted in a specialized fashion. As such, we allow // the specilized methods for each to handle the comments on the nodes. case SyntaxKind.InterfaceDeclaration: case SyntaxKind.FunctionDeclaration: From 1945e119f2097828533ada9f9f6e289c4f2baa13 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 27 Jan 2015 21:39:01 -0800 Subject: [PATCH 108/211] remove unused file --- src/services/services.js | 4423 -------------------------------------- 1 file changed, 4423 deletions(-) delete mode 100644 src/services/services.js diff --git a/src/services/services.js b/src/services/services.js deleted file mode 100644 index 2f3a191d5d6..00000000000 --- a/src/services/services.js +++ /dev/null @@ -1,4423 +0,0 @@ -/// -var __extends = this.__extends || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - __.prototype = b.prototype; - d.prototype = new __(); -}; -/// -/// -/// -/// -/// -/// -/// -var ts; -(function (ts) { - ts.servicesVersion = "0.4"; - var ScriptSnapshot; - (function (ScriptSnapshot) { - var StringScriptSnapshot = (function () { - function StringScriptSnapshot(text) { - this.text = text; - this._lineStartPositions = undefined; - } - StringScriptSnapshot.prototype.getText = function (start, end) { - return this.text.substring(start, end); - }; - StringScriptSnapshot.prototype.getLength = function () { - return this.text.length; - }; - StringScriptSnapshot.prototype.getLineStartPositions = function () { - if (!this._lineStartPositions) { - this._lineStartPositions = ts.computeLineStarts(this.text); - } - return this._lineStartPositions; - }; - StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { - // Text-based snapshots do not support incremental parsing. Return undefined - // to signal that to the caller. - return undefined; - }; - return StringScriptSnapshot; - })(); - function fromString(text) { - return new StringScriptSnapshot(text); - } - ScriptSnapshot.fromString = fromString; - })(ScriptSnapshot = ts.ScriptSnapshot || (ts.ScriptSnapshot = {})); - var scanner = ts.createScanner(ts.ScriptTarget.Latest, true); - var emptyArray = []; - function createNode(kind, pos, end, flags, parent) { - var node = new (ts.getNodeConstructor(kind))(); - node.pos = pos; - node.end = end; - node.flags = flags; - node.parent = parent; - return node; - } - var NodeObject = (function () { - function NodeObject() { - } - NodeObject.prototype.getSourceFile = function () { - return ts.getSourceFileOfNode(this); - }; - NodeObject.prototype.getStart = function (sourceFile) { - return ts.getTokenPosOfNode(this, sourceFile); - }; - NodeObject.prototype.getFullStart = function () { - return this.pos; - }; - NodeObject.prototype.getEnd = function () { - return this.end; - }; - NodeObject.prototype.getWidth = function (sourceFile) { - return this.getEnd() - this.getStart(sourceFile); - }; - NodeObject.prototype.getFullWidth = function () { - return this.end - this.getFullStart(); - }; - NodeObject.prototype.getLeadingTriviaWidth = function (sourceFile) { - return this.getStart(sourceFile) - this.pos; - }; - NodeObject.prototype.getFullText = function (sourceFile) { - return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); - }; - NodeObject.prototype.getText = function (sourceFile) { - return (sourceFile || this.getSourceFile()).text.substring(this.getStart(), this.getEnd()); - }; - NodeObject.prototype.addSyntheticNodes = function (nodes, pos, end) { - scanner.setTextPos(pos); - while (pos < end) { - var token = scanner.scan(); - var textPos = scanner.getTextPos(); - nodes.push(createNode(token, pos, textPos, ts.NodeFlags.Synthetic, this)); - pos = textPos; - } - return pos; - }; - NodeObject.prototype.createSyntaxList = function (nodes) { - var list = createNode(ts.SyntaxKind.SyntaxList, nodes.pos, nodes.end, ts.NodeFlags.Synthetic, this); - list._children = []; - var pos = nodes.pos; - for (var i = 0, len = nodes.length; i < len; i++) { - var node = nodes[i]; - if (pos < node.pos) { - pos = this.addSyntheticNodes(list._children, pos, node.pos); - } - list._children.push(node); - pos = node.end; - } - if (pos < nodes.end) { - this.addSyntheticNodes(list._children, pos, nodes.end); - } - return list; - }; - NodeObject.prototype.createChildren = function (sourceFile) { - var _this = this; - if (this.kind >= ts.SyntaxKind.FirstNode) { - scanner.setText((sourceFile || this.getSourceFile()).text); - var children = []; - var pos = this.pos; - var processNode = function (node) { - if (pos < node.pos) { - pos = _this.addSyntheticNodes(children, pos, node.pos); - } - children.push(node); - pos = node.end; - }; - var processNodes = function (nodes) { - if (pos < nodes.pos) { - pos = _this.addSyntheticNodes(children, pos, nodes.pos); - } - children.push(_this.createSyntaxList(nodes)); - pos = nodes.end; - }; - ts.forEachChild(this, processNode, processNodes); - if (pos < this.end) { - this.addSyntheticNodes(children, pos, this.end); - } - scanner.setText(undefined); - } - this._children = children || emptyArray; - }; - NodeObject.prototype.getChildCount = function (sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children.length; - }; - NodeObject.prototype.getChildAt = function (index, sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children[index]; - }; - NodeObject.prototype.getChildren = function (sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children; - }; - NodeObject.prototype.getFirstToken = function (sourceFile) { - var children = this.getChildren(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - if (child.kind < ts.SyntaxKind.FirstNode) { - return child; - } - return child.getFirstToken(sourceFile); - } - }; - NodeObject.prototype.getLastToken = function (sourceFile) { - var children = this.getChildren(sourceFile); - for (var i = children.length - 1; i >= 0; i--) { - var child = children[i]; - if (child.kind < ts.SyntaxKind.FirstNode) { - return child; - } - return child.getLastToken(sourceFile); - } - }; - return NodeObject; - })(); - var SymbolObject = (function () { - function SymbolObject(flags, name) { - this.flags = flags; - this.name = name; - } - SymbolObject.prototype.getFlags = function () { - return this.flags; - }; - SymbolObject.prototype.getName = function () { - return this.name; - }; - SymbolObject.prototype.getDeclarations = function () { - return this.declarations; - }; - SymbolObject.prototype.getDocumentationComment = function () { - if (this.documentationComment === undefined) { - this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & ts.SymbolFlags.Property)); - } - return this.documentationComment; - }; - return SymbolObject; - })(); - function getJsDocCommentsFromDeclarations(declarations, name, canUseParsedParamTagComments) { - var documentationComment = []; - var docComments = getJsDocCommentsSeparatedByNewLines(); - ts.forEach(docComments, function (docComment) { - if (documentationComment.length) { - documentationComment.push(ts.lineBreakPart()); - } - documentationComment.push(docComment); - }); - return documentationComment; - function getJsDocCommentsSeparatedByNewLines() { - var paramTag = "@param"; - var jsDocCommentParts = []; - ts.forEach(declarations, function (declaration) { - var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); - // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments - if (canUseParsedParamTagComments && declaration.kind === ts.SyntaxKind.Parameter) { - ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedParamJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); - } - }); - } - // If this is left side of dotted module declaration, there is no doc comments associated with this node - if (declaration.kind === ts.SyntaxKind.ModuleDeclaration && declaration.body.kind === ts.SyntaxKind.ModuleDeclaration) { - return; - } - while (declaration.kind === ts.SyntaxKind.ModuleDeclaration && declaration.parent.kind === ts.SyntaxKind.ModuleDeclaration) { - declaration = declaration.parent; - } - // Get the cleaned js doc comment text from the declaration - ts.forEach(getJsDocCommentTextRange(declaration.kind === ts.SyntaxKind.VariableDeclaration ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); - } - }); - }); - return jsDocCommentParts; - function getJsDocCommentTextRange(node, sourceFile) { - return ts.map(ts.getJsDocComments(node, sourceFile), function (jsDocComment) { - return { - pos: jsDocComment.pos + "/*".length, - end: jsDocComment.end - "*/".length // Trim off comment end indicator - }; - }); - } - function consumeWhiteSpacesOnTheLine(pos, end, sourceFile, maxSpacesToRemove) { - if (maxSpacesToRemove !== undefined) { - end = Math.min(end, pos + maxSpacesToRemove); - } - for (; pos < end; pos++) { - var ch = sourceFile.text.charCodeAt(pos); - if (!ts.isWhiteSpace(ch) || ts.isLineBreak(ch)) { - // Either found lineBreak or non whiteSpace - return pos; - } - } - return end; - } - function consumeLineBreaks(pos, end, sourceFile) { - while (pos < end && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - pos++; - } - return pos; - } - function isName(pos, end, sourceFile, name) { - return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); - } - function isParamTag(pos, end, sourceFile) { - // If it is @param tag - return isName(pos, end, sourceFile, paramTag); - } - function pushDocCommentLineText(docComments, text, blankLineCount) { - while (blankLineCount--) - docComments.push(ts.textPart("")); - docComments.push(ts.textPart(text)); - } - function getCleanedJsDocComment(pos, end, sourceFile) { - var spacesToRemoveAfterAsterisk; - var docComments = []; - var blankLineCount = 0; - var isInParamTag = false; - while (pos < end) { - var docCommentTextOfLine = ""; - // First consume leading white space - pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); - // If the comment starts with '*' consume the spaces on this line - if (pos < end && sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.asterisk) { - var lineStartPos = pos + 1; - pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); - // Set the spaces to remove after asterisk as margin if not already set - if (spacesToRemoveAfterAsterisk === undefined && pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - spacesToRemoveAfterAsterisk = pos - lineStartPos; - } - } - else if (spacesToRemoveAfterAsterisk === undefined) { - spacesToRemoveAfterAsterisk = 0; - } - while (pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - var ch = sourceFile.text.charAt(pos); - if (ch === "@") { - // If it is @param tag - if (isParamTag(pos, end, sourceFile)) { - isInParamTag = true; - pos += paramTag.length; - continue; - } - else { - isInParamTag = false; - } - } - // Add the ch to doc text if we arent in param tag - if (!isInParamTag) { - docCommentTextOfLine += ch; - } - // Scan next character - pos++; - } - // Continue with next line - pos = consumeLineBreaks(pos, end, sourceFile); - if (docCommentTextOfLine) { - pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); - blankLineCount = 0; - } - else if (!isInParamTag && docComments.length) { - // This is blank line when there is text already parsed - blankLineCount++; - } - } - return docComments; - } - function getCleanedParamJsDocComment(pos, end, sourceFile) { - var paramHelpStringMargin; - var paramDocComments = []; - while (pos < end) { - if (isParamTag(pos, end, sourceFile)) { - var blankLineCount = 0; - var recordedParamTag = false; - // Consume leading spaces - pos = consumeWhiteSpaces(pos + paramTag.length); - if (pos >= end) { - break; - } - // Ignore type expression - if (sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.openBrace) { - pos++; - for (var curlies = 1; pos < end; pos++) { - var charCode = sourceFile.text.charCodeAt(pos); - // { character means we need to find another } to match the found one - if (charCode === ts.CharacterCodes.openBrace) { - curlies++; - continue; - } - // } char - if (charCode === ts.CharacterCodes.closeBrace) { - curlies--; - if (curlies === 0) { - // We do not have any more } to match the type expression is ignored completely - pos++; - break; - } - else { - continue; - } - } - // Found start of another tag - if (charCode === ts.CharacterCodes.at) { - break; - } - } - // Consume white spaces - pos = consumeWhiteSpaces(pos); - if (pos >= end) { - break; - } - } - // Parameter name - if (isName(pos, end, sourceFile, name)) { - // Found the parameter we are looking for consume white spaces - pos = consumeWhiteSpaces(pos + name.length); - if (pos >= end) { - break; - } - var paramHelpString = ""; - var firstLineParamHelpStringPos = pos; - while (pos < end) { - var ch = sourceFile.text.charCodeAt(pos); - // at line break, set this comment line text and go to next line - if (ts.isLineBreak(ch)) { - if (paramHelpString) { - pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); - paramHelpString = ""; - blankLineCount = 0; - recordedParamTag = true; - } - else if (recordedParamTag) { - blankLineCount++; - } - // Get the pos after cleaning start of the line - setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos); - continue; - } - // Done scanning param help string - next tag found - if (ch === ts.CharacterCodes.at) { - break; - } - paramHelpString += sourceFile.text.charAt(pos); - // Go to next character - pos++; - } - // If there is param help text, add it top the doc comments - if (paramHelpString) { - pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); - } - paramHelpStringMargin = undefined; - } - // If this is the start of another tag, continue with the loop in seach of param tag with symbol name - if (sourceFile.text.charCodeAt(pos) === ts.CharacterCodes.at) { - continue; - } - } - // Next character - pos++; - } - return paramDocComments; - function consumeWhiteSpaces(pos) { - while (pos < end && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { - pos++; - } - return pos; - } - function setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos) { - // Get the pos after consuming line breaks - pos = consumeLineBreaks(pos, end, sourceFile); - if (pos >= end) { - return; - } - if (paramHelpStringMargin === undefined) { - paramHelpStringMargin = sourceFile.getLineAndCharacterFromPosition(firstLineParamHelpStringPos).character - 1; - } - // Now consume white spaces max - var startOfLinePos = pos; - pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile, paramHelpStringMargin); - if (pos >= end) { - return; - } - var consumedSpaces = pos - startOfLinePos; - if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); - if (ch === ts.CharacterCodes.asterisk) { - // Consume more spaces after asterisk - pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); - } - } - } - } - } - } - var TypeObject = (function () { - function TypeObject(checker, flags) { - this.checker = checker; - this.flags = flags; - } - TypeObject.prototype.getFlags = function () { - return this.flags; - }; - TypeObject.prototype.getSymbol = function () { - return this.symbol; - }; - TypeObject.prototype.getProperties = function () { - return this.checker.getPropertiesOfType(this); - }; - TypeObject.prototype.getProperty = function (propertyName) { - return this.checker.getPropertyOfType(this, propertyName); - }; - TypeObject.prototype.getApparentProperties = function () { - return this.checker.getAugmentedPropertiesOfType(this); - }; - TypeObject.prototype.getCallSignatures = function () { - return this.checker.getSignaturesOfType(this, ts.SignatureKind.Call); - }; - TypeObject.prototype.getConstructSignatures = function () { - return this.checker.getSignaturesOfType(this, ts.SignatureKind.Construct); - }; - TypeObject.prototype.getStringIndexType = function () { - return this.checker.getIndexTypeOfType(this, ts.IndexKind.String); - }; - TypeObject.prototype.getNumberIndexType = function () { - return this.checker.getIndexTypeOfType(this, ts.IndexKind.Number); - }; - return TypeObject; - })(); - var SignatureObject = (function () { - function SignatureObject(checker) { - this.checker = checker; - } - SignatureObject.prototype.getDeclaration = function () { - return this.declaration; - }; - SignatureObject.prototype.getTypeParameters = function () { - return this.typeParameters; - }; - SignatureObject.prototype.getParameters = function () { - return this.parameters; - }; - SignatureObject.prototype.getReturnType = function () { - return this.checker.getReturnTypeOfSignature(this); - }; - SignatureObject.prototype.getDocumentationComment = function () { - if (this.documentationComment === undefined) { - this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; - } - return this.documentationComment; - }; - return SignatureObject; - })(); - var SourceFileObject = (function (_super) { - __extends(SourceFileObject, _super); - function SourceFileObject() { - _super.apply(this, arguments); - } - SourceFileObject.prototype.getNamedDeclarations = function () { - if (!this.namedDeclarations) { - var sourceFile = this; - var namedDeclarations = []; - ts.forEachChild(sourceFile, function visit(node) { - switch (node.kind) { - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - var functionDeclaration = node; - if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; - // Check whether this declaration belongs to an "overload group". - if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { - // Overwrite the last declaration if it was an overload - // and this one is an implementation. - if (functionDeclaration.body && !lastDeclaration.body) { - namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; - } - } - else { - namedDeclarations.push(functionDeclaration); - } - ts.forEachChild(node, visit); - } - break; - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.ImportDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.TypeLiteral: - if (node.name) { - namedDeclarations.push(node); - } - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.VariableStatement: - case ts.SyntaxKind.VariableDeclarationList: - case ts.SyntaxKind.ObjectBindingPattern: - case ts.SyntaxKind.ArrayBindingPattern: - case ts.SyntaxKind.ModuleBlock: - ts.forEachChild(node, visit); - break; - case ts.SyntaxKind.Block: - if (ts.isFunctionBlock(node)) { - ts.forEachChild(node, visit); - } - break; - case ts.SyntaxKind.Parameter: - // Only consider properties defined as constructor parameters - if (!(node.flags & ts.NodeFlags.AccessibilityModifier)) { - break; - } - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.BindingElement: - if (ts.isBindingPattern(node.name)) { - ts.forEachChild(node.name, visit); - break; - } - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - namedDeclarations.push(node); - break; - } - }); - this.namedDeclarations = namedDeclarations; - } - return this.namedDeclarations; - }; - return SourceFileObject; - })(NodeObject); - var TextChange = (function () { - function TextChange() { - } - return TextChange; - })(); - ts.TextChange = TextChange; - (function (SymbolDisplayPartKind) { - SymbolDisplayPartKind[SymbolDisplayPartKind["aliasName"] = 0] = "aliasName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["className"] = 1] = "className"; - SymbolDisplayPartKind[SymbolDisplayPartKind["enumName"] = 2] = "enumName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["fieldName"] = 3] = "fieldName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["interfaceName"] = 4] = "interfaceName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["keyword"] = 5] = "keyword"; - SymbolDisplayPartKind[SymbolDisplayPartKind["lineBreak"] = 6] = "lineBreak"; - SymbolDisplayPartKind[SymbolDisplayPartKind["numericLiteral"] = 7] = "numericLiteral"; - SymbolDisplayPartKind[SymbolDisplayPartKind["stringLiteral"] = 8] = "stringLiteral"; - SymbolDisplayPartKind[SymbolDisplayPartKind["localName"] = 9] = "localName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["methodName"] = 10] = "methodName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["moduleName"] = 11] = "moduleName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["operator"] = 12] = "operator"; - SymbolDisplayPartKind[SymbolDisplayPartKind["parameterName"] = 13] = "parameterName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["propertyName"] = 14] = "propertyName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["punctuation"] = 15] = "punctuation"; - SymbolDisplayPartKind[SymbolDisplayPartKind["space"] = 16] = "space"; - SymbolDisplayPartKind[SymbolDisplayPartKind["text"] = 17] = "text"; - SymbolDisplayPartKind[SymbolDisplayPartKind["typeParameterName"] = 18] = "typeParameterName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["enumMemberName"] = 19] = "enumMemberName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["functionName"] = 20] = "functionName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["regularExpressionLiteral"] = 21] = "regularExpressionLiteral"; - })(ts.SymbolDisplayPartKind || (ts.SymbolDisplayPartKind = {})); - var SymbolDisplayPartKind = ts.SymbolDisplayPartKind; - (function (TokenClass) { - TokenClass[TokenClass["Punctuation"] = 0] = "Punctuation"; - TokenClass[TokenClass["Keyword"] = 1] = "Keyword"; - TokenClass[TokenClass["Operator"] = 2] = "Operator"; - TokenClass[TokenClass["Comment"] = 3] = "Comment"; - TokenClass[TokenClass["Whitespace"] = 4] = "Whitespace"; - TokenClass[TokenClass["Identifier"] = 5] = "Identifier"; - TokenClass[TokenClass["NumberLiteral"] = 6] = "NumberLiteral"; - TokenClass[TokenClass["StringLiteral"] = 7] = "StringLiteral"; - TokenClass[TokenClass["RegExpLiteral"] = 8] = "RegExpLiteral"; - })(ts.TokenClass || (ts.TokenClass = {})); - var TokenClass = ts.TokenClass; - // TODO: move these to enums - var ScriptElementKind = (function () { - function ScriptElementKind() { - } - ScriptElementKind.unknown = ""; - // predefined type (void) or keyword (class) - ScriptElementKind.keyword = "keyword"; - // top level script node - ScriptElementKind.scriptElement = "script"; - // module foo {} - ScriptElementKind.moduleElement = "module"; - // class X {} - ScriptElementKind.classElement = "class"; - // interface Y {} - ScriptElementKind.interfaceElement = "interface"; - // type T = ... - ScriptElementKind.typeElement = "type"; - // enum E - ScriptElementKind.enumElement = "enum"; - // Inside module and script only - // var v = .. - ScriptElementKind.variableElement = "var"; - // Inside function - ScriptElementKind.localVariableElement = "local var"; - // Inside module and script only - // function f() { } - ScriptElementKind.functionElement = "function"; - // Inside function - ScriptElementKind.localFunctionElement = "local function"; - // class X { [public|private]* foo() {} } - ScriptElementKind.memberFunctionElement = "method"; - // class X { [public|private]* [get|set] foo:number; } - ScriptElementKind.memberGetAccessorElement = "getter"; - ScriptElementKind.memberSetAccessorElement = "setter"; - // class X { [public|private]* foo:number; } - // interface Y { foo:number; } - ScriptElementKind.memberVariableElement = "property"; - // class X { constructor() { } } - ScriptElementKind.constructorImplementationElement = "constructor"; - // interface Y { ():number; } - ScriptElementKind.callSignatureElement = "call"; - // interface Y { []:number; } - ScriptElementKind.indexSignatureElement = "index"; - // interface Y { new():Y; } - ScriptElementKind.constructSignatureElement = "construct"; - // function foo(*Y*: string) - ScriptElementKind.parameterElement = "parameter"; - ScriptElementKind.typeParameterElement = "type parameter"; - ScriptElementKind.primitiveType = "primitive type"; - ScriptElementKind.label = "label"; - ScriptElementKind.alias = "alias"; - ScriptElementKind.constElement = "const"; - ScriptElementKind.letElement = "let"; - return ScriptElementKind; - })(); - ts.ScriptElementKind = ScriptElementKind; - var ScriptElementKindModifier = (function () { - function ScriptElementKindModifier() { - } - ScriptElementKindModifier.none = ""; - ScriptElementKindModifier.publicMemberModifier = "public"; - ScriptElementKindModifier.privateMemberModifier = "private"; - ScriptElementKindModifier.protectedMemberModifier = "protected"; - ScriptElementKindModifier.exportedModifier = "export"; - ScriptElementKindModifier.ambientModifier = "declare"; - ScriptElementKindModifier.staticModifier = "static"; - return ScriptElementKindModifier; - })(); - ts.ScriptElementKindModifier = ScriptElementKindModifier; - var ClassificationTypeNames = (function () { - function ClassificationTypeNames() { - } - ClassificationTypeNames.comment = "comment"; - ClassificationTypeNames.identifier = "identifier"; - ClassificationTypeNames.keyword = "keyword"; - ClassificationTypeNames.numericLiteral = "number"; - ClassificationTypeNames.operator = "operator"; - ClassificationTypeNames.stringLiteral = "string"; - ClassificationTypeNames.whiteSpace = "whitespace"; - ClassificationTypeNames.text = "text"; - ClassificationTypeNames.punctuation = "punctuation"; - ClassificationTypeNames.className = "class name"; - ClassificationTypeNames.enumName = "enum name"; - ClassificationTypeNames.interfaceName = "interface name"; - ClassificationTypeNames.moduleName = "module name"; - ClassificationTypeNames.typeParameterName = "type parameter name"; - ClassificationTypeNames.typeAlias = "type alias name"; - return ClassificationTypeNames; - })(); - ts.ClassificationTypeNames = ClassificationTypeNames; - var MatchKind; - (function (MatchKind) { - MatchKind[MatchKind["none"] = 0] = "none"; - MatchKind[MatchKind["exact"] = 1] = "exact"; - MatchKind[MatchKind["substring"] = 2] = "substring"; - MatchKind[MatchKind["prefix"] = 3] = "prefix"; - })(MatchKind || (MatchKind = {})); - function displayPartsToString(displayParts) { - if (displayParts) { - return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); - } - return ""; - } - ts.displayPartsToString = displayPartsToString; - function isLocalVariableOrFunction(symbol) { - if (symbol.parent) { - return false; // This is exported symbol - } - return ts.forEach(symbol.declarations, function (declaration) { - // Function expressions are local - if (declaration.kind === ts.SyntaxKind.FunctionExpression) { - return true; - } - if (declaration.kind !== ts.SyntaxKind.VariableDeclaration && declaration.kind !== ts.SyntaxKind.FunctionDeclaration) { - return false; - } - for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { - // Reached source file or module block - if (parent.kind === ts.SyntaxKind.SourceFile || parent.kind === ts.SyntaxKind.ModuleBlock) { - return false; - } - } - // parent is in function block - return true; - }); - } - function getDefaultCompilerOptions() { - // Set "ScriptTarget.Latest" target by default for language service - return { - target: ts.ScriptTarget.Latest, - module: ts.ModuleKind.None, - }; - } - ts.getDefaultCompilerOptions = getDefaultCompilerOptions; - var OperationCanceledException = (function () { - function OperationCanceledException() { - } - return OperationCanceledException; - })(); - ts.OperationCanceledException = OperationCanceledException; - var CancellationTokenObject = (function () { - function CancellationTokenObject(cancellationToken) { - this.cancellationToken = cancellationToken; - } - CancellationTokenObject.prototype.isCancellationRequested = function () { - return this.cancellationToken && this.cancellationToken.isCancellationRequested(); - }; - CancellationTokenObject.prototype.throwIfCancellationRequested = function () { - if (this.isCancellationRequested()) { - throw new OperationCanceledException(); - } - }; - CancellationTokenObject.None = new CancellationTokenObject(null); - return CancellationTokenObject; - })(); - ts.CancellationTokenObject = CancellationTokenObject; - // Cache host information about scrip Should be refreshed - // at each language service public entry point, since we don't know when - // set of scripts handled by the host changes. - var HostCache = (function () { - function HostCache(host) { - this.host = host; - // script id => script index - this.filenameToEntry = {}; - var filenames = host.getScriptFileNames(); - for (var i = 0, n = filenames.length; i < n; i++) { - var filename = filenames[i]; - this.filenameToEntry[ts.normalizeSlashes(filename)] = { - filename: filename, - version: host.getScriptVersion(filename) - }; - } - this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); - } - HostCache.prototype.compilationSettings = function () { - return this._compilationSettings; - }; - HostCache.prototype.getEntry = function (filename) { - filename = ts.normalizeSlashes(filename); - return ts.lookUp(this.filenameToEntry, filename); - }; - HostCache.prototype.contains = function (filename) { - return !!this.getEntry(filename); - }; - HostCache.prototype.getHostfilename = function (filename) { - var hostCacheEntry = this.getEntry(filename); - if (hostCacheEntry) { - return hostCacheEntry.filename; - } - return filename; - }; - HostCache.prototype.getFilenames = function () { - var _this = this; - var fileNames = []; - ts.forEachKey(this.filenameToEntry, function (key) { - if (ts.hasProperty(_this.filenameToEntry, key)) - fileNames.push(key); - }); - return fileNames; - }; - HostCache.prototype.getVersion = function (filename) { - return this.getEntry(filename).version; - }; - HostCache.prototype.getScriptSnapshot = function (filename) { - var file = this.getEntry(filename); - if (!file.sourceText) { - file.sourceText = this.host.getScriptSnapshot(file.filename); - } - return file.sourceText; - }; - HostCache.prototype.getChangeRange = function (filename, lastKnownVersion, oldScriptSnapshot) { - var currentVersion = this.getVersion(filename); - if (lastKnownVersion === currentVersion) { - return ts.unchangedTextChangeRange; // "No changes" - } - var scriptSnapshot = this.getScriptSnapshot(filename); - return scriptSnapshot.getChangeRange(oldScriptSnapshot); - }; - return HostCache; - })(); - var SyntaxTreeCache = (function () { - function SyntaxTreeCache(host) { - this.host = host; - // For our syntactic only features, we also keep a cache of the syntax tree for the - // currently edited file. - this.currentFilename = ""; - this.currentFileVersion = null; - this.currentSourceFile = null; - } - SyntaxTreeCache.prototype.log = function (message) { - if (this.host.log) { - this.host.log(message); - } - }; - SyntaxTreeCache.prototype.initialize = function (filename) { - // ensure that both source file and syntax tree are either initialized or not initialized - var start = new Date().getTime(); - this.hostCache = new HostCache(this.host); - this.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); - var version = this.hostCache.getVersion(filename); - var sourceFile; - if (this.currentFilename !== filename) { - var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); - var start = new Date().getTime(); - sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, ts.ScriptTarget.Latest, version, true); - this.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); - } - else if (this.currentFileVersion !== version) { - var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); - var editRange = this.hostCache.getChangeRange(filename, this.currentFileVersion, this.currentSourceFile.scriptSnapshot); - var start = new Date().getTime(); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); - this.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); - } - if (sourceFile) { - // All done, ensure state is up to date - this.currentFileVersion = version; - this.currentFilename = filename; - this.currentSourceFile = sourceFile; - } - }; - SyntaxTreeCache.prototype.getCurrentSourceFile = function (filename) { - this.initialize(filename); - return this.currentSourceFile; - }; - SyntaxTreeCache.prototype.getCurrentScriptSnapshot = function (filename) { - return this.getCurrentSourceFile(filename).scriptSnapshot; - }; - return SyntaxTreeCache; - })(); - function setSourceFileFields(sourceFile, scriptSnapshot, version) { - sourceFile.version = version; - sourceFile.scriptSnapshot = scriptSnapshot; - } - function createLanguageServiceSourceFile(filename, scriptSnapshot, scriptTarget, version, setNodeParents) { - var sourceFile = ts.createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); - setSourceFileFields(sourceFile, scriptSnapshot, version); - return sourceFile; - } - ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; - ts.disableIncrementalParsing = false; - function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, textChangeRange) { - if (textChangeRange && ts.Debug.shouldAssert(ts.AssertionLevel.Normal)) { - var oldText = sourceFile.scriptSnapshot; - var newText = scriptSnapshot; - ts.Debug.assert((oldText.getLength() - textChangeRange.span.length + textChangeRange.newLength) === newText.getLength()); - if (ts.Debug.shouldAssert(ts.AssertionLevel.VeryAggressive)) { - var oldTextPrefix = oldText.getText(0, textChangeRange.span.start); - var newTextPrefix = newText.getText(0, textChangeRange.span.start); - ts.Debug.assert(oldTextPrefix === newTextPrefix); - var oldTextSuffix = oldText.getText(ts.textSpanEnd(textChangeRange.span), oldText.getLength()); - var newTextSuffix = newText.getText(ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)), newText.getLength()); - ts.Debug.assert(oldTextSuffix === newTextSuffix); - } - } - // If we were given a text change range, and our version or open-ness changed, then - // incrementally parse this file. - if (textChangeRange) { - if (version !== sourceFile.version) { - // Once incremental parsing is ready, then just call into this function. - if (!ts.disableIncrementalParsing) { - var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); - setSourceFileFields(newSourceFile, scriptSnapshot, version); - return newSourceFile; - } - } - } - // Otherwise, just create a new source file. - return createLanguageServiceSourceFile(sourceFile.filename, scriptSnapshot, sourceFile.languageVersion, version, true); - } - ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile; - function createDocumentRegistry() { - var buckets = {}; - function getKeyFromCompilationSettings(settings) { - return "_" + settings.target; // + "|" + settings.propagateEnumConstantoString() - } - function getBucketForCompilationSettings(settings, createIfMissing) { - var key = getKeyFromCompilationSettings(settings); - var bucket = ts.lookUp(buckets, key); - if (!bucket && createIfMissing) { - buckets[key] = bucket = {}; - } - return bucket; - } - function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { - var entries = ts.lookUp(buckets, name); - var sourceFiles = []; - for (var i in entries) { - var entry = entries[i]; - sourceFiles.push({ - name: i, - refCount: entry.refCount, - references: entry.owners.slice(0) - }); - } - sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); - return { - bucket: name, - sourceFiles - }; - }); - return JSON.stringify(bucketInfoArray, null, 2); - } - function acquireDocument(filename, compilationSettings, scriptSnapshot, version) { - var bucket = getBucketForCompilationSettings(compilationSettings, true); - var entry = ts.lookUp(bucket, filename); - if (!entry) { - var sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, compilationSettings.target, version, false); - bucket[filename] = entry = { - sourceFile: sourceFile, - refCount: 0, - owners: [] - }; - } - entry.refCount++; - return entry.sourceFile; - } - function updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange) { - var bucket = getBucketForCompilationSettings(compilationSettings, false); - ts.Debug.assert(bucket !== undefined); - var entry = ts.lookUp(bucket, filename); - ts.Debug.assert(entry !== undefined); - entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, textChangeRange); - return entry.sourceFile; - } - function releaseDocument(filename, compilationSettings) { - var bucket = getBucketForCompilationSettings(compilationSettings, false); - ts.Debug.assert(bucket !== undefined); - var entry = ts.lookUp(bucket, filename); - entry.refCount--; - ts.Debug.assert(entry.refCount >= 0); - if (entry.refCount === 0) { - delete bucket[filename]; - } - } - return { - acquireDocument, - updateDocument, - releaseDocument, - reportStats - }; - } - ts.createDocumentRegistry = createDocumentRegistry; - function preProcessFile(sourceText, readImportFiles = true) { - var referencedFiles = []; - var importedFiles = []; - var isNoDefaultLib = false; - function processTripleSlashDirectives() { - var commentRanges = ts.getLeadingCommentRanges(sourceText, 0); - ts.forEach(commentRanges, function (commentRange) { - var comment = sourceText.substring(commentRange.pos, commentRange.end); - var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, commentRange); - if (referencePathMatchResult) { - isNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var fileReference = referencePathMatchResult.fileReference; - if (fileReference) { - referencedFiles.push(fileReference); - } - } - }); - } - function processImport() { - scanner.setText(sourceText); - var token = scanner.scan(); - while (token !== ts.SyntaxKind.EndOfFileToken) { - if (token === ts.SyntaxKind.ImportKeyword) { - token = scanner.scan(); - if (token === ts.SyntaxKind.Identifier) { - token = scanner.scan(); - if (token === ts.SyntaxKind.EqualsToken) { - token = scanner.scan(); - if (token === ts.SyntaxKind.RequireKeyword) { - token = scanner.scan(); - if (token === ts.SyntaxKind.OpenParenToken) { - token = scanner.scan(); - if (token === ts.SyntaxKind.StringLiteral) { - var importPath = scanner.getTokenValue(); - var pos = scanner.getTokenPos(); - importedFiles.push({ - filename: importPath, - pos: pos, - end: pos + importPath.length - }); - } - } - } - } - } - } - token = scanner.scan(); - } - scanner.setText(undefined); - } - if (readImportFiles) { - processImport(); - } - processTripleSlashDirectives(); - return { referencedFiles, importedFiles, isLibFile: isNoDefaultLib }; - } - ts.preProcessFile = preProcessFile; - /// Helpers - function getTargetLabel(referenceNode, labelName) { - while (referenceNode) { - if (referenceNode.kind === ts.SyntaxKind.LabeledStatement && referenceNode.label.text === labelName) { - return referenceNode.label; - } - referenceNode = referenceNode.parent; - } - return undefined; - } - function isJumpStatementTarget(node) { - return node.kind === ts.SyntaxKind.Identifier && (node.parent.kind === ts.SyntaxKind.BreakStatement || node.parent.kind === ts.SyntaxKind.ContinueStatement) && node.parent.label === node; - } - function isLabelOfLabeledStatement(node) { - return node.kind === ts.SyntaxKind.Identifier && node.parent.kind === ts.SyntaxKind.LabeledStatement && node.parent.label === node; - } - /** - * Whether or not a 'node' is preceded by a label of the given string. - * Note: 'node' cannot be a SourceFile. - */ - function isLabeledBy(node, labelName) { - for (var owner = node.parent; owner.kind === ts.SyntaxKind.LabeledStatement; owner = owner.parent) { - if (owner.label.text === labelName) { - return true; - } - } - return false; - } - function isLabelName(node) { - return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); - } - function isRightSideOfQualifiedName(node) { - return node.parent.kind === ts.SyntaxKind.QualifiedName && node.parent.right === node; - } - function isRightSideOfPropertyAccess(node) { - return node && node.parent && node.parent.kind === ts.SyntaxKind.PropertyAccessExpression && node.parent.name === node; - } - function isCallExpressionTarget(node) { - if (isRightSideOfPropertyAccess(node)) { - node = node.parent; - } - return node && node.parent && node.parent.kind === ts.SyntaxKind.CallExpression && node.parent.expression === node; - } - function isNewExpressionTarget(node) { - if (isRightSideOfPropertyAccess(node)) { - node = node.parent; - } - return node && node.parent && node.parent.kind === ts.SyntaxKind.NewExpression && node.parent.expression === node; - } - function isNameOfModuleDeclaration(node) { - return node.parent.kind === ts.SyntaxKind.ModuleDeclaration && node.parent.name === node; - } - function isNameOfFunctionDeclaration(node) { - return node.kind === ts.SyntaxKind.Identifier && ts.isAnyFunction(node.parent) && node.parent.name === node; - } - /** Returns true if node is a name of an object literal property, e.g. "a" in x = { "a": 1 } */ - function isNameOfPropertyAssignment(node) { - return (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.StringLiteral || node.kind === ts.SyntaxKind.NumericLiteral) && (node.parent.kind === ts.SyntaxKind.PropertyAssignment || node.parent.kind === ts.SyntaxKind.ShorthandPropertyAssignment) && node.parent.name === node; - } - function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { - if (node.kind === ts.SyntaxKind.StringLiteral || node.kind === ts.SyntaxKind.NumericLiteral) { - switch (node.parent.kind) { - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.ModuleDeclaration: - return node.parent.name === node; - case ts.SyntaxKind.ElementAccessExpression: - return node.parent.argumentExpression === node; - } - } - return false; - } - function isNameOfExternalModuleImportOrDeclaration(node) { - if (node.kind === ts.SyntaxKind.StringLiteral) { - return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportDeclaration(node.parent.parent) && ts.getExternalModuleImportDeclarationExpression(node.parent.parent) === node); - } - return false; - } - /** Returns true if the position is within a comment */ - function isInsideComment(sourceFile, token, position) { - // The position has to be: 1. in the leading trivia (before token.getStart()), and 2. within a comment - return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); - function isInsideCommentRange(comments) { - return ts.forEach(comments, function (comment) { - // either we are 1. completely inside the comment, or 2. at the end of the comment - if (comment.pos < position && position < comment.end) { - return true; - } - else if (position === comment.end) { - var text = sourceFile.text; - var width = comment.end - comment.pos; - // is single line comment or just /* - if (width <= 2 || text.charCodeAt(comment.pos + 1) === ts.CharacterCodes.slash) { - return true; - } - else { - // is unterminated multi-line comment - return !(text.charCodeAt(comment.end - 1) === ts.CharacterCodes.slash && text.charCodeAt(comment.end - 2) === ts.CharacterCodes.asterisk); - } - } - return false; - }); - } - } - // A cache of completion entries for keywords, these do not change between sessions - var keywordCompletions = []; - for (var i = ts.SyntaxKind.FirstKeyword; i <= ts.SyntaxKind.LastKeyword; i++) { - keywordCompletions.push({ - name: ts.tokenToString(i), - kind: ScriptElementKind.keyword, - kindModifiers: ScriptElementKindModifier.none - }); - } - function createLanguageService(host, documentRegistry) { - var syntaxTreeCache = new SyntaxTreeCache(host); - var ruleProvider; - var hostCache; // A cache of all the information about the files on the host side. - var program; - // this checker is used to answer all LS questions except errors - var typeInfoResolver; - var useCaseSensitivefilenames = false; - var sourceFilesByName = {}; - var documentRegistry = documentRegistry; - var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); - var activeCompletionSession; // The current active completion session, used to get the completion entry details - // Check if the localized messages json is set, otherwise query the host for it - if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { - ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); - } - function log(message) { - if (host.log) { - host.log(message); - } - } - function getCanonicalFileName(filename) { - return useCaseSensitivefilenames ? filename : filename.toLowerCase(); - } - function getSourceFile(filename) { - return ts.lookUp(sourceFilesByName, getCanonicalFileName(filename)); - } - function getDiagnosticsProducingTypeChecker() { - return program.getTypeChecker(true); - } - function getRuleProvider(options) { - // Ensure rules are initialized and up to date wrt to formatting options - if (!ruleProvider) { - ruleProvider = new ts.formatting.RulesProvider(); - } - ruleProvider.ensureUpToDate(options); - return ruleProvider; - } - function sourceFileUpToDate(sourceFile) { - return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename); - } - function programUpToDate() { - // If we haven't create a program yet, then it is not up-to-date - if (!program) { - return false; - } - // If number of files in the program do not match, it is not up-to-date - var hostFilenames = hostCache.getFilenames(); - if (program.getSourceFiles().length !== hostFilenames.length) { - return false; - } - for (var i = 0, n = hostFilenames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(hostFilenames[i]))) { - return false; - } - } - // If the compilation settings do no match, then the program is not up-to-date - return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); - } - function synchronizeHostData() { - // Reset the cache at start of every refresh - hostCache = new HostCache(host); - // If the program is already up-to-date, we can reuse it - if (programUpToDate()) { - return; - } - var compilationSettings = hostCache.compilationSettings(); - // Now, remove any files from the compiler that are no longer in the host. - var oldProgram = program; - if (oldProgram) { - var oldSettings = program.getCompilerOptions(); - // If the language version changed, then that affects what types of things we parse. So - // we have to dump all syntax trees. - // TODO: handle propagateEnumConstants - // TODO: is module still needed - var settingsChangeAffectsSyntax = oldSettings.target !== compilationSettings.target || oldSettings.module !== compilationSettings.module; - var changesInCompilationSettingsAffectSyntax = oldSettings && compilationSettings && !ts.compareDataObjects(oldSettings, compilationSettings) && settingsChangeAffectsSyntax; - var oldSourceFiles = program.getSourceFiles(); - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - cancellationToken.throwIfCancellationRequested(); - var filename = oldSourceFiles[i].filename; - if (!hostCache.contains(filename) || changesInCompilationSettingsAffectSyntax) { - documentRegistry.releaseDocument(filename, oldSettings); - delete sourceFilesByName[getCanonicalFileName(filename)]; - } - } - } - // Now, for every file the host knows about, either add the file (if the compiler - // doesn't know about it.). Or notify the compiler about any changes (if it does - // know about it.) - var hostfilenames = hostCache.getFilenames(); - for (var i = 0, n = hostfilenames.length; i < n; i++) { - var filename = hostfilenames[i]; - var version = hostCache.getVersion(filename); - var scriptSnapshot = hostCache.getScriptSnapshot(filename); - var sourceFile = getSourceFile(filename); - if (sourceFile) { - // - // If the sourceFile is the same, assume no update - // - if (sourceFileUpToDate(sourceFile)) { - continue; - } - var textChangeRange = null; - textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); - sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange); - } - else { - sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version); - } - // Remember the new sourceFile - sourceFilesByName[getCanonicalFileName(filename)] = sourceFile; - } - // Now create a new compiler - program = ts.createProgram(hostfilenames, compilationSettings, { - getSourceFile: getSourceFile, - getCancellationToken: function () { return cancellationToken; }, - getCanonicalFileName: function (filename) { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); }, - useCaseSensitiveFileNames: function () { return useCaseSensitivefilenames; }, - getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, - getDefaultLibFilename: ts.getDefaultLibraryFilename, - writeFile: function (filename, data, writeByteOrderMark) { - }, - getCurrentDirectory: function () { return host.getCurrentDirectory(); } - }); - typeInfoResolver = program.getTypeChecker(false); - } - /** - * Clean up any semantic caches that are not needed. - * The host can call this method if it wants to jettison unused memory. - * We will just dump the typeChecker and recreate a new one. this should have the effect of destroying all the semantic caches. - */ - function cleanupSemanticCache() { - if (program) { - typeInfoResolver = program.getTypeChecker(false); - } - } - function dispose() { - if (program) { - ts.forEach(program.getSourceFiles(), function (f) { - documentRegistry.releaseDocument(f.filename, program.getCompilerOptions()); - }); - } - } - /// Diagnostics - function getSyntacticDiagnostics(filename) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - return program.getDiagnostics(getSourceFile(filename)); - } - /** - * getSemanticDiagnostiscs return array of Diagnostics. If '-d' is not enabled, only report semantic errors - * If '-d' enabled, report both semantic and emitter errors - */ - function getSemanticDiagnostics(filename) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var compilerOptions = program.getCompilerOptions(); - var checker = getDiagnosticsProducingTypeChecker(); - var targetSourceFile = getSourceFile(filename); - // Only perform the action per file regardless of '-out' flag as LanguageServiceHost is expected to call this function per file. - // Therefore only get diagnostics for given file. - var allDiagnostics = checker.getDiagnostics(targetSourceFile); - if (compilerOptions.declaration) { - // If '-d' is enabled, check for emitter error. One example of emitter error is export class implements non-export interface - allDiagnostics = allDiagnostics.concat(program.getDeclarationDiagnostics(targetSourceFile)); - } - return allDiagnostics; - } - function getCompilerOptionsDiagnostics() { - synchronizeHostData(); - return program.getGlobalDiagnostics(); - } - /// Completion - function getValidCompletionEntryDisplayName(symbol, target) { - var displayName = symbol.getName(); - if (displayName && displayName.length > 0) { - var firstCharCode = displayName.charCodeAt(0); - // First check of the displayName is not external module; if it is an external module, it is not valid entry - if ((symbol.flags & ts.SymbolFlags.Namespace) && (firstCharCode === ts.CharacterCodes.singleQuote || firstCharCode === ts.CharacterCodes.doubleQuote)) { - // If the symbol is external module, don't show it in the completion list - // (i.e declare module "http" { var x; } | // <= request completion here, "http" should not be there) - return undefined; - } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === ts.CharacterCodes.singleQuote || firstCharCode === ts.CharacterCodes.doubleQuote)) { - // If the user entered name for the symbol was quoted, removing the quotes is not enough, as the name could be an - // invalid identifier name. We need to check if whatever was inside the quotes is actually a valid identifier name. - displayName = displayName.substring(1, displayName.length - 1); - } - var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); - for (var i = 1, n = displayName.length; isValid && i < n; i++) { - isValid = ts.isIdentifierPart(displayName.charCodeAt(i), target); - } - if (isValid) { - return ts.unescapeIdentifier(displayName); - } - } - return undefined; - } - function createCompletionEntry(symbol, typeChecker, location) { - // Try to get a valid display name for this symbol, if we could not find one, then ignore it. - // We would like to only show things that can be added after a dot, so for instance numeric properties can - // not be accessed with a dot (a.1 <- invalid) - var displayName = getValidCompletionEntryDisplayName(symbol, program.getCompilerOptions().target); - if (!displayName) { - return undefined; - } - // TODO(drosen): Right now we just permit *all* semantic meanings when calling 'getSymbolKind' - // which is permissible given that it is backwards compatible; but really we should consider - // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. - // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. - return { - name: displayName, - kind: getSymbolKind(symbol, typeChecker, location), - kindModifiers: getSymbolModifiers(symbol) - }; - } - function getCompletionsAtPosition(filename, position) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var syntacticStart = new Date().getTime(); - var sourceFile = getSourceFile(filename); - var start = new Date().getTime(); - var currentToken = ts.getTokenAtPosition(sourceFile, position); - log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); - var start = new Date().getTime(); - // Completion not allowed inside comments, bail out if this is the case - var insideComment = isInsideComment(sourceFile, currentToken, position); - log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); - if (insideComment) { - log("Returning an empty list because completion was inside a comment."); - return undefined; - } - // The decision to provide completion depends on the previous token, so find it - // Note: previousToken can be undefined if we are the beginning of the file - var start = new Date().getTime(); - var previousToken = ts.findPrecedingToken(position, sourceFile); - log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); - // The caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS| - // Skip this partial identifier to the previous token - if (previousToken && position <= previousToken.end && previousToken.kind === ts.SyntaxKind.Identifier) { - var start = new Date().getTime(); - previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); - log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); - } - // Check if this is a valid completion location - if (previousToken && isCompletionListBlocker(previousToken)) { - log("Returning an empty list because completion was requested in an invalid position."); - return undefined; - } - // Find the node where completion is requested on, in the case of a completion after a dot, it is the member access expression - // other wise, it is a request for all visible symbols in the scope, and the node is the current location - var node; - var isRightOfDot; - if (previousToken && previousToken.kind === ts.SyntaxKind.DotToken && previousToken.parent.kind === ts.SyntaxKind.PropertyAccessExpression) { - node = previousToken.parent.expression; - isRightOfDot = true; - } - else if (previousToken && previousToken.kind === ts.SyntaxKind.DotToken && previousToken.parent.kind === ts.SyntaxKind.QualifiedName) { - node = previousToken.parent.left; - isRightOfDot = true; - } - else { - node = currentToken; - isRightOfDot = false; - } - // Clear the current activeCompletionSession for this session - activeCompletionSession = { - filename: filename, - position: position, - entries: [], - symbols: {}, - typeChecker: typeInfoResolver - }; - log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); - var location = ts.getTouchingPropertyName(sourceFile, position); - // Populate the completion list - var semanticStart = new Date().getTime(); - if (isRightOfDot) { - // Right of dot member completion list - var symbols = []; - var isMemberCompletion = true; - if (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.QualifiedName || node.kind === ts.SyntaxKind.PropertyAccessExpression) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - // This is an alias, follow what it aliases - if (symbol && symbol.flags & ts.SymbolFlags.Import) { - symbol = typeInfoResolver.getAliasedSymbol(symbol); - } - if (symbol && symbol.flags & ts.SymbolFlags.HasExports) { - // Extract module or enum members - ts.forEachValue(symbol.exports, function (symbol) { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { - symbols.push(symbol); - } - }); - } - } - var type = typeInfoResolver.getTypeAtLocation(node); - if (type) { - // Filter private properties - ts.forEach(type.getApparentProperties(), function (symbol) { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { - symbols.push(symbol); - } - }); - } - getCompletionEntriesFromSymbols(symbols, activeCompletionSession); - } - else { - var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(previousToken); - if (containingObjectLiteral) { - // Object literal expression, look up possible property names from contextual type - isMemberCompletion = true; - var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); - if (!contextualType) { - return undefined; - } - var contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); - if (contextualTypeMembers && contextualTypeMembers.length > 0) { - // Add filtered items to the completion list - var filteredMembers = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); - getCompletionEntriesFromSymbols(filteredMembers, activeCompletionSession); - } - } - else { - // Get scope members - isMemberCompletion = false; - /// TODO filter meaning based on the current context - var symbolMeanings = ts.SymbolFlags.Type | ts.SymbolFlags.Value | ts.SymbolFlags.Namespace | ts.SymbolFlags.Import; - var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); - getCompletionEntriesFromSymbols(symbols, activeCompletionSession); - } - } - // Add keywords if this is not a member completion list - if (!isMemberCompletion) { - Array.prototype.push.apply(activeCompletionSession.entries, keywordCompletions); - } - log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); - return { - isMemberCompletion, - entries: activeCompletionSession.entries - }; - function getCompletionEntriesFromSymbols(symbols, session) { - var start = new Date().getTime(); - ts.forEach(symbols, function (symbol) { - var entry = createCompletionEntry(symbol, session.typeChecker, location); - if (entry) { - var id = ts.escapeIdentifier(entry.name); - if (!ts.lookUp(session.symbols, id)) { - session.entries.push(entry); - session.symbols[id] = symbol; - } - } - }); - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); - } - function isCompletionListBlocker(previousToken) { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); - return result; - } - function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === ts.SyntaxKind.StringLiteral || previousToken.kind === ts.SyntaxKind.RegularExpressionLiteral || ts.isTemplateLiteralKind(previousToken.kind)) { - // The position has to be either: 1. entirely within the token text, or - // 2. at the end position of an unterminated token. - var start = previousToken.getStart(); - var end = previousToken.getEnd(); - if (start < position && position < end) { - return true; - } - else if (position === end) { - return !!previousToken.isUnterminated; - } - } - return false; - } - function getContainingObjectLiteralApplicableForCompletion(previousToken) { - // The locations in an object literal expression that are applicable for completion are property name definition locations. - if (previousToken) { - var parent = previousToken.parent; - switch (previousToken.kind) { - case ts.SyntaxKind.OpenBraceToken: - case ts.SyntaxKind.CommaToken: - if (parent && parent.kind === ts.SyntaxKind.ObjectLiteralExpression) { - return parent; - } - break; - } - } - return undefined; - } - function isFunction(kind) { - switch (kind) { - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.IndexSignature: - return true; - } - return false; - } - function isIdentifierDefinitionLocation(previousToken) { - if (previousToken) { - var containingNodeKind = previousToken.parent.kind; - switch (previousToken.kind) { - case ts.SyntaxKind.CommaToken: - return containingNodeKind === ts.SyntaxKind.VariableDeclaration || containingNodeKind === ts.SyntaxKind.VariableDeclarationList || containingNodeKind === ts.SyntaxKind.VariableStatement || containingNodeKind === ts.SyntaxKind.EnumDeclaration || isFunction(containingNodeKind); - case ts.SyntaxKind.OpenParenToken: - return containingNodeKind === ts.SyntaxKind.CatchClause || isFunction(containingNodeKind); - case ts.SyntaxKind.OpenBraceToken: - return containingNodeKind === ts.SyntaxKind.EnumDeclaration || containingNodeKind === ts.SyntaxKind.InterfaceDeclaration; - case ts.SyntaxKind.SemicolonToken: - return containingNodeKind === ts.SyntaxKind.PropertySignature && previousToken.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration; - case ts.SyntaxKind.PublicKeyword: - case ts.SyntaxKind.PrivateKeyword: - case ts.SyntaxKind.StaticKeyword: - case ts.SyntaxKind.DotDotDotToken: - return containingNodeKind === ts.SyntaxKind.Parameter; - case ts.SyntaxKind.ClassKeyword: - case ts.SyntaxKind.ModuleKeyword: - case ts.SyntaxKind.EnumKeyword: - case ts.SyntaxKind.InterfaceKeyword: - case ts.SyntaxKind.FunctionKeyword: - case ts.SyntaxKind.VarKeyword: - case ts.SyntaxKind.GetKeyword: - case ts.SyntaxKind.SetKeyword: - case ts.SyntaxKind.ImportKeyword: - return true; - } - switch (previousToken.getText()) { - case "class": - case "interface": - case "enum": - case "module": - case "function": - case "var": - // TODO: add let and const - return true; - } - } - return false; - } - function isRightOfIllegalDot(previousToken) { - if (previousToken && previousToken.kind === ts.SyntaxKind.NumericLiteral) { - var text = previousToken.getFullText(); - return text.charAt(text.length - 1) === "."; - } - return false; - } - function filterContextualMembersList(contextualMemberSymbols, existingMembers) { - if (!existingMembers || existingMembers.length === 0) { - return contextualMemberSymbols; - } - var existingMemberNames = {}; - ts.forEach(existingMembers, function (m) { - if (m.kind !== ts.SyntaxKind.PropertyAssignment && m.kind !== ts.SyntaxKind.ShorthandPropertyAssignment) { - // Ignore omitted expressions for missing members in the object literal - return; - } - if (m.getStart() <= position && position <= m.getEnd()) { - // If this is the current item we are editing right now, do not filter it out - return; - } - // TODO(jfreeman): Account for computed property name - existingMemberNames[m.name.text] = true; - }); - var filteredMembers = []; - ts.forEach(contextualMemberSymbols, function (s) { - if (!existingMemberNames[s.name]) { - filteredMembers.push(s); - } - }); - return filteredMembers; - } - } - function getCompletionEntryDetails(filename, position, entryName) { - // Note: No need to call synchronizeHostData, as we have captured all the data we need - // in the getCompletionsAtPosition earlier - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); - var session = activeCompletionSession; - // Ensure that the current active completion session is still valid for this request - if (!session || session.filename !== filename || session.position !== position) { - return undefined; - } - var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); - if (symbol) { - var location = ts.getTouchingPropertyName(sourceFile, position); - var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); - // TODO(drosen): Right now we just permit *all* semantic meanings when calling 'getSymbolKind' - // which is permissible given that it is backwards compatible; but really we should consider - // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. - // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. - ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getSourceFile(filename), location, session.typeChecker, location, 7 /* All */); - return { - name: entryName, - kind: displayPartsDocumentationsAndSymbolKind.symbolKind, - kindModifiers: completionEntry.kindModifiers, - displayParts: displayPartsDocumentationsAndSymbolKind.displayParts, - documentation: displayPartsDocumentationsAndSymbolKind.documentation - }; - } - else { - // No symbol, it is a keyword - return { - name: entryName, - kind: ScriptElementKind.keyword, - kindModifiers: ScriptElementKindModifier.none, - displayParts: [ts.displayPart(entryName, 5 /* keyword */)], - documentation: undefined - }; - } - } - function getContainerNode(node) { - while (true) { - node = node.parent; - if (!node) { - return undefined; - } - switch (node.kind) { - case ts.SyntaxKind.SourceFile: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.ModuleDeclaration: - return node; - } - } - } - // TODO(drosen): use contextual SemanticMeaning. - function getSymbolKind(symbol, typeResolver, location) { - var flags = symbol.getFlags(); - if (flags & ts.SymbolFlags.Class) - return ScriptElementKind.classElement; - if (flags & ts.SymbolFlags.Enum) - return ScriptElementKind.enumElement; - if (flags & ts.SymbolFlags.TypeAlias) - return ScriptElementKind.typeElement; - if (flags & ts.SymbolFlags.Interface) - return ScriptElementKind.interfaceElement; - if (flags & ts.SymbolFlags.TypeParameter) - return ScriptElementKind.typeParameterElement; - var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); - if (result === ScriptElementKind.unknown) { - if (flags & ts.SymbolFlags.TypeParameter) - return ScriptElementKind.typeParameterElement; - if (flags & ts.SymbolFlags.EnumMember) - return ScriptElementKind.variableElement; - if (flags & ts.SymbolFlags.Import) - return ScriptElementKind.alias; - if (flags & ts.SymbolFlags.Module) - return ScriptElementKind.moduleElement; - } - return result; - } - function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location) { - if (typeResolver.isUndefinedSymbol(symbol)) { - return ScriptElementKind.variableElement; - } - if (typeResolver.isArgumentsSymbol(symbol)) { - return ScriptElementKind.localVariableElement; - } - if (flags & ts.SymbolFlags.Variable) { - if (ts.isFirstDeclarationOfSymbolParameter(symbol)) { - return ScriptElementKind.parameterElement; - } - else if (symbol.valueDeclaration && ts.isConst(symbol.valueDeclaration)) { - return ScriptElementKind.constElement; - } - else if (ts.forEach(symbol.declarations, ts.isLet)) { - return ScriptElementKind.letElement; - } - return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; - } - if (flags & ts.SymbolFlags.Function) - return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; - if (flags & ts.SymbolFlags.GetAccessor) - return ScriptElementKind.memberGetAccessorElement; - if (flags & ts.SymbolFlags.SetAccessor) - return ScriptElementKind.memberSetAccessorElement; - if (flags & ts.SymbolFlags.Method) - return ScriptElementKind.memberFunctionElement; - if (flags & ts.SymbolFlags.Constructor) - return ScriptElementKind.constructorImplementationElement; - if (flags & ts.SymbolFlags.Property) { - if (flags & ts.SymbolFlags.UnionProperty) { - // If union property is result of union of non method (property/accessors/variables), it is labeled as property - var unionPropertyKind = ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { - var rootSymbolFlags = rootSymbol.getFlags(); - if (rootSymbolFlags & (ts.SymbolFlags.PropertyOrAccessor | ts.SymbolFlags.Variable)) { - return ScriptElementKind.memberVariableElement; - } - ts.Debug.assert(!!(rootSymbolFlags & ts.SymbolFlags.Method)); - }); - if (!unionPropertyKind) { - // If this was union of all methods, - //make sure it has call signatures before we can label it as method - var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); - if (typeOfUnionProperty.getCallSignatures().length) { - return ScriptElementKind.memberFunctionElement; - } - return ScriptElementKind.memberVariableElement; - } - return unionPropertyKind; - } - return ScriptElementKind.memberVariableElement; - } - return ScriptElementKind.unknown; - } - function getTypeKind(type) { - var flags = type.getFlags(); - if (flags & ts.TypeFlags.Enum) - return ScriptElementKind.enumElement; - if (flags & ts.TypeFlags.Class) - return ScriptElementKind.classElement; - if (flags & ts.TypeFlags.Interface) - return ScriptElementKind.interfaceElement; - if (flags & ts.TypeFlags.TypeParameter) - return ScriptElementKind.typeParameterElement; - if (flags & ts.TypeFlags.Intrinsic) - return ScriptElementKind.primitiveType; - if (flags & ts.TypeFlags.StringLiteral) - return ScriptElementKind.primitiveType; - return ScriptElementKind.unknown; - } - function getNodeKind(node) { - switch (node.kind) { - case ts.SyntaxKind.ModuleDeclaration: return ScriptElementKind.moduleElement; - case ts.SyntaxKind.ClassDeclaration: return ScriptElementKind.classElement; - case ts.SyntaxKind.InterfaceDeclaration: return ScriptElementKind.interfaceElement; - case ts.SyntaxKind.TypeAliasDeclaration: return ScriptElementKind.typeElement; - case ts.SyntaxKind.EnumDeclaration: return ScriptElementKind.enumElement; - case ts.SyntaxKind.VariableDeclaration: - return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; - case ts.SyntaxKind.FunctionDeclaration: return ScriptElementKind.functionElement; - case ts.SyntaxKind.GetAccessor: return ScriptElementKind.memberGetAccessorElement; - case ts.SyntaxKind.SetAccessor: return ScriptElementKind.memberSetAccessorElement; - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - return ScriptElementKind.memberFunctionElement; - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - return ScriptElementKind.memberVariableElement; - case ts.SyntaxKind.IndexSignature: return ScriptElementKind.indexSignatureElement; - case ts.SyntaxKind.ConstructSignature: return ScriptElementKind.constructSignatureElement; - case ts.SyntaxKind.CallSignature: return ScriptElementKind.callSignatureElement; - case ts.SyntaxKind.Constructor: return ScriptElementKind.constructorImplementationElement; - case ts.SyntaxKind.TypeParameter: return ScriptElementKind.typeParameterElement; - case ts.SyntaxKind.EnumMember: return ScriptElementKind.variableElement; - case ts.SyntaxKind.Parameter: return (node.flags & ts.NodeFlags.AccessibilityModifier) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; - } - return ScriptElementKind.unknown; - } - function getSymbolModifiers(symbol) { - return symbol && symbol.declarations && symbol.declarations.length > 0 ? ts.getNodeModifiers(symbol.declarations[0]) : ScriptElementKindModifier.none; - } - function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, - // TODO(drosen): Currently completion entry details passes the SemanticMeaning.All instead of using semanticMeaning of location - semanticMeaning = getMeaningFromLocation(location)) { - var displayParts = []; - var documentation; - var symbolFlags = symbol.flags; - var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); - var hasAddedSymbolInfo; - // Class at constructor site need to be shown as constructor apart from property,method, vars - if (symbolKind !== ScriptElementKind.unknown || symbolFlags & ts.SymbolFlags.Class || symbolFlags & ts.SymbolFlags.Import) { - // If it is accessor they are allowed only if location is at name of the accessor - if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { - symbolKind = ScriptElementKind.memberVariableElement; - } - var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); - if (type) { - if (location.parent && location.parent.kind === ts.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.getFullWidth() === 0)) { - location = location.parent; - } - } - // try get the call/construct signature from the type if it matches - var callExpression; - if (location.kind === ts.SyntaxKind.CallExpression || location.kind === ts.SyntaxKind.NewExpression) { - callExpression = location; - } - else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { - callExpression = location.parent; - } - if (callExpression) { - var candidateSignatures = []; - signature = typeResolver.getResolvedSignature(callExpression, candidateSignatures); - if (!signature && candidateSignatures.length) { - // Use the first candidate: - signature = candidateSignatures[0]; - } - var useConstructSignatures = callExpression.kind === ts.SyntaxKind.NewExpression || callExpression.expression.kind === ts.SyntaxKind.SuperKeyword; - var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); - if (!ts.contains(allSignatures, signature.target || signature)) { - // Get the first signature if there - signature = allSignatures.length ? allSignatures[0] : undefined; - } - if (signature) { - if (useConstructSignatures && (symbolFlags & ts.SymbolFlags.Class)) { - // Constructor - symbolKind = ScriptElementKind.constructorImplementationElement; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else if (symbolFlags & ts.SymbolFlags.Import) { - symbolKind = ScriptElementKind.alias; - displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); - displayParts.push(ts.textPart(symbolKind)); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); - displayParts.push(ts.spacePart()); - if (useConstructSignatures) { - displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); - displayParts.push(ts.spacePart()); - } - addFullSymbolName(symbol); - } - else { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - } - switch (symbolKind) { - case ScriptElementKind.memberVariableElement: - case ScriptElementKind.variableElement: - case ScriptElementKind.constElement: - case ScriptElementKind.letElement: - case ScriptElementKind.parameterElement: - case ScriptElementKind.localVariableElement: - // If it is call or construct signature of lambda's write type name - displayParts.push(ts.punctuationPart(ts.SyntaxKind.ColonToken)); - displayParts.push(ts.spacePart()); - if (useConstructSignatures) { - displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); - displayParts.push(ts.spacePart()); - } - if (!(type.flags & ts.TypeFlags.Anonymous)) { - displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, ts.SymbolFormatFlags.WriteTypeParametersOrArguments)); - } - addSignatureDisplayParts(signature, allSignatures, ts.TypeFormatFlags.WriteArrowStyleSignature); - break; - default: - // Just signature - addSignatureDisplayParts(signature, allSignatures); - } - hasAddedSymbolInfo = true; - } - } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & ts.SymbolFlags.Accessor)) || (location.kind === ts.SyntaxKind.ConstructorKeyword && location.parent.kind === ts.SyntaxKind.Constructor)) { - // get the signature from the declaration and write it - var signature; - var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === ts.SyntaxKind.Constructor ? type.getConstructSignatures() : type.getCallSignatures(); - if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { - signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); - } - else { - signature = allSignatures[0]; - } - if (functionDeclaration.kind === ts.SyntaxKind.Constructor) { - // show (constructor) Type(...) signature - symbolKind = ScriptElementKind.constructorImplementationElement; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else { - // (function/method) symbol(..signature) - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === ts.SyntaxKind.CallSignature && !(type.symbol.flags & ts.SymbolFlags.TypeLiteral || type.symbol.flags & ts.SymbolFlags.ObjectLiteral) ? type.symbol : symbol, symbolKind); - } - addSignatureDisplayParts(signature, allSignatures); - hasAddedSymbolInfo = true; - } - } - } - if (symbolFlags & ts.SymbolFlags.Class && !hasAddedSymbolInfo) { - displayParts.push(ts.keywordPart(ts.SyntaxKind.ClassKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if ((symbolFlags & ts.SymbolFlags.Interface) && (semanticMeaning & 2 /* Type */)) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(ts.SyntaxKind.InterfaceKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if (symbolFlags & ts.SymbolFlags.TypeAlias) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(ts.SyntaxKind.TypeKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); - displayParts.push(ts.spacePart()); - displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, typeResolver.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration)); - } - if (symbolFlags & ts.SymbolFlags.Enum) { - addNewLineIfDisplayPartsExist(); - if (ts.forEach(symbol.declarations, ts.isConstEnumDeclaration)) { - displayParts.push(ts.keywordPart(ts.SyntaxKind.ConstKeyword)); - displayParts.push(ts.spacePart()); - } - displayParts.push(ts.keywordPart(ts.SyntaxKind.EnumKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - if (symbolFlags & ts.SymbolFlags.Module) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(ts.SyntaxKind.ModuleKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - if ((symbolFlags & ts.SymbolFlags.TypeParameter) && (semanticMeaning & 2 /* Type */)) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); - displayParts.push(ts.textPart("type parameter")); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(ts.SyntaxKind.InKeyword)); - displayParts.push(ts.spacePart()); - if (symbol.parent) { - // Class/Interface type parameter - addFullSymbolName(symbol.parent, enclosingDeclaration); - writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); - } - else { - // Method/function type parameter - var signatureDeclaration = ts.getDeclarationOfKind(symbol, ts.SyntaxKind.TypeParameter).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); - if (signatureDeclaration.kind === ts.SyntaxKind.ConstructSignature) { - displayParts.push(ts.keywordPart(ts.SyntaxKind.NewKeyword)); - displayParts.push(ts.spacePart()); - } - else if (signatureDeclaration.kind !== ts.SyntaxKind.CallSignature && signatureDeclaration.name) { - addFullSymbolName(signatureDeclaration.symbol); - } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, ts.TypeFormatFlags.WriteTypeArgumentsOfSignature)); - } - } - if (symbolFlags & ts.SymbolFlags.EnumMember) { - addPrefixForAnyFunctionOrVar(symbol, "enum member"); - var declaration = symbol.declarations[0]; - if (declaration.kind === ts.SyntaxKind.EnumMember) { - var constantValue = typeResolver.getEnumMemberValue(declaration); - if (constantValue !== undefined) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.displayPart(constantValue.toString(), 7 /* numericLiteral */)); - } - } - } - if (symbolFlags & ts.SymbolFlags.Import) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(ts.SyntaxKind.ImportKeyword)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === ts.SyntaxKind.ImportDeclaration) { - var importDeclaration = declaration; - if (ts.isExternalModuleImportDeclaration(importDeclaration)) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(ts.SyntaxKind.RequireKeyword)); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); - displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportDeclarationExpression(importDeclaration)), 8 /* stringLiteral */)); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); - } - else { - var internalAliasSymbol = typeResolver.getSymbolAtLocation(importDeclaration.moduleReference); - if (internalAliasSymbol) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(ts.SyntaxKind.EqualsToken)); - displayParts.push(ts.spacePart()); - addFullSymbolName(internalAliasSymbol, enclosingDeclaration); - } - } - return true; - } - }); - } - if (!hasAddedSymbolInfo) { - if (symbolKind !== ScriptElementKind.unknown) { - if (type) { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - // For properties, variables and local vars: show the type - if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & ts.SymbolFlags.Variable || symbolKind === ScriptElementKind.localVariableElement) { - displayParts.push(ts.punctuationPart(ts.SyntaxKind.ColonToken)); - displayParts.push(ts.spacePart()); - // If the type is type parameter, format it specially - if (type.symbol && type.symbol.flags & ts.SymbolFlags.TypeParameter) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { - typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); - }); - displayParts.push.apply(displayParts, typeParameterParts); - } - else { - displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); - } - } - else if (symbolFlags & ts.SymbolFlags.Function || symbolFlags & ts.SymbolFlags.Method || symbolFlags & ts.SymbolFlags.Constructor || symbolFlags & ts.SymbolFlags.Signature || symbolFlags & ts.SymbolFlags.Accessor || symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); - addSignatureDisplayParts(allSignatures[0], allSignatures); - } - } - } - else { - symbolKind = getSymbolKind(symbol, typeResolver, location); - } - } - if (!documentation) { - documentation = symbol.getDocumentationComment(); - } - return { displayParts, documentation, symbolKind }; - function addNewLineIfDisplayPartsExist() { - if (displayParts.length) { - displayParts.push(ts.lineBreakPart()); - } - } - function addFullSymbolName(symbol, enclosingDeclaration) { - var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, ts.SymbolFormatFlags.WriteTypeParametersOrArguments | ts.SymbolFormatFlags.UseOnlyExternalAliasing); - displayParts.push.apply(displayParts, fullSymbolDisplayParts); - } - function addPrefixForAnyFunctionOrVar(symbol, symbolKind) { - addNewLineIfDisplayPartsExist(); - if (symbolKind) { - displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); - displayParts.push(ts.textPart(symbolKind)); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - } - function addSignatureDisplayParts(signature, allSignatures, flags) { - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | ts.TypeFormatFlags.WriteTypeArgumentsOfSignature)); - if (allSignatures.length > 1) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.OpenParenToken)); - displayParts.push(ts.operatorPart(ts.SyntaxKind.PlusToken)); - displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.textPart(allSignatures.length === 2 ? "overload" : "overloads")); - displayParts.push(ts.punctuationPart(ts.SyntaxKind.CloseParenToken)); - } - documentation = signature.getDocumentationComment(); - } - function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { - typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); - }); - displayParts.push.apply(displayParts, typeParameterParts); - } - } - function getQuickInfoAtPosition(fileName, position) { - synchronizeHostData(); - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (!symbol) { - switch (node.kind) { - case ts.SyntaxKind.Identifier: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.QualifiedName: - case ts.SyntaxKind.ThisKeyword: - case ts.SyntaxKind.SuperKeyword: - // For the identifiers/this/super etc get the type at position - var type = typeInfoResolver.getTypeAtLocation(node); - if (type) { - return { - kind: ScriptElementKind.unknown, - kindModifiers: ScriptElementKindModifier.none, - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - displayParts: ts.typeToDisplayParts(typeInfoResolver, type, getContainerNode(node)), - documentation: type.symbol ? type.symbol.getDocumentationComment() : undefined - }; - } - } - return undefined; - } - var displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); - return { - kind: displayPartsDocumentationsAndKind.symbolKind, - kindModifiers: getSymbolModifiers(symbol), - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - displayParts: displayPartsDocumentationsAndKind.displayParts, - documentation: displayPartsDocumentationsAndKind.documentation - }; - } - /// Goto definition - function getDefinitionAtPosition(filename, position) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - // Labels - if (isJumpStatementTarget(node)) { - var labelName = node.text; - var label = getTargetLabel(node.parent, node.text); - return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; - } - /// Triple slash reference comments - var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); - if (comment) { - var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); - if (referenceFile) { - return [{ - fileName: referenceFile.filename, - textSpan: ts.createTextSpanFromBounds(0, 0), - kind: ScriptElementKind.scriptElement, - name: comment.filename, - containerName: undefined, - containerKind: undefined - }]; - } - return undefined; - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - // Could not find a symbol e.g. node is string or number keyword, - // or the symbol was an internal symbol and does not have a declaration e.g. undefined symbol - if (!symbol) { - return undefined; - } - var result = []; - // Because name in short-hand property assignment has two different meanings: property name and property value, - // using go-to-definition at such position should go to the variable declaration of the property value rather than - // go to the declaration of the property name (in this case stay at the same position). However, if go-to-definition - // is performed at the location of property access, we would like to go to definition of the property in the short-hand - // assignment. This case and others are handled by the following code. - if (node.parent.kind === ts.SyntaxKind.ShorthandPropertyAssignment) { - var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); - var shorthandDeclarations = shorthandSymbol.getDeclarations(); - var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); - var shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); - var shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); - ts.forEach(shorthandDeclarations, function (declaration) { - result.push(getDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName)); - }); - return result; - } - var declarations = symbol.getDeclarations(); - var symbolName = typeInfoResolver.symbolToString(symbol); // Do not get scoped name, just the name of the symbol - var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); - var containerSymbol = symbol.parent; - var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; - if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { - // Just add all the declarations. - ts.forEach(declarations, function (declaration) { - result.push(getDefinitionInfo(declaration, symbolKind, symbolName, containerName)); - }); - } - return result; - function getDefinitionInfo(node, symbolKind, symbolName, containerName) { - return { - fileName: node.getSourceFile().filename, - textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()), - kind: symbolKind, - name: symbolName, - containerKind: undefined, - containerName - }; - } - function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { - var declarations = []; - var definition; - ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === ts.SyntaxKind.Constructor) || (!selectConstructors && (d.kind === ts.SyntaxKind.FunctionDeclaration || d.kind === ts.SyntaxKind.MethodDeclaration || d.kind === ts.SyntaxKind.MethodSignature))) { - declarations.push(d); - if (d.body) - definition = d; - } - }); - if (definition) { - result.push(getDefinitionInfo(definition, symbolKind, symbolName, containerName)); - return true; - } - else if (declarations.length) { - result.push(getDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); - return true; - } - return false; - } - function tryAddConstructSignature(symbol, location, symbolKind, symbolName, containerName, result) { - // Applicable only if we are in a new expression, or we are on a constructor declaration - // and in either case the symbol has a construct signature definition, i.e. class - if (isNewExpressionTarget(location) || location.kind === ts.SyntaxKind.ConstructorKeyword) { - if (symbol.flags & ts.SymbolFlags.Class) { - var classDeclaration = symbol.getDeclarations()[0]; - ts.Debug.assert(classDeclaration && classDeclaration.kind === ts.SyntaxKind.ClassDeclaration); - return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); - } - } - return false; - } - function tryAddCallSignature(symbol, location, symbolKind, symbolName, containerName, result) { - if (isCallExpressionTarget(location) || isNewExpressionTarget(location) || isNameOfFunctionDeclaration(location)) { - return tryAddSignature(symbol.declarations, false, symbolKind, symbolName, containerName, result); - } - return false; - } - } - /// References and Occurrences - function getOccurrencesAtPosition(filename, position) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); - var node = ts.getTouchingWord(sourceFile, position); - if (!node) { - return undefined; - } - if (node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.ThisKeyword || node.kind === ts.SyntaxKind.SuperKeyword || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return getReferencesForNode(node, [sourceFile], false, false); - } - switch (node.kind) { - case ts.SyntaxKind.IfKeyword: - case ts.SyntaxKind.ElseKeyword: - if (hasKind(node.parent, ts.SyntaxKind.IfStatement)) { - return getIfElseOccurrences(node.parent); - } - break; - case ts.SyntaxKind.ReturnKeyword: - if (hasKind(node.parent, ts.SyntaxKind.ReturnStatement)) { - return getReturnOccurrences(node.parent); - } - break; - case ts.SyntaxKind.ThrowKeyword: - if (hasKind(node.parent, ts.SyntaxKind.ThrowStatement)) { - return getThrowOccurrences(node.parent); - } - break; - case ts.SyntaxKind.CatchKeyword: - if (hasKind(parent(parent(node)), ts.SyntaxKind.TryStatement)) { - return getTryCatchFinallyOccurrences(node.parent.parent); - } - break; - case ts.SyntaxKind.TryKeyword: - case ts.SyntaxKind.FinallyKeyword: - if (hasKind(parent(node), ts.SyntaxKind.TryStatement)) { - return getTryCatchFinallyOccurrences(node.parent); - } - break; - case ts.SyntaxKind.SwitchKeyword: - if (hasKind(node.parent, ts.SyntaxKind.SwitchStatement)) { - return getSwitchCaseDefaultOccurrences(node.parent); - } - break; - case ts.SyntaxKind.CaseKeyword: - case ts.SyntaxKind.DefaultKeyword: - if (hasKind(parent(parent(node)), ts.SyntaxKind.SwitchStatement)) { - return getSwitchCaseDefaultOccurrences(node.parent.parent); - } - break; - case ts.SyntaxKind.BreakKeyword: - case ts.SyntaxKind.ContinueKeyword: - if (hasKind(node.parent, ts.SyntaxKind.BreakStatement) || hasKind(node.parent, ts.SyntaxKind.ContinueStatement)) { - return getBreakOrContinueStatementOccurences(node.parent); - } - break; - case ts.SyntaxKind.ForKeyword: - if (hasKind(node.parent, ts.SyntaxKind.ForStatement) || hasKind(node.parent, ts.SyntaxKind.ForInStatement)) { - return getLoopBreakContinueOccurrences(node.parent); - } - break; - case ts.SyntaxKind.WhileKeyword: - case ts.SyntaxKind.DoKeyword: - if (hasKind(node.parent, ts.SyntaxKind.WhileStatement) || hasKind(node.parent, ts.SyntaxKind.DoStatement)) { - return getLoopBreakContinueOccurrences(node.parent); - } - break; - case ts.SyntaxKind.ConstructorKeyword: - if (hasKind(node.parent, ts.SyntaxKind.Constructor)) { - return getConstructorOccurrences(node.parent); - } - break; - case ts.SyntaxKind.GetKeyword: - case ts.SyntaxKind.SetKeyword: - if (hasKind(node.parent, ts.SyntaxKind.GetAccessor) || hasKind(node.parent, ts.SyntaxKind.SetAccessor)) { - return getGetAndSetOccurrences(node.parent); - } - default: - if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === ts.SyntaxKind.VariableStatement)) { - return getModifierOccurrences(node.kind, node.parent); - } - } - return undefined; - function getIfElseOccurrences(ifStatement) { - var keywords = []; - while (hasKind(ifStatement.parent, ts.SyntaxKind.IfStatement) && ifStatement.parent.elseStatement === ifStatement) { - ifStatement = ifStatement.parent; - } - while (ifStatement) { - var children = ifStatement.getChildren(); - pushKeywordIf(keywords, children[0], ts.SyntaxKind.IfKeyword); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], ts.SyntaxKind.ElseKeyword)) { - break; - } - } - if (!hasKind(ifStatement.elseStatement, ts.SyntaxKind.IfStatement)) { - break; - } - ifStatement = ifStatement.elseStatement; - } - var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === ts.SyntaxKind.ElseKeyword && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; // this *should* always be an 'if' keyword. - var shouldHighlightNextKeyword = true; - for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { - if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { - shouldHighlightNextKeyword = false; - break; - } - } - if (shouldHighlightNextKeyword) { - result.push({ - fileName: filename, - textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), - isWriteAccess: false - }); - i++; // skip the next keyword - continue; - } - } - // Ordinary case: just highlight the keyword. - result.push(getReferenceEntryFromNode(keywords[i])); - } - return result; - } - function getReturnOccurrences(returnStatement) { - var func = ts.getContainingFunction(returnStatement); - // If we didn't find a containing function with a block body, bail out. - if (!(func && hasKind(func.body, ts.SyntaxKind.Block))) { - return undefined; - } - var keywords = []; - ts.forEachReturnStatement(func.body, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), ts.SyntaxKind.ReturnKeyword); - }); - // Include 'throw' statements that do not occur within a try block. - ts.forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), ts.SyntaxKind.ThrowKeyword); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getThrowOccurrences(throwStatement) { - var owner = getThrowStatementOwner(throwStatement); - if (!owner) { - return undefined; - } - var keywords = []; - ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), ts.SyntaxKind.ThrowKeyword); - }); - // If the "owner" is a function, then we equate 'return' and 'throw' statements in their - // ability to "jump out" of the function, and include occurrences for both. - if (ts.isFunctionBlock(owner)) { - ts.forEachReturnStatement(owner, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), ts.SyntaxKind.ReturnKeyword); - }); - } - return ts.map(keywords, getReferenceEntryFromNode); - } - /** - * Aggregates all throw-statements within this node *without* crossing - * into function boundaries and try-blocks with catch-clauses. - */ - function aggregateOwnedThrowStatements(node) { - var statementAccumulator = []; - aggregate(node); - return statementAccumulator; - function aggregate(node) { - if (node.kind === ts.SyntaxKind.ThrowStatement) { - statementAccumulator.push(node); - } - else if (node.kind === ts.SyntaxKind.TryStatement) { - var tryStatement = node; - if (tryStatement.catchClause) { - aggregate(tryStatement.catchClause); - } - else { - // Exceptions thrown within a try block lacking a catch clause - // are "owned" in the current context. - aggregate(tryStatement.tryBlock); - } - if (tryStatement.finallyBlock) { - aggregate(tryStatement.finallyBlock); - } - } - else if (!ts.isAnyFunction(node)) { - ts.forEachChild(node, aggregate); - } - } - ; - } - /** - * For lack of a better name, this function takes a throw statement and returns the - * nearest ancestor that is a try-block (whose try statement has a catch clause), - * function-block, or source file. - */ - function getThrowStatementOwner(throwStatement) { - var child = throwStatement; - while (child.parent) { - var parent = child.parent; - if (ts.isFunctionBlock(parent) || parent.kind === ts.SyntaxKind.SourceFile) { - return parent; - } - // A throw-statement is only owned by a try-statement if the try-statement has - // a catch clause, and if the throw-statement occurs within the try block. - if (parent.kind === ts.SyntaxKind.TryStatement) { - var tryStatement = parent; - if (tryStatement.tryBlock === child && tryStatement.catchClause) { - return child; - } - } - child = parent; - } - return undefined; - } - function getTryCatchFinallyOccurrences(tryStatement) { - var keywords = []; - pushKeywordIf(keywords, tryStatement.getFirstToken(), ts.SyntaxKind.TryKeyword); - if (tryStatement.catchClause) { - pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), ts.SyntaxKind.CatchKeyword); - } - if (tryStatement.finallyBlock) { - var finallyKeyword = ts.findChildOfKind(tryStatement, ts.SyntaxKind.FinallyKeyword, sourceFile); - pushKeywordIf(keywords, finallyKeyword, ts.SyntaxKind.FinallyKeyword); - } - return ts.map(keywords, getReferenceEntryFromNode); - } - function getLoopBreakContinueOccurrences(loopNode) { - var keywords = []; - if (pushKeywordIf(keywords, loopNode.getFirstToken(), ts.SyntaxKind.ForKeyword, ts.SyntaxKind.WhileKeyword, ts.SyntaxKind.DoKeyword)) { - // If we succeeded and got a do-while loop, then start looking for a 'while' keyword. - if (loopNode.kind === ts.SyntaxKind.DoStatement) { - var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], ts.SyntaxKind.WhileKeyword)) { - break; - } - } - } - } - var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); - ts.forEach(breaksAndContinues, function (statement) { - if (ownsBreakOrContinueStatement(loopNode, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), ts.SyntaxKind.BreakKeyword, ts.SyntaxKind.ContinueKeyword); - } - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getSwitchCaseDefaultOccurrences(switchStatement) { - var keywords = []; - pushKeywordIf(keywords, switchStatement.getFirstToken(), ts.SyntaxKind.SwitchKeyword); - // Go through each clause in the switch statement, collecting the 'case'/'default' keywords. - ts.forEach(switchStatement.clauses, function (clause) { - pushKeywordIf(keywords, clause.getFirstToken(), ts.SyntaxKind.CaseKeyword, ts.SyntaxKind.DefaultKeyword); - var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); - ts.forEach(breaksAndContinues, function (statement) { - if (ownsBreakOrContinueStatement(switchStatement, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), ts.SyntaxKind.BreakKeyword); - } - }); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getBreakOrContinueStatementOccurences(breakOrContinueStatement) { - var owner = getBreakOrContinueOwner(breakOrContinueStatement); - if (owner) { - switch (owner.kind) { - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.WhileStatement: - return getLoopBreakContinueOccurrences(owner); - case ts.SyntaxKind.SwitchStatement: - return getSwitchCaseDefaultOccurrences(owner); - } - } - return undefined; - } - function aggregateAllBreakAndContinueStatements(node) { - var statementAccumulator = []; - aggregate(node); - return statementAccumulator; - function aggregate(node) { - if (node.kind === ts.SyntaxKind.BreakStatement || node.kind === ts.SyntaxKind.ContinueStatement) { - statementAccumulator.push(node); - } - else if (!ts.isAnyFunction(node)) { - ts.forEachChild(node, aggregate); - } - } - ; - } - function ownsBreakOrContinueStatement(owner, statement) { - var actualOwner = getBreakOrContinueOwner(statement); - return actualOwner && actualOwner === owner; - } - function getBreakOrContinueOwner(statement) { - for (var node = statement.parent; node; node = node.parent) { - switch (node.kind) { - case ts.SyntaxKind.SwitchStatement: - if (statement.kind === ts.SyntaxKind.ContinueStatement) { - continue; - } - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - if (!statement.label || isLabeledBy(node, statement.label.text)) { - return node; - } - break; - default: - // Don't cross function boundaries. - if (ts.isAnyFunction(node)) { - return undefined; - } - break; - } - } - return undefined; - } - function getConstructorOccurrences(constructorDeclaration) { - var declarations = constructorDeclaration.symbol.getDeclarations(); - var keywords = []; - ts.forEach(declarations, function (declaration) { - ts.forEach(declaration.getChildren(), function (token) { - return pushKeywordIf(keywords, token, ts.SyntaxKind.ConstructorKeyword); - }); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getGetAndSetOccurrences(accessorDeclaration) { - var keywords = []; - tryPushAccessorKeyword(accessorDeclaration.symbol, ts.SyntaxKind.GetAccessor); - tryPushAccessorKeyword(accessorDeclaration.symbol, ts.SyntaxKind.SetAccessor); - return ts.map(keywords, getReferenceEntryFromNode); - function tryPushAccessorKeyword(accessorSymbol, accessorKind) { - var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); - if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, ts.SyntaxKind.GetKeyword, ts.SyntaxKind.SetKeyword); }); - } - } - } - function getModifierOccurrences(modifier, declaration) { - var container = declaration.parent; - // Make sure we only highlight the keyword when it makes sense to do so. - if (declaration.flags & ts.NodeFlags.AccessibilityModifier) { - if (!(container.kind === ts.SyntaxKind.ClassDeclaration || (declaration.kind === ts.SyntaxKind.Parameter && hasKind(container, ts.SyntaxKind.Constructor)))) { - return undefined; - } - } - else if (declaration.flags & ts.NodeFlags.Static) { - if (container.kind !== ts.SyntaxKind.ClassDeclaration) { - return undefined; - } - } - else if (declaration.flags & (ts.NodeFlags.Export | ts.NodeFlags.Ambient)) { - if (!(container.kind === ts.SyntaxKind.ModuleBlock || container.kind === ts.SyntaxKind.SourceFile)) { - return undefined; - } - } - else { - // unsupported modifier - return undefined; - } - var keywords = []; - var modifierFlag = getFlagFromModifier(modifier); - var nodes; - switch (container.kind) { - case ts.SyntaxKind.ModuleBlock: - case ts.SyntaxKind.SourceFile: - nodes = container.statements; - break; - case ts.SyntaxKind.Constructor: - nodes = container.parameters.concat(container.parent.members); - break; - case ts.SyntaxKind.ClassDeclaration: - nodes = container.members; - // 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 & ts.NodeFlags.AccessibilityModifier) { - var constructor = ts.forEach(container.members, function (member) { - return member.kind === ts.SyntaxKind.Constructor && member; - }); - if (constructor) { - nodes = nodes.concat(constructor.parameters); - } - } - break; - default: - ts.Debug.fail("Invalid container kind."); - } - ts.forEach(nodes, function (node) { - if (node.modifiers && node.flags & modifierFlag) { - ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); - } - }); - return ts.map(keywords, getReferenceEntryFromNode); - function getFlagFromModifier(modifier) { - switch (modifier) { - case ts.SyntaxKind.PublicKeyword: - return ts.NodeFlags.Public; - case ts.SyntaxKind.PrivateKeyword: - return ts.NodeFlags.Private; - case ts.SyntaxKind.ProtectedKeyword: - return ts.NodeFlags.Protected; - case ts.SyntaxKind.StaticKeyword: - return ts.NodeFlags.Static; - case ts.SyntaxKind.ExportKeyword: - return ts.NodeFlags.Export; - case ts.SyntaxKind.DeclareKeyword: - return ts.NodeFlags.Ambient; - default: - ts.Debug.fail(); - } - } - } - // returns true if 'node' is defined and has a matching 'kind'. - function hasKind(node, kind) { - return node !== undefined && node.kind === kind; - } - // Null-propagating 'parent' function. - function parent(node) { - return node && node.parent; - } - function pushKeywordIf(keywordList, token, ...expected) { - if (token && ts.contains(expected, token.kind)) { - keywordList.push(token); - return true; - } - return false; - } - } - function findRenameLocations(fileName, position, findInStrings, findInComments) { - return findReferences(fileName, position, findInStrings, findInComments); - } - function getReferencesAtPosition(fileName, position) { - return findReferences(fileName, position, false, false); - } - function findReferences(fileName, position, findInStrings, findInComments) { - synchronizeHostData(); - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - if (node.kind !== ts.SyntaxKind.Identifier && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { - return undefined; - } - ts.Debug.assert(node.kind === ts.SyntaxKind.Identifier || node.kind === ts.SyntaxKind.NumericLiteral || node.kind === ts.SyntaxKind.StringLiteral); - return getReferencesForNode(node, program.getSourceFiles(), findInStrings, findInComments); - } - function getReferencesForNode(node, sourceFiles, findInStrings, findInComments) { - // Labels - if (isLabelName(node)) { - if (isJumpStatementTarget(node)) { - var labelDefinition = getTargetLabel(node.parent, node.text); - // if we have a label definition, look within its statement for references, if not, then - // the label is undefined, just return a set of one for the current node. - return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; - } - else { - // it is a label definition and not a target, search within the parent labeledStatement - return getLabelReferencesInNode(node.parent, node); - } - } - if (node.kind === ts.SyntaxKind.ThisKeyword) { - return getReferencesForThisKeyword(node, sourceFiles); - } - if (node.kind === ts.SyntaxKind.SuperKeyword) { - return getReferencesForSuperKeyword(node); - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - // Could not find a symbol e.g. unknown identifier - if (!symbol) { - // Even if we did not find a symbol, we have an identifier, so there is at least - // one reference that we know of. return that instead of undefined. - return [getReferenceEntryFromNode(node)]; - } - var declarations = symbol.declarations; - // The symbol was an internal symbol and does not have a declaration e.g.undefined symbol - if (!declarations || !declarations.length) { - return undefined; - } - var result; - // Compute the meaning from the location and the symbol it references - var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); - // Get the text to search for, we need to normalize it as external module names will have quote - var declaredName = getDeclaredName(symbol); - // Try to get the smallest valid scope that we can limit our search to; - // otherwise we'll need to search globally (i.e. include each file). - var scope = getSymbolScope(symbol); - if (scope) { - 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, internedName)) { - result = result || []; - getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); - } - }); - } - return result; - function getDeclaredName(symbol) { - var name = typeInfoResolver.symbolToString(symbol); - return stripQuotes(name); - } - function getInternedName(symbol, declarations) { - // Special case for function expressions, whose names are solely local to their bodies. - var functionExpression = ts.forEach(declarations, function (d) { return d.kind === ts.SyntaxKind.FunctionExpression ? d : undefined; }); - // When a name gets interned into a SourceFile's 'identifiers' Map, - // its name is escaped and stored in the same way its symbol name/identifier - // name should be stored. Function expressions, however, are a special case, - // because despite sometimes having a name, the binder unconditionally binds them - // to a symbol with the name "__function". - if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; - } - else { - var name = symbol.name; - } - return stripQuotes(name); - } - function stripQuotes(name) { - var length = name.length; - if (length >= 2 && name.charCodeAt(0) === ts.CharacterCodes.doubleQuote && name.charCodeAt(length - 1) === ts.CharacterCodes.doubleQuote) { - return name.substring(1, length - 1); - } - ; - return name; - } - function getSymbolScope(symbol) { - // If this is private property or method, the scope is the containing class - if (symbol.getFlags() && (ts.SymbolFlags.Property | ts.SymbolFlags.Method)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & ts.NodeFlags.Private) ? d : undefined; }); - if (privateDeclaration) { - return ts.getAncestor(privateDeclaration, ts.SyntaxKind.ClassDeclaration); - } - } - // if this symbol is visible from its parent container, e.g. exported, then bail out - if (symbol.parent) { - return undefined; - } - var scope = undefined; - var declarations = symbol.getDeclarations(); - if (declarations) { - for (var i = 0, n = declarations.length; i < n; i++) { - var container = getContainerNode(declarations[i]); - if (!container) { - return undefined; - } - if (scope && scope !== container) { - // Different declarations have different containers, bail out - return undefined; - } - if (container.kind === ts.SyntaxKind.SourceFile && !ts.isExternalModule(container)) { - // This is a global variable and not an external module, any declaration defined - // within this scope is visible outside the file - return undefined; - } - // The search scope is the container node - scope = container; - } - } - return scope; - } - function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { - var positions = []; - /// TODO: Cache symbol existence for files to save text search - // Also, need to make this work for unicode escapes. - // Be resilient in the face of a symbol with no name or zero length name - if (!symbolName || !symbolName.length) { - return positions; - } - var text = sourceFile.text; - var sourceLength = text.length; - var symbolNameLength = symbolName.length; - var position = text.indexOf(symbolName, start); - while (position >= 0) { - cancellationToken.throwIfCancellationRequested(); - // If we are past the end, stop looking - if (position > end) - break; - // We found a match. Make sure it's not part of a larger word (i.e. the char - // before and after it have to be a non-identifier char). - var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), ts.ScriptTarget.Latest)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), ts.ScriptTarget.Latest))) { - // Found a real match. Keep searching. - positions.push(position); - } - position = text.indexOf(symbolName, position + symbolNameLength + 1); - } - return positions; - } - function getLabelReferencesInNode(container, targetLabel) { - var result = []; - var sourceFile = container.getSourceFile(); - var labelName = targetLabel.text; - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.getWidth() !== labelName.length) { - return; - } - // Only pick labels that are either the target label, or have a target that is the target label - if (node === targetLabel || (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { - result.push(getReferenceEntryFromNode(node)); - } - }); - return result; - } - function isValidReferencePosition(node, searchSymbolName) { - if (node) { - switch (node.kind) { - case ts.SyntaxKind.Identifier: - return node.getWidth() === searchSymbolName.length; - case ts.SyntaxKind.StringLiteral: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - // For string literals we have two additional chars for the quotes - return node.getWidth() === searchSymbolName.length + 2; - } - break; - case ts.SyntaxKind.NumericLiteral: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node)) { - return node.getWidth() === searchSymbolName.length; - } - break; - } - } - return false; - } - /** Search within node "container" for references for a search value, where the search value is defined as a - * tuple of(searchSymbol, searchText, searchLocation, and searchMeaning). - * searchLocation: a node where the search value - */ - function getReferencesInNode(container, searchSymbol, searchText, searchLocation, searchMeaning, findInStrings, findInComments, result) { - var sourceFile = container.getSourceFile(); - var tripleSlashDirectivePrefixRegex = /^\/\/\/\s*= 0) { - result.push(getReferenceEntryFromNode(referenceSymbolDeclaration.name)); - } - } - }); - } - function isInString(position) { - var token = ts.getTokenAtPosition(sourceFile, position); - return token && token.kind === ts.SyntaxKind.StringLiteral && position > token.getStart(); - } - function isInComment(position) { - var token = ts.getTokenAtPosition(sourceFile, position); - if (token && position < token.getStart()) { - // First, we have to see if this position actually landed in a comment. - var commentRanges = ts.getLeadingCommentRanges(sourceFile.text, token.pos); - // Then we want to make sure that it wasn't in a "///<" directive comment - // We don't want to unintentionally update a file name. - return ts.forEach(commentRanges, function (c) { - if (c.pos < position && position < c.end) { - var commentText = sourceFile.text.substring(c.pos, c.end); - if (!tripleSlashDirectivePrefixRegex.test(commentText)) { - return true; - } - } - }); - } - return false; - } - } - function getReferencesForSuperKeyword(superKeyword) { - var searchSpaceNode = ts.getSuperContainer(superKeyword); - if (!searchSpaceNode) { - return undefined; - } - // Whether 'super' occurs in a static context within a class. - var staticFlag = ts.NodeFlags.Static; - switch (searchSpaceNode.kind) { - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - staticFlag &= searchSpaceNode.flags; - searchSpaceNode = searchSpaceNode.parent; // re-assign to be the owning class - break; - default: - return undefined; - } - var result = []; - var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== ts.SyntaxKind.SuperKeyword) { - return; - } - var container = ts.getSuperContainer(node); - // If we have a 'super' container, we must have an enclosing class. - // Now make sure the owning class is the same as the search-space - // and has the same static qualifier as the original 'super's owner. - if (container && (ts.NodeFlags.Static & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { - result.push(getReferenceEntryFromNode(node)); - } - }); - return result; - } - function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { - var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); - // Whether 'this' occurs in a static context within a class. - var staticFlag = ts.NodeFlags.Static; - switch (searchSpaceNode.kind) { - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - if (ts.isObjectLiteralMethod(searchSpaceNode)) { - break; - } - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - staticFlag &= searchSpaceNode.flags; - searchSpaceNode = searchSpaceNode.parent; // re-assign to be the owning class - break; - case ts.SyntaxKind.SourceFile: - if (ts.isExternalModule(searchSpaceNode)) { - return undefined; - } - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - break; - default: - return undefined; - } - var result = []; - if (searchSpaceNode.kind === ts.SyntaxKind.SourceFile) { - ts.forEach(sourceFiles, function (sourceFile) { - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); - getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); - }); - } - else { - var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); - } - return result; - function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== ts.SyntaxKind.ThisKeyword) { - return; - } - var container = ts.getThisContainer(node, false); - switch (searchSpaceNode.kind) { - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.FunctionDeclaration: - if (searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case ts.SyntaxKind.ClassDeclaration: - // Make sure the container belongs to the same class - // and has the appropriate static modifier from the original container. - if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & ts.NodeFlags.Static) === staticFlag) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case ts.SyntaxKind.SourceFile: - if (container.kind === ts.SyntaxKind.SourceFile && !ts.isExternalModule(container)) { - result.push(getReferenceEntryFromNode(node)); - } - break; - } - }); - } - } - function populateSearchSymbolSet(symbol, location) { - // The search set contains at least the current symbol - var result = [symbol]; - // If the location is in a context sensitive location (i.e. in an object literal) try - // to get a contextual type for it, and add the property symbol from the contextual - // type to the search set - if (isNameOfPropertyAssignment(location)) { - ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { - result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); - }); - /* Because in short-hand property assignment, location has two meaning : property name and as value of the property - * When we do findAllReference at the position of the short-hand property assignment, we would want to have references to position of - * property name and variable declaration of the identifier. - * Like in below example, when querying for all references for an identifier 'name', of the property assignment, the language service - * should show both 'name' in 'obj' and 'name' in variable declaration - * var name = "Foo"; - * var obj = { name }; - * In order to do that, we will populate the search set with the value symbol of the identifier as a value of the property assignment - * so that when matching with potential reference symbol, both symbols from property declaration and variable declaration - * will be included correctly. - */ - var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); - if (shorthandValueSymbol) { - result.push(shorthandValueSymbol); - } - } - // If this is a union property, add all the symbols from all its source symbols in all unioned types. - // If the symbol is an instantiation from a another symbol (e.g. widened symbol) , add the root the list - ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { - if (rootSymbol !== symbol) { - result.push(rootSymbol); - } - // Add symbol of properties/methods of the same name in base classes and implemented interfaces definitions - if (rootSymbol.parent && rootSymbol.parent.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - } - }); - return result; - } - function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { - if (symbol && symbol.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { - ts.forEach(symbol.getDeclarations(), function (declaration) { - if (declaration.kind === ts.SyntaxKind.ClassDeclaration) { - getPropertySymbolFromTypeReference(ts.getClassBaseTypeNode(declaration)); - ts.forEach(ts.getClassImplementedTypeNodes(declaration), getPropertySymbolFromTypeReference); - } - else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { - ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); - } - }); - } - return; - function getPropertySymbolFromTypeReference(typeReference) { - if (typeReference) { - var type = typeInfoResolver.getTypeAtLocation(typeReference); - if (type) { - var propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); - if (propertySymbol) { - result.push(propertySymbol); - } - // Visit the typeReference as well to see if it directly or indirectly use that property - getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result); - } - } - } - } - function isRelatableToSearchSet(searchSymbols, referenceSymbol, referenceLocation) { - if (searchSymbols.indexOf(referenceSymbol) >= 0) { - return true; - } - // If the reference location is in an object literal, try to get the contextual type for the - // object literal, lookup the property symbol in the contextual type, and use this symbol to - // compare to our searchSymbol - if (isNameOfPropertyAssignment(referenceLocation)) { - return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { - return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0; }); - }); - } - // Unwrap symbols to get to the root (e.g. transient symbols as a result of widening) - // Or a union property, use its underlying unioned symbols - return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { - // if it is in the list, then we are done - if (searchSymbols.indexOf(rootSymbol) >= 0) { - return true; - } - // Finally, try all properties with the same name in any type the containing type extended or implemented, and - // see if any is in the list - if (rootSymbol.parent && rootSymbol.parent.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) { - var result = []; - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - return ts.forEach(result, function (s) { return searchSymbols.indexOf(s) >= 0; }); - } - return false; - }); - } - function getPropertySymbolsFromContextualType(node) { - if (isNameOfPropertyAssignment(node)) { - var objectLiteral = node.parent.parent; - var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name = node.text; - if (contextualType) { - if (contextualType.flags & ts.TypeFlags.Union) { - // This is a union type, first see if the property we are looking for is a union property (i.e. exists in all types) - // if not, search the constituent types for the property - var unionProperty = contextualType.getProperty(name); - if (unionProperty) { - return [unionProperty]; - } - else { - var result = []; - ts.forEach(contextualType.types, function (t) { - var symbol = t.getProperty(name); - if (symbol) { - result.push(symbol); - } - }); - return result; - } - } - else { - var symbol = contextualType.getProperty(name); - if (symbol) { - return [symbol]; - } - } - } - } - return undefined; - } - /** Given an initial searchMeaning, extracted from a location, widen the search scope based on the declarations - * of the corresponding symbol. e.g. if we are searching for "Foo" in value position, but "Foo" references a class - * then we need to widen the search to include type positions as well. - * On the contrary, if we are searching for "Bar" in type position and we trace bar to an interface, and an uninstantiated - * module, we want to keep the search limited to only types, as the two declarations (interface and uninstantiated module) - * do not intersect in any of the three spaces. - */ - function getIntersectingMeaningFromDeclarations(meaning, declarations) { - if (declarations) { - do { - // The result is order-sensitive, for instance if initialMeaning === Namespace, and declarations = [class, instantiated module] - // we need to consider both as they initialMeaning intersects with the module in the namespace space, and the module - // intersects with the class in the value space. - // To achieve that we will keep iterating until the result stabilizes. - // Remember the last meaning - var lastIterationMeaning = meaning; - for (var i = 0, n = declarations.length; i < n; i++) { - var declarationMeaning = getMeaningFromDeclaration(declarations[i]); - if (declarationMeaning & meaning) { - meaning |= declarationMeaning; - } - } - } while (meaning !== lastIterationMeaning); - } - return meaning; - } - } - function getReferenceEntryFromNode(node) { - var start = node.getStart(); - var end = node.getEnd(); - if (node.kind === ts.SyntaxKind.StringLiteral) { - start += 1; - end -= 1; - } - return { - fileName: node.getSourceFile().filename, - textSpan: ts.createTextSpanFromBounds(start, end), - isWriteAccess: isWriteAccess(node) - }; - } - /** A node is considered a writeAccess iff it is a name of a declaration or a target of an assignment */ - function isWriteAccess(node) { - if (node.kind === ts.SyntaxKind.Identifier && ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { - return true; - } - var parent = node.parent; - if (parent) { - if (parent.kind === ts.SyntaxKind.PostfixUnaryExpression || parent.kind === ts.SyntaxKind.PrefixUnaryExpression) { - return true; - } - else if (parent.kind === ts.SyntaxKind.BinaryExpression && parent.left === node) { - var operator = parent.operator; - return ts.SyntaxKind.FirstAssignment <= operator && operator <= ts.SyntaxKind.LastAssignment; - } - } - return false; - } - /// NavigateTo - function getNavigateToItems(searchValue) { - synchronizeHostData(); - // Split search value in terms array - var terms = searchValue.split(" "); - // default NavigateTo approach: if search term contains only lower-case chars - use case-insensitive search, otherwise switch to case-sensitive version - var searchTerms = ts.map(terms, function (t) { return ({ caseSensitive: hasAnyUpperCaseCharacter(t), term: t }); }); - var items = []; - // Search the declarations in all files and output matched NavigateToItem into array of NavigateToItem[] - ts.forEach(program.getSourceFiles(), function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - var filename = sourceFile.filename; - var declarations = sourceFile.getNamedDeclarations(); - for (var i = 0, n = declarations.length; i < n; i++) { - var declaration = declarations[i]; - // TODO(jfreeman): Skip this declaration if it has a computed name - var name = declaration.name.text; - var matchKind = getMatchKind(searchTerms, name); - if (matchKind !== 0 /* none */) { - var container = getContainerNode(declaration); - items.push({ - name: name, - kind: getNodeKind(declaration), - kindModifiers: ts.getNodeModifiers(declaration), - matchKind: MatchKind[matchKind], - fileName: filename, - textSpan: ts.createTextSpanFromBounds(declaration.getStart(), declaration.getEnd()), - // TODO(jfreeman): What should be the containerName when the container has a computed name? - containerName: container && container.name ? container.name.text : "", - containerKind: container && container.name ? getNodeKind(container) : "" - }); - } - } - }); - return items; - function hasAnyUpperCaseCharacter(s) { - for (var i = 0, n = s.length; i < n; i++) { - var c = s.charCodeAt(i); - if ((ts.CharacterCodes.A <= c && c <= ts.CharacterCodes.Z) || (c >= ts.CharacterCodes.maxAsciiCharacter && s.charAt(i).toLocaleLowerCase() !== s.charAt(i))) { - return true; - } - } - return false; - } - function getMatchKind(searchTerms, name) { - var matchKind = 0 /* none */; - if (name) { - for (var j = 0, n = searchTerms.length; j < n; j++) { - var searchTerm = searchTerms[j]; - var nameToSearch = searchTerm.caseSensitive ? name : name.toLocaleLowerCase(); - // in case of case-insensitive search searchTerm.term will already be lower-cased - var index = nameToSearch.indexOf(searchTerm.term); - if (index < 0) { - // Didn't match. - return 0 /* none */; - } - var termKind = 2 /* substring */; - if (index === 0) { - // here we know that match occur at the beginning of the string. - // if search term and declName has the same length - we have an exact match, otherwise declName have longer length and this will be prefix match - termKind = name.length === searchTerm.term.length ? 1 /* exact */ : 3 /* prefix */; - } - // Update our match kind if we don't have one, or if this match is better. - if (matchKind === 0 /* none */ || termKind < matchKind) { - matchKind = termKind; - } - } - } - return matchKind; - } - } - function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === ts.DiagnosticCategory.Error; }); - } - function getEmitOutput(filename) { - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); - var outputFiles = []; - function writeFile(filename, data, writeByteOrderMark) { - outputFiles.push({ - name: filename, - writeByteOrderMark: writeByteOrderMark, - text: data - }); - } - // Get an emit host from our program, but override the writeFile functionality to - // call our local writer function. - var emitHost = ts.createEmitHostFromProgram(program); - emitHost.writeFile = writeFile; - var emitOutput = ts.emitFiles(getDiagnosticsProducingTypeChecker().getEmitResolver(), emitHost, sourceFile); - return { - outputFiles, - emitOutputStatus: emitOutput.emitResultStatus - }; - } - function getMeaningFromDeclaration(node) { - switch (node.kind) { - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.ShorthandPropertyAssignment: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.CatchClause: - return 1 /* Value */; - case ts.SyntaxKind.TypeParameter: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.TypeLiteral: - return 2 /* Type */; - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.EnumDeclaration: - return 1 /* Value */ | 2 /* Type */; - case ts.SyntaxKind.ModuleDeclaration: - if (node.name.kind === ts.SyntaxKind.StringLiteral) { - return 4 /* Namespace */ | 1 /* Value */; - } - else if (ts.getModuleInstanceState(node) === ts.ModuleInstanceState.Instantiated) { - return 4 /* Namespace */ | 1 /* Value */; - } - else { - return 4 /* Namespace */; - } - case ts.SyntaxKind.ImportDeclaration: - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; - case ts.SyntaxKind.SourceFile: - return 4 /* Namespace */ | 1 /* Value */; - } - ts.Debug.fail("Unknown declaration type"); - } - function isTypeReference(node) { - if (isRightSideOfQualifiedName(node)) { - node = node.parent; - } - return node.parent.kind === ts.SyntaxKind.TypeReference; - } - function isNamespaceReference(node) { - var root = node; - var isLastClause = true; - if (root.parent.kind === ts.SyntaxKind.QualifiedName) { - while (root.parent && root.parent.kind === ts.SyntaxKind.QualifiedName) - root = root.parent; - isLastClause = root.right === node; - } - return root.parent.kind === ts.SyntaxKind.TypeReference && !isLastClause; - } - function isInRightSideOfImport(node) { - while (node.parent.kind === ts.SyntaxKind.QualifiedName) { - node = node.parent; - } - return ts.isInternalModuleImportDeclaration(node.parent) && node.parent.moduleReference === node; - } - function getMeaningFromRightHandSideOfImport(node) { - ts.Debug.assert(node.kind === ts.SyntaxKind.Identifier); - // import a = |b|; // Namespace - // import a = |b.c|; // Value, type, namespace - // import a = |b.c|.d; // Namespace - if (node.parent.kind === ts.SyntaxKind.QualifiedName && node.parent.right === node && node.parent.parent.kind === ts.SyntaxKind.ImportDeclaration) { - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; - } - return 4 /* Namespace */; - } - function getMeaningFromLocation(node) { - if (node.parent.kind === ts.SyntaxKind.ExportAssignment) { - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; - } - else if (isInRightSideOfImport(node)) { - return getMeaningFromRightHandSideOfImport(node); - } - else if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { - return getMeaningFromDeclaration(node.parent); - } - else if (isTypeReference(node)) { - return 2 /* Type */; - } - else if (isNamespaceReference(node)) { - return 4 /* Namespace */; - } - else { - return 1 /* Value */; - } - } - // Signature help - /** - * This is a semantic operation. - */ - function getSignatureHelpItems(fileName, position) { - synchronizeHostData(); - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); - return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); - } - /// Syntactic features - function getCurrentSourceFile(filename) { - filename = ts.normalizeSlashes(filename); - var currentSourceFile = syntaxTreeCache.getCurrentSourceFile(filename); - return currentSourceFile; - } - function getNameOrDottedNameSpan(filename, startPos, endPos) { - filename = ts.normalizeSlashes(filename); - // Get node at the location - var node = ts.getTouchingPropertyName(getCurrentSourceFile(filename), startPos); - if (!node) { - return; - } - switch (node.kind) { - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.QualifiedName: - case ts.SyntaxKind.StringLiteral: - case ts.SyntaxKind.FalseKeyword: - case ts.SyntaxKind.TrueKeyword: - case ts.SyntaxKind.NullKeyword: - case ts.SyntaxKind.SuperKeyword: - case ts.SyntaxKind.ThisKeyword: - case ts.SyntaxKind.Identifier: - break; - default: - return; - } - var nodeForStartPos = node; - while (true) { - if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { - // If on the span is in right side of the the property or qualified name, return the span from the qualified name pos to end of this node - nodeForStartPos = nodeForStartPos.parent; - } - else if (isNameOfModuleDeclaration(nodeForStartPos)) { - // If this is name of a module declarations, check if this is right side of dotted module name - // If parent of the module declaration which is parent of this node is module declaration and its body is the module declaration that this node is name of - // Then this name is name from dotted module - if (nodeForStartPos.parent.parent.kind === ts.SyntaxKind.ModuleDeclaration && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { - // Use parent module declarations name for start pos - nodeForStartPos = nodeForStartPos.parent.parent.name; - } - else { - break; - } - } - else { - break; - } - } - return ts.createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); - } - function getBreakpointStatementAtPosition(filename, position) { - // doesn't use compiler - no need to synchronize with host - filename = ts.normalizeSlashes(filename); - return ts.BreakpointResolver.spanInSourceFileAtLocation(getCurrentSourceFile(filename), position); - } - function getNavigationBarItems(filename) { - filename = ts.normalizeSlashes(filename); - return ts.NavigationBar.getNavigationBarItems(getCurrentSourceFile(filename)); - } - function getSemanticClassifications(fileName, span) { - synchronizeHostData(); - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); - var result = []; - processNode(sourceFile); - return result; - function classifySymbol(symbol, meaningAtPosition) { - var flags = symbol.getFlags(); - if (flags & ts.SymbolFlags.Class) { - return ClassificationTypeNames.className; - } - else if (flags & ts.SymbolFlags.Enum) { - return ClassificationTypeNames.enumName; - } - else if (flags & ts.SymbolFlags.TypeAlias) { - return ClassificationTypeNames.typeAlias; - } - else if (meaningAtPosition & 2 /* Type */) { - if (flags & ts.SymbolFlags.Interface) { - return ClassificationTypeNames.interfaceName; - } - else if (flags & ts.SymbolFlags.TypeParameter) { - return ClassificationTypeNames.typeParameterName; - } - } - else if (flags & ts.SymbolFlags.Module) { - // Only classify a module as such if - // - It appears in a namespace context. - // - There exists a module declaration which actually impacts the value side. - if (meaningAtPosition & 4 /* Namespace */ || (meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol))) { - return ClassificationTypeNames.moduleName; - } - } - return undefined; - /** - * Returns true if there exists a module that introduces entities on the value side. - */ - function hasValueSideModule(symbol) { - return ts.forEach(symbol.declarations, function (declaration) { - return declaration.kind === ts.SyntaxKind.ModuleDeclaration && ts.getModuleInstanceState(declaration) == ts.ModuleInstanceState.Instantiated; - }); - } - } - function processNode(node) { - // Only walk into nodes that intersect the requested span. - if (node && ts.textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { - if (node.kind === ts.SyntaxKind.Identifier && node.getWidth() > 0) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol) { - var type = classifySymbol(symbol, getMeaningFromLocation(node)); - if (type) { - result.push({ - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - classificationType: type - }); - } - } - } - ts.forEachChild(node, processNode); - } - } - } - function getSyntacticClassifications(fileName, span) { - // doesn't use compiler - no need to synchronize with host - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getCurrentSourceFile(fileName); - // Make a scanner we can get trivia from. - var triviaScanner = ts.createScanner(ts.ScriptTarget.Latest, false, sourceFile.text); - var mergeConflictScanner = ts.createScanner(ts.ScriptTarget.Latest, false, sourceFile.text); - var result = []; - processElement(sourceFile); - return result; - function classifyLeadingTrivia(token) { - var tokenStart = ts.skipTrivia(sourceFile.text, token.pos, false); - if (tokenStart === token.pos) { - return; - } - // token has trivia. Classify them appropriately. - triviaScanner.setTextPos(token.pos); - while (true) { - var start = triviaScanner.getTextPos(); - var kind = triviaScanner.scan(); - var end = triviaScanner.getTextPos(); - var width = end - start; - if (ts.textSpanIntersectsWith(span, start, width)) { - if (!ts.isTrivia(kind)) { - return; - } - if (ts.isComment(kind)) { - // Simple comment. Just add as is. - result.push({ - textSpan: ts.createTextSpan(start, width), - classificationType: ClassificationTypeNames.comment - }); - continue; - } - if (kind === ts.SyntaxKind.ConflictMarkerTrivia) { - var text = sourceFile.text; - var ch = text.charCodeAt(start); - // for the <<<<<<< and >>>>>>> markers, we just add them in as comments - // in the classification stream. - if (ch === ts.CharacterCodes.lessThan || ch === ts.CharacterCodes.greaterThan) { - result.push({ - textSpan: ts.createTextSpan(start, width), - classificationType: ClassificationTypeNames.comment - }); - continue; - } - // for the ======== add a comment for the first line, and then lex all - // subsequent lines up until the end of the conflict marker. - ts.Debug.assert(ch === ts.CharacterCodes.equals); - classifyDisabledMergeCode(text, start, end); - } - } - } - } - function classifyDisabledMergeCode(text, start, end) { - for (var i = start; i < end; i++) { - if (ts.isLineBreak(text.charCodeAt(i))) { - break; - } - } - result.push({ - textSpan: ts.createTextSpanFromBounds(start, i), - classificationType: ClassificationTypeNames.comment - }); - mergeConflictScanner.setTextPos(i); - while (mergeConflictScanner.getTextPos() < end) { - classifyDisabledCodeToken(); - } - } - function classifyDisabledCodeToken() { - var start = mergeConflictScanner.getTextPos(); - var tokenKind = mergeConflictScanner.scan(); - var end = mergeConflictScanner.getTextPos(); - var type = classifyTokenType(tokenKind); - if (type) { - result.push({ - textSpan: ts.createTextSpanFromBounds(start, end), - classificationType: type - }); - } - } - function classifyToken(token) { - classifyLeadingTrivia(token); - if (token.getWidth() > 0) { - var type = classifyTokenType(token.kind, token); - if (type) { - result.push({ - textSpan: ts.createTextSpan(token.getStart(), token.getWidth()), - classificationType: type - }); - } - } - } - // for accurate classification, the actual token should be passed in. however, for - // cases like 'disabled merge code' classification, we just get the token kind and - // classify based on that instead. - function classifyTokenType(tokenKind, token) { - if (ts.isKeyword(tokenKind)) { - return ClassificationTypeNames.keyword; - } - // Special case < and > If they appear in a generic context they are punctuation, - // not operators. - if (tokenKind === ts.SyntaxKind.LessThanToken || tokenKind === ts.SyntaxKind.GreaterThanToken) { - // If the node owning the token has a type argument list or type parameter list, then - // we can effectively assume that a '<' and '>' belong to those lists. - if (token && ts.getTypeArgumentOrTypeParameterList(token.parent)) { - return ClassificationTypeNames.punctuation; - } - } - if (ts.isPunctuation(tokenKind)) { - if (token) { - if (tokenKind === ts.SyntaxKind.EqualsToken) { - // the '=' in a variable declaration is special cased here. - if (token.parent.kind === ts.SyntaxKind.VariableDeclaration || token.parent.kind === ts.SyntaxKind.PropertyDeclaration || token.parent.kind === ts.SyntaxKind.Parameter) { - return ClassificationTypeNames.operator; - } - } - if (token.parent.kind === ts.SyntaxKind.BinaryExpression || token.parent.kind === ts.SyntaxKind.PrefixUnaryExpression || token.parent.kind === ts.SyntaxKind.PostfixUnaryExpression || token.parent.kind === ts.SyntaxKind.ConditionalExpression) { - return ClassificationTypeNames.operator; - } - } - return ClassificationTypeNames.punctuation; - } - else if (tokenKind === ts.SyntaxKind.NumericLiteral) { - return ClassificationTypeNames.numericLiteral; - } - else if (tokenKind === ts.SyntaxKind.StringLiteral) { - return ClassificationTypeNames.stringLiteral; - } - else if (tokenKind === ts.SyntaxKind.RegularExpressionLiteral) { - // TODO: we should get another classification type for these literals. - return ClassificationTypeNames.stringLiteral; - } - else if (ts.isTemplateLiteralKind(tokenKind)) { - // TODO (drosen): we should *also* get another classification type for these literals. - return ClassificationTypeNames.stringLiteral; - } - else if (tokenKind === ts.SyntaxKind.Identifier) { - if (token) { - switch (token.parent.kind) { - case ts.SyntaxKind.ClassDeclaration: - if (token.parent.name === token) { - return ClassificationTypeNames.className; - } - return; - case ts.SyntaxKind.TypeParameter: - if (token.parent.name === token) { - return ClassificationTypeNames.typeParameterName; - } - return; - case ts.SyntaxKind.InterfaceDeclaration: - if (token.parent.name === token) { - return ClassificationTypeNames.interfaceName; - } - return; - case ts.SyntaxKind.EnumDeclaration: - if (token.parent.name === token) { - return ClassificationTypeNames.enumName; - } - return; - case ts.SyntaxKind.ModuleDeclaration: - if (token.parent.name === token) { - return ClassificationTypeNames.moduleName; - } - return; - } - } - return ClassificationTypeNames.text; - } - } - function processElement(element) { - // Ignore nodes that don't intersect the original span to classify. - if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { - var children = element.getChildren(); - for (var i = 0, n = children.length; i < n; i++) { - var child = children[i]; - if (ts.isToken(child)) { - classifyToken(child); - } - else { - // Recurse into our child nodes. - processElement(child); - } - } - } - } - } - function getOutliningSpans(filename) { - // doesn't use compiler - no need to synchronize with host - filename = ts.normalizeSlashes(filename); - var sourceFile = getCurrentSourceFile(filename); - return ts.OutliningElementsCollector.collectElements(sourceFile); - } - function getBraceMatchingAtPosition(filename, position) { - var sourceFile = getCurrentSourceFile(filename); - var result = []; - var token = ts.getTouchingToken(sourceFile, position); - if (token.getStart(sourceFile) === position) { - var matchKind = getMatchingTokenKind(token); - // Ensure that there is a corresponding token to match ours. - if (matchKind) { - var parentElement = token.parent; - var childNodes = parentElement.getChildren(sourceFile); - for (var i = 0, n = childNodes.length; i < n; i++) { - 33; - var current = childNodes[i]; - if (current.kind === matchKind) { - var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); - var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); - // We want to order the braces when we return the result. - if (range1.start < range2.start) { - result.push(range1, range2); - } - else { - result.push(range2, range1); - } - break; - } - } - } - } - return result; - function getMatchingTokenKind(token) { - switch (token.kind) { - case ts.SyntaxKind.OpenBraceToken: return ts.SyntaxKind.CloseBraceToken; - case ts.SyntaxKind.OpenParenToken: return ts.SyntaxKind.CloseParenToken; - case ts.SyntaxKind.OpenBracketToken: return ts.SyntaxKind.CloseBracketToken; - case ts.SyntaxKind.LessThanToken: return ts.SyntaxKind.GreaterThanToken; - case ts.SyntaxKind.CloseBraceToken: return ts.SyntaxKind.OpenBraceToken; - case ts.SyntaxKind.CloseParenToken: return ts.SyntaxKind.OpenParenToken; - case ts.SyntaxKind.CloseBracketToken: return ts.SyntaxKind.OpenBracketToken; - case ts.SyntaxKind.GreaterThanToken: return ts.SyntaxKind.LessThanToken; - } - return undefined; - } - } - function getIndentationAtPosition(filename, position, editorOptions) { - filename = ts.normalizeSlashes(filename); - var start = new Date().getTime(); - var sourceFile = getCurrentSourceFile(filename); - log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - var start = new Date().getTime(); - var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); - log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); - return result; - } - function getFormattingEditsForRange(fileName, start, end, options) { - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getCurrentSourceFile(fileName); - return ts.formatting.formatSelection(start, end, sourceFile, getRuleProvider(options), options); - } - function getFormattingEditsForDocument(fileName, options) { - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getCurrentSourceFile(fileName); - return ts.formatting.formatDocument(sourceFile, getRuleProvider(options), options); - } - function getFormattingEditsAfterKeystroke(fileName, position, key, options) { - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getCurrentSourceFile(fileName); - if (key === "}") { - return ts.formatting.formatOnClosingCurly(position, sourceFile, getRuleProvider(options), options); - } - else if (key === ";") { - return ts.formatting.formatOnSemicolon(position, sourceFile, getRuleProvider(options), options); - } - else if (key === "\n") { - return ts.formatting.formatOnEnter(position, sourceFile, getRuleProvider(options), options); - } - return []; - } - function getTodoComments(filename, descriptors) { - // Note: while getting todo comments seems like a syntactic operation, we actually - // treat it as a semantic operation here. This is because we expect our host to call - // this on every single file. If we treat this syntactically, then that will cause - // us to populate and throw away the tree in our syntax tree cache for each file. By - // treating this as a semantic operation, we can access any tree without throwing - // anything away. - synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); - cancellationToken.throwIfCancellationRequested(); - var fileContents = sourceFile.text; - cancellationToken.throwIfCancellationRequested(); - var result = []; - if (descriptors.length > 0) { - var regExp = getTodoCommentsRegExp(); - var matchArray; - while (matchArray = regExp.exec(fileContents)) { - cancellationToken.throwIfCancellationRequested(); - // If we got a match, here is what the match array will look like. Say the source text is: - // - // " // hack 1" - // - // The result array with the regexp: will be: - // - // ["// hack 1", "// ", "hack 1", undefined, "hack"] - // - // Here are the relevant capture groups: - // 0) The full match for the entire regexp. - // 1) The preamble to the message portion. - // 2) The message portion. - // 3...N) The descriptor that was matched - by index. 'undefined' for each - // descriptor that didn't match. an actual value if it did match. - // - // i.e. 'undefined' in position 3 above means TODO(jason) didn't match. - // "hack" in position 4 means HACK did match. - var firstDescriptorCaptureIndex = 3; - ts.Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); - var preamble = matchArray[1]; - var matchPosition = matchArray.index + preamble.length; - // OK, we have found a match in the file. This is only an acceptable match if - // it is contained within a comment. - var token = ts.getTokenAtPosition(sourceFile, matchPosition); - if (!isInsideComment(sourceFile, token, matchPosition)) { - continue; - } - var descriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; - } - } - ts.Debug.assert(descriptor !== undefined); - // We don't want to match something like 'TODOBY', so we make sure a non - // letter/digit follows the match. - if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) { - continue; - } - var message = matchArray[2]; - result.push({ - descriptor: descriptor, - message: message, - position: matchPosition - }); - } - } - return result; - function escapeRegExp(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); - } - function getTodoCommentsRegExp() { - // NOTE: ?: means 'non-capture group'. It allows us to have groups without having to - // filter them out later in the final result array. - // TODO comments can appear in one of the following forms: - // - // 1) // TODO or /////////// TODO - // - // 2) /* TODO or /********** TODO - // - // 3) /* - // * TODO - // */ - // - // The following three regexps are used to match the start of the text up to the TODO - // comment portion. - var singleLineCommentStart = /(?:\/\/+\s*)/.source; - var multiLineCommentStart = /(?:\/\*+\s*)/.source; - var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - // Match any of the above three TODO comment start regexps. - // Note that the outermost group *is* a capture group. We want to capture the preamble - // so that we can determine the starting position of the TODO comment match. - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - // Takes the descriptors and forms a regexp that matches them as if they were literals. - // For example, if the descriptors are "TODO(jason)" and "HACK", then this will be: - // - // (?:(TODO\(jason\))|(HACK)) - // - // Note that the outermost group is *not* a capture group, but the innermost groups - // *are* capture groups. By capturing the inner literals we can determine after - // matching which descriptor we are dealing with. - var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; - // After matching a descriptor literal, the following regexp matches the rest of the - // text up to the end of the line (or */). - var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; - var messageRemainder = /(?:.*?)/.source; - // This is the portion of the match we'll return as part of the TODO comment result. We - // match the literal portion up to the end of the line or end of comment. - var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; - // The final regexp will look like this: - // /((?:\/\/+\s*)|(?:\/\*+\s*)|(?:^(?:\s|\*)*))((?:(TODO\(jason\))|(HACK))(?:.*?))(?:$|\*\/)/gim - // The flags of the regexp are important here. - // 'g' is so that we are doing a global search and can find matches several times - // in the input. - // - // 'i' is for case insensitivity (We do this to match C# TODO comment code). - // - // 'm' is so we can find matches in a multi-line input. - return new RegExp(regExpString, "gim"); - } - function isLetterOrDigit(char) { - return (char >= ts.CharacterCodes.a && char <= ts.CharacterCodes.z) || (char >= ts.CharacterCodes.A && char <= ts.CharacterCodes.Z) || (char >= ts.CharacterCodes._0 && char <= ts.CharacterCodes._9); - } - } - function getRenameInfo(fileName, position) { - synchronizeHostData(); - fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); - var node = ts.getTouchingWord(sourceFile, position); - // Can only rename an identifier. - if (node && node.kind === ts.SyntaxKind.Identifier) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - // Only allow a symbol to be renamed if it actually has at least one declaration. - if (symbol && symbol.getDeclarations() && symbol.getDeclarations().length > 0) { - var kind = getSymbolKind(symbol, typeInfoResolver, node); - if (kind) { - return getRenameInfo(symbol.name, typeInfoResolver.getFullyQualifiedName(symbol), kind, getSymbolModifiers(symbol), ts.createTextSpan(node.getStart(), node.getWidth())); - } - } - } - return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key)); - function getRenameInfoError(localizedErrorMessage) { - return { - canRename: false, - localizedErrorMessage: ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key), - displayName: undefined, - fullDisplayName: undefined, - kind: undefined, - kindModifiers: undefined, - triggerSpan: undefined - }; - } - function getRenameInfo(displayName, fullDisplayName, kind, kindModifiers, triggerSpan) { - return { - canRename: true, - localizedErrorMessage: undefined, - displayName, - fullDisplayName, - kind, - kindModifiers, - triggerSpan - }; - } - } - return { - dispose, - cleanupSemanticCache, - getSyntacticDiagnostics, - getSemanticDiagnostics, - getCompilerOptionsDiagnostics, - getSyntacticClassifications, - getSemanticClassifications, - getCompletionsAtPosition, - getCompletionEntryDetails, - getSignatureHelpItems, - getQuickInfoAtPosition, - getDefinitionAtPosition, - getReferencesAtPosition, - getOccurrencesAtPosition, - getNameOrDottedNameSpan, - getBreakpointStatementAtPosition, - getNavigateToItems, - getRenameInfo, - findRenameLocations, - getNavigationBarItems, - getOutliningSpans, - getTodoComments, - getBraceMatchingAtPosition, - getIndentationAtPosition, - getFormattingEditsForRange, - getFormattingEditsForDocument, - getFormattingEditsAfterKeystroke, - getEmitOutput, - getSourceFile: getCurrentSourceFile, - }; - } - ts.createLanguageService = createLanguageService; - /// Classifier - function createClassifier() { - var scanner = ts.createScanner(ts.ScriptTarget.Latest, false); - /// We do not have a full parser support to know when we should parse a regex or not - /// If we consider every slash token to be a regex, we could be missing cases like "1/2/3", where - /// we have a series of divide operator. this list allows us to be more accurate by ruling out - /// locations where a regexp cannot exist. - var noRegexTable = []; - noRegexTable[ts.SyntaxKind.Identifier] = true; - noRegexTable[ts.SyntaxKind.StringLiteral] = true; - noRegexTable[ts.SyntaxKind.NumericLiteral] = true; - noRegexTable[ts.SyntaxKind.RegularExpressionLiteral] = true; - noRegexTable[ts.SyntaxKind.ThisKeyword] = true; - noRegexTable[ts.SyntaxKind.PlusPlusToken] = true; - noRegexTable[ts.SyntaxKind.MinusMinusToken] = true; - noRegexTable[ts.SyntaxKind.CloseParenToken] = true; - noRegexTable[ts.SyntaxKind.CloseBracketToken] = true; - noRegexTable[ts.SyntaxKind.CloseBraceToken] = true; - noRegexTable[ts.SyntaxKind.TrueKeyword] = true; - noRegexTable[ts.SyntaxKind.FalseKeyword] = true; - function isAccessibilityModifier(kind) { - switch (kind) { - case ts.SyntaxKind.PublicKeyword: - case ts.SyntaxKind.PrivateKeyword: - case ts.SyntaxKind.ProtectedKeyword: - return true; - } - return false; - } - /** Returns true if 'keyword2' can legally follow 'keyword1' in any language construct. */ - function canFollow(keyword1, keyword2) { - if (isAccessibilityModifier(keyword1)) { - if (keyword2 === ts.SyntaxKind.GetKeyword || keyword2 === ts.SyntaxKind.SetKeyword || keyword2 === ts.SyntaxKind.ConstructorKeyword || keyword2 === ts.SyntaxKind.StaticKeyword) { - // Allow things like "public get", "public constructor" and "public static". - // These are all legal. - return true; - } - // Any other keyword following "public" is actually an identifier an not a real - // keyword. - return false; - } - // Assume any other keyword combination is legal. This can be refined in the future - // if there are more cases we want the classifier to be better at. - return true; - } - // 'classifyKeywordsInGenerics' should be 'true' when a syntactic classifier is not present. - function getClassificationsForLine(text, lexState, classifyKeywordsInGenerics) { - var offset = 0; - var token = ts.SyntaxKind.Unknown; - var lastNonTriviaToken = ts.SyntaxKind.Unknown; - switch (lexState) { - case 3 /* InDoubleQuoteStringLiteral */: - text = '"\\\n' + text; - offset = 3; - break; - case 2 /* InSingleQuoteStringLiteral */: - text = "'\\\n" + text; - offset = 3; - break; - case 1 /* InMultiLineCommentTrivia */: - text = "/*\n" + text; - offset = 3; - break; - } - scanner.setText(text); - var result = { - finalLexState: 0 /* Start */, - entries: [] - }; - // We can run into an unfortunate interaction between the lexical and syntactic classifier - // when the user is typing something generic. Consider the case where the user types: - // - // Foo tokens. It's a weak heuristic, but should - // work well enough in practice. - var angleBracketStack = 0; - do { - token = scanner.scan(); - if (!ts.isTrivia(token)) { - if ((token === ts.SyntaxKind.SlashToken || token === ts.SyntaxKind.SlashEqualsToken) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === ts.SyntaxKind.RegularExpressionLiteral) { - token = ts.SyntaxKind.RegularExpressionLiteral; - } - } - else if (lastNonTriviaToken === ts.SyntaxKind.DotToken && isKeyword(token)) { - token = ts.SyntaxKind.Identifier; - } - else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { - // We have two keywords in a row. Only treat the second as a keyword if - // it's a sequence that could legally occur in the language. Otherwise - // treat it as an identifier. This way, if someone writes "private var" - // we recognize that 'var' is actually an identifier here. - token = ts.SyntaxKind.Identifier; - } - else if (lastNonTriviaToken === ts.SyntaxKind.Identifier && token === ts.SyntaxKind.LessThanToken) { - // Could be the start of something generic. Keep track of that by bumping - // up the current count of generic contexts we may be in. - angleBracketStack++; - } - else if (token === ts.SyntaxKind.GreaterThanToken && angleBracketStack > 0) { - // If we think we're currently in something generic, then mark that that - // generic entity is complete. - angleBracketStack--; - } - else if (token === ts.SyntaxKind.AnyKeyword || token === ts.SyntaxKind.StringKeyword || token === ts.SyntaxKind.NumberKeyword || token === ts.SyntaxKind.BooleanKeyword) { - if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { - // If it looks like we're could be in something generic, don't classify this - // as a keyword. We may just get overwritten by the syntactic classifier, - // causing a noisy experience for the user. - token = ts.SyntaxKind.Identifier; - } - } - lastNonTriviaToken = token; - } - processToken(); - } while (token !== ts.SyntaxKind.EndOfFileToken); - return result; - function processToken() { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); - addResult(end - start, classFromKind(token)); - if (end >= text.length) { - if (token === ts.SyntaxKind.StringLiteral) { - // Check to see if we finished up on a multiline string literal. - var tokenText = scanner.getTokenText(); - if (scanner.isUnterminated()) { - var lastCharIndex = tokenText.length - 1; - var numBackslashes = 0; - while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === ts.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 === ts.CharacterCodes.doubleQuote ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */; - } - } - } - else if (token === ts.SyntaxKind.MultiLineCommentTrivia) { - // Check to see if the multiline comment was unclosed. - if (scanner.isUnterminated()) { - result.finalLexState = 1 /* InMultiLineCommentTrivia */; - } - } - } - } - function addResult(length, classification) { - if (length > 0) { - // If this is the first classification we're adding to the list, then remove any - // offset we have if we were continuing a construct from the previous line. - if (result.entries.length === 0) { - length -= offset; - } - result.entries.push({ length: length, classification: classification }); - } - } - } - function isBinaryExpressionOperatorToken(token) { - switch (token) { - case ts.SyntaxKind.AsteriskToken: - case ts.SyntaxKind.SlashToken: - case ts.SyntaxKind.PercentToken: - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - case ts.SyntaxKind.LessThanLessThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken: - case ts.SyntaxKind.LessThanToken: - case ts.SyntaxKind.GreaterThanToken: - case ts.SyntaxKind.LessThanEqualsToken: - case ts.SyntaxKind.GreaterThanEqualsToken: - case ts.SyntaxKind.InstanceOfKeyword: - case ts.SyntaxKind.InKeyword: - case ts.SyntaxKind.EqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsToken: - case ts.SyntaxKind.EqualsEqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsEqualsToken: - case ts.SyntaxKind.AmpersandToken: - case ts.SyntaxKind.CaretToken: - case ts.SyntaxKind.BarToken: - case ts.SyntaxKind.AmpersandAmpersandToken: - case ts.SyntaxKind.BarBarToken: - case ts.SyntaxKind.BarEqualsToken: - case ts.SyntaxKind.AmpersandEqualsToken: - case ts.SyntaxKind.CaretEqualsToken: - case ts.SyntaxKind.LessThanLessThanEqualsToken: - case ts.SyntaxKind.GreaterThanGreaterThanEqualsToken: - case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken: - case ts.SyntaxKind.PlusEqualsToken: - case ts.SyntaxKind.MinusEqualsToken: - case ts.SyntaxKind.AsteriskEqualsToken: - case ts.SyntaxKind.SlashEqualsToken: - case ts.SyntaxKind.PercentEqualsToken: - case ts.SyntaxKind.EqualsToken: - case ts.SyntaxKind.CommaToken: - return true; - default: return false; - } - } - function isPrefixUnaryExpressionOperatorToken(token) { - switch (token) { - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - case ts.SyntaxKind.TildeToken: - case ts.SyntaxKind.ExclamationToken: - case ts.SyntaxKind.PlusPlusToken: - case ts.SyntaxKind.MinusMinusToken: - return true; - default: - return false; - } - } - function isKeyword(token) { - return token >= ts.SyntaxKind.FirstKeyword && token <= ts.SyntaxKind.LastKeyword; - } - function classFromKind(token) { - if (isKeyword(token)) { - return 1 /* Keyword */; - } - else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { - return 2 /* Operator */; - } - else if (token >= ts.SyntaxKind.FirstPunctuation && token <= ts.SyntaxKind.LastPunctuation) { - return 0 /* Punctuation */; - } - switch (token) { - case ts.SyntaxKind.NumericLiteral: - return 6 /* NumberLiteral */; - case ts.SyntaxKind.StringLiteral: - return 7 /* StringLiteral */; - case ts.SyntaxKind.RegularExpressionLiteral: - return 8 /* RegExpLiteral */; - case ts.SyntaxKind.ConflictMarkerTrivia: - case ts.SyntaxKind.MultiLineCommentTrivia: - case ts.SyntaxKind.SingleLineCommentTrivia: - return 3 /* Comment */; - case ts.SyntaxKind.WhitespaceTrivia: - return 4 /* Whitespace */; - case ts.SyntaxKind.Identifier: - default: - return 5 /* Identifier */; - } - } - return { getClassificationsForLine }; - } - ts.createClassifier = createClassifier; - /** - * Get the path of the default library file (lib.d.ts) as distributed with the typescript - * node package. - * The functionality is not supported if the ts module is consumed outside of a node module. - */ - function getDefaultLibraryFilePath(options) { - if (typeof module !== "undefined" && module.exports) { - return __dirname + ts.directorySeparator + ts.getDefaultLibraryFilename(options); - } - throw new Error("getDefaultLibraryFilename is only supported when consumed as a node module. "); - } - ts.getDefaultLibraryFilePath = getDefaultLibraryFilePath; - function initializeServices() { - ts.objectAllocator = { - getNodeConstructor: function (kind) { - function Node() { - } - var proto = kind === ts.SyntaxKind.SourceFile ? new SourceFileObject() : new NodeObject(); - proto.kind = kind; - proto.pos = 0; - proto.end = 0; - proto.flags = 0; - proto.parent = undefined; - Node.prototype = proto; - return Node; - }, - getSymbolConstructor: function () { return SymbolObject; }, - getTypeConstructor: function () { return TypeObject; }, - getSignatureConstructor: function () { return SignatureObject; }, - }; - } - initializeServices(); -})(ts || (ts = {})); From e4d30515323724f3884de8f29e21a418473857ca Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 27 Jan 2015 22:39:48 -0800 Subject: [PATCH 109/211] Added Jason's example for contextually typing parameters. --- .../superCallParameterContextualTyping3.js | 67 +++++++++++++++++ .../superCallParameterContextualTyping3.types | 73 +++++++++++++++++++ .../superCallParameterContextualTyping3.ts | 31 ++++++++ 3 files changed, 171 insertions(+) create mode 100644 tests/baselines/reference/superCallParameterContextualTyping3.js create mode 100644 tests/baselines/reference/superCallParameterContextualTyping3.types create mode 100644 tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts diff --git a/tests/baselines/reference/superCallParameterContextualTyping3.js b/tests/baselines/reference/superCallParameterContextualTyping3.js new file mode 100644 index 00000000000..e33bcb29bb8 --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping3.js @@ -0,0 +1,67 @@ +//// [superCallParameterContextualTyping3.ts] +interface ContextualType { + method(parameter: T): void; +} + +class CBase { + constructor(param: ContextualType) { + } + + foo(param: ContextualType) { + } +} + +class C extends CBase { + constructor() { + // Should be okay. + // 'p' should have type 'string'. + super({ + method(p) { + p.length; + } + }); + + // Should be okay. + // 'p' should have type 'string'. + super.foo({ + method(p) { + p.length; + } + }); + } +} + +//// [superCallParameterContextualTyping3.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 CBase = (function () { + function CBase(param) { + } + CBase.prototype.foo = function (param) { + }; + return CBase; +})(); +var C = (function (_super) { + __extends(C, _super); + function C() { + // Should be okay. + // 'p' should have type 'string'. + _super.call(this, { + method: function (p) { + p.length; + } + }); + // Should be okay. + // 'p' should have type 'string'. + _super.prototype.foo.call(this, { + method: function (p) { + p.length; + } + }); + } + return C; +})(CBase); diff --git a/tests/baselines/reference/superCallParameterContextualTyping3.types b/tests/baselines/reference/superCallParameterContextualTyping3.types new file mode 100644 index 00000000000..4a8515d110c --- /dev/null +++ b/tests/baselines/reference/superCallParameterContextualTyping3.types @@ -0,0 +1,73 @@ +=== tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts === +interface ContextualType { +>ContextualType : ContextualType +>T : T + + method(parameter: T): void; +>method : (parameter: T) => void +>parameter : T +>T : T +} + +class CBase { +>CBase : CBase +>T : T + + constructor(param: ContextualType) { +>param : ContextualType +>ContextualType : ContextualType +>T : T + } + + foo(param: ContextualType) { +>foo : (param: ContextualType) => void +>param : ContextualType +>ContextualType : ContextualType +>T : T + } +} + +class C extends CBase { +>C : C +>CBase : CBase + + constructor() { + // Should be okay. + // 'p' should have type 'string'. + super({ +>super({ method(p) { p.length; } }) : void +>super : typeof CBase +>{ method(p) { p.length; } } : { method(p: string): void; } + + method(p) { +>method : (p: string) => void +>p : string + + p.length; +>p.length : number +>p : string +>length : number + } + }); + + // Should be okay. + // 'p' should have type 'string'. + super.foo({ +>super.foo({ method(p) { p.length; } }) : void +>super.foo : (param: ContextualType) => void +>super : CBase +>foo : (param: ContextualType) => void +>{ method(p) { p.length; } } : { method(p: string): void; } + + method(p) { +>method : (p: string) => void +>p : string + + p.length; +>p.length : number +>p : string +>length : number + } + }); + } +} diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts new file mode 100644 index 00000000000..760337f3efa --- /dev/null +++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts @@ -0,0 +1,31 @@ +interface ContextualType { + method(parameter: T): void; +} + +class CBase { + constructor(param: ContextualType) { + } + + foo(param: ContextualType) { + } +} + +class C extends CBase { + constructor() { + // Should be okay. + // 'p' should have type 'string'. + super({ + method(p) { + p.length; + } + }); + + // Should be okay. + // 'p' should have type 'string'. + super.foo({ + method(p) { + p.length; + } + }); + } +} \ No newline at end of file From 9628191a1476bc0dbdb28bfd30b840656ffc26a3 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 00:08:05 -0800 Subject: [PATCH 110/211] Allow the LS API to resolve referenced files --- src/harness/harnessLanguageService.ts | 22 ++- src/services/services.ts | 238 +++++++++++++------------- src/services/shims.ts | 8 +- 3 files changed, 146 insertions(+), 122 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 8107af053a4..4d7572d9f30 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -156,13 +156,17 @@ module Harness.LanguageService { } private getScriptInfo(fileName: string): ScriptInfo { - return this.fileNameToScript[fileName]; + return ts.lookUp(this.fileNameToScript, fileName); } public addScript(fileName: string, content: string) { this.fileNameToScript[fileName] = new ScriptInfo(fileName, content); } + private contains(fileName: string): boolean { + return ts.hasProperty(this.fileNameToScript, fileName); + } + public updateScript(fileName: string, content: string) { var script = this.getScriptInfo(fileName); if (script !== null) { @@ -214,18 +218,28 @@ module Harness.LanguageService { return ""; } + public getDefaultLibFilename(): string { + return ""; + } + public getScriptFileNames(): string { var fileNames: string[] = []; - ts.forEachKey(this.fileNameToScript, (fileName) => { fileNames.push(fileName); }); + ts.forEachKey(this.fileNameToScript,(fileName) => { fileNames.push(fileName); }); return JSON.stringify(fileNames); } public getScriptSnapshot(fileName: string): ts.ScriptSnapshotShim { - return new ScriptSnapshotShim(this.getScriptInfo(fileName)); + if (this.contains(fileName)) { + return new ScriptSnapshotShim(this.getScriptInfo(fileName)); + } + return undefined; } public getScriptVersion(fileName: string): string { - return this.getScriptInfo(fileName).version.toString(); + if (this.contains(fileName)) { + return this.getScriptInfo(fileName).version.toString(); + } + return undefined; } public getLocalizedDiagnosticMessages(): string { diff --git a/src/services/services.ts b/src/services/services.ts index 657207efa8e..129d6d6289b 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -862,6 +862,7 @@ module ts { getLocalizedDiagnosticMessages?(): any; getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; + getDefaultLibFilename(options: CompilerOptions): string; log? (s: string): void; trace? (s: string): void; error? (s: string): void; @@ -1319,9 +1320,9 @@ module ts { // Information about a specific host file. interface HostFileInformation { - filename: string; + hostFilename: string; version: string; - sourceText?: IScriptSnapshot; + scriptSnapshot: IScriptSnapshot; } interface DocumentRegistryEntry { @@ -1409,15 +1410,13 @@ module ts { // script id => script index this.filenameToEntry = {}; - var filenames = host.getScriptFileNames(); - for (var i = 0, n = filenames.length; i < n; i++) { - var filename = filenames[i]; - this.filenameToEntry[normalizeSlashes(filename)] = { - filename: filename, - version: host.getScriptVersion(filename) - }; + // Initialize the list with the root file names + var rootFilenames = host.getScriptFileNames(); + for (var i = 0, n = rootFilenames.length; i < n; i++) { + this.createEntry(rootFilenames[i]); } + // store the compilation settings this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); } @@ -1425,28 +1424,41 @@ module ts { return this._compilationSettings; } + private createEntry(filename: string) { + var entry: HostFileInformation; + var scriptSnapshot = this.host.getScriptSnapshot(filename); + if (scriptSnapshot) { + entry = { + hostFilename: filename, + version: this.host.getScriptVersion(filename), + scriptSnapshot: scriptSnapshot + }; + } + + return this.filenameToEntry[normalizeSlashes(filename)] = entry; + } + public getEntry(filename: string): HostFileInformation { - filename = normalizeSlashes(filename); - return lookUp(this.filenameToEntry, filename); + return lookUp(this.filenameToEntry, normalizeSlashes(filename)); } public contains(filename: string): boolean { - return !!this.getEntry(filename); + return hasProperty(this.filenameToEntry, normalizeSlashes(filename)); } - public getHostfilename(filename: string) { - var hostCacheEntry = this.getEntry(filename); - if (hostCacheEntry) { - return hostCacheEntry.filename; + public getOrCreateEntry(filename: string): HostFileInformation { + if (this.contains(filename)) { + return this.getEntry(filename); } - return filename; + + return this.createEntry(filename); } - public getFilenames(): string[] { + public getRootFilenames(): string[] { var fileNames: string[] = []; forEachKey(this.filenameToEntry, key => { - if (hasProperty(this.filenameToEntry, key)) + if (hasProperty(this.filenameToEntry, key) && this.filenameToEntry[key]) fileNames.push(key); }); @@ -1454,15 +1466,13 @@ module ts { } public getVersion(filename: string): string { - return this.getEntry(filename).version; + var file = this.getEntry(filename); + return file && file.version; } public getScriptSnapshot(filename: string): IScriptSnapshot { var file = this.getEntry(filename); - if (!file.sourceText) { - file.sourceText = this.host.getScriptSnapshot(file.filename); - } - return file.sourceText; + return file && file.scriptSnapshot; } public getChangeRange(filename: string, lastKnownVersion: string, oldScriptSnapshot: IScriptSnapshot): TextChangeRange { @@ -1918,14 +1928,12 @@ module ts { export function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry): LanguageService { var syntaxTreeCache: SyntaxTreeCache = new SyntaxTreeCache(host); var ruleProvider: formatting.RulesProvider; - var hostCache: HostCache; // A cache of all the information about the files on the host side. var program: Program; // this checker is used to answer all LS questions except errors var typeInfoResolver: TypeChecker; var useCaseSensitivefilenames = false; - var sourceFilesByName: Map = {}; var documentRegistry = documentRegistry; var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); var activeCompletionSession: CompletionSession; // The current active completion session, used to get the completion entry details @@ -1946,7 +1954,7 @@ module ts { } function getSourceFile(filename: string): SourceFile { - return lookUp(sourceFilesByName, getCanonicalFileName(filename)); + return program.getSourceFile(getCanonicalFileName(filename)); } function getDiagnosticsProducingTypeChecker() { @@ -1963,112 +1971,108 @@ module ts { return ruleProvider; } - function sourceFileUpToDate(sourceFile: SourceFile): boolean { - return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename); - } - - function programUpToDate(): boolean { - // If we haven't create a program yet, then it is not up-to-date - if (!program) { - return false; - } - - // If number of files in the program do not match, it is not up-to-date - var hostFilenames = hostCache.getFilenames(); - if (program.getSourceFiles().length !== hostFilenames.length) { - return false; - } - - // If any file is not up-to-date, then the whole program is not up-to-date - for (var i = 0, n = hostFilenames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(hostFilenames[i]))) { - return false; - } - } - - // If the compilation settings do no match, then the program is not up-to-date - return compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); - } - function synchronizeHostData(): void { - // Reset the cache at start of every refresh - hostCache = new HostCache(host); + // Get a fresh cache of the host information + var hostCache = new HostCache(host); // If the program is already up-to-date, we can reuse it if (programUpToDate()) { return; } - var compilationSettings = hostCache.compilationSettings(); - - // Now, remove any files from the compiler that are no longer in the host. - var oldProgram = program; - if (oldProgram) { - var oldSettings = program.getCompilerOptions(); - // If the language version changed, then that affects what types of things we parse. So - // we have to dump all syntax trees. - // TODO: handle propagateEnumConstants - // TODO: is module still needed - var settingsChangeAffectsSyntax = oldSettings.target !== compilationSettings.target || oldSettings.module !== compilationSettings.module; - - var changesInCompilationSettingsAffectSyntax = - oldSettings && compilationSettings && !compareDataObjects(oldSettings, compilationSettings) && settingsChangeAffectsSyntax; - var oldSourceFiles = program.getSourceFiles(); - - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - cancellationToken.throwIfCancellationRequested(); - var filename = oldSourceFiles[i].filename; - if (!hostCache.contains(filename) || changesInCompilationSettingsAffectSyntax) { - documentRegistry.releaseDocument(filename, oldSettings); - delete sourceFilesByName[getCanonicalFileName(filename)]; - } - } - } - - // Now, for every file the host knows about, either add the file (if the compiler - // doesn't know about it.). Or notify the compiler about any changes (if it does - // know about it.) - var hostfilenames = hostCache.getFilenames(); - for (var i = 0, n = hostfilenames.length; i < n; i++) { - var filename = hostfilenames[i]; - - var version = hostCache.getVersion(filename); - var scriptSnapshot = hostCache.getScriptSnapshot(filename); - - var sourceFile: SourceFile = getSourceFile(filename); - if (sourceFile) { - // - // If the sourceFile is the same, assume no update - // - if (sourceFileUpToDate(sourceFile)) { - continue; - } - - var textChangeRange: TextChangeRange = null; - textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); - - sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, textChangeRange); - } - else { - sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version); - } - - // Remember the new sourceFile - sourceFilesByName[getCanonicalFileName(filename)] = sourceFile; - } + var oldSettings = program && program.getCompilerOptions(); + var newSettings = hostCache.compilationSettings(); + var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; // Now create a new compiler - program = createProgram(hostfilenames, compilationSettings, { - getSourceFile, + var newProgram = createProgram(hostCache.getRootFilenames(), newSettings, { + getSourceFile: getOrCreateSourceFile, getCancellationToken: () => cancellationToken, - getCanonicalFileName: filename => useCaseSensitivefilenames ? filename : filename.toLowerCase(), + getCanonicalFileName: (filename) => useCaseSensitivefilenames ? filename : filename.toLowerCase(), useCaseSensitiveFileNames: () => useCaseSensitivefilenames, getNewLine: () => host.getNewLine ? host.getNewLine() : "\r\n", - getDefaultLibFilename, + getDefaultLibFilename: (options) => host.getDefaultLibFilename(options), writeFile: (filename, data, writeByteOrderMark) => { }, getCurrentDirectory: () => host.getCurrentDirectory() }); + + // Release any files we have acquired in the old program but are + // not part of the new program. + if (program) { + var oldSourceFiles = program.getSourceFiles(); + for (var i = 0, n = oldSourceFiles.length; i < n; i++) { + var filename = oldSourceFiles[i].filename; + if (!newProgram.getSourceFile(filename) || changesInCompilationSettingsAffectSyntax) { + documentRegistry.releaseDocument(filename, oldSettings); + } + } + } + + program = newProgram; typeInfoResolver = program.getTypeChecker(/*produceDiagnostics*/ false); + + return; + + function getOrCreateSourceFile(filename: string): SourceFile { + cancellationToken.throwIfCancellationRequested(); + + // The program is asking for this file, check first if the host can locate it. + // If the host can not locate the file, then it does not exist. return undefined + // to the program to allow reporting of errors for missing files. + var hostFileInformation = hostCache.getOrCreateEntry(filename); + if (!hostFileInformation) { + return undefined; + } + + // Check if the language version has changed since we last created a program; if they are the same, + // it is safe to reuse the souceFiles; if not, then the shape of the AST can change, and the oldSourceFile + // can not be reused. we have to dump all syntax trees and create new ones. + if (!changesInCompilationSettingsAffectSyntax) { + + // Check if the old program had this file already + var oldSourceFile = program && program.getSourceFile(filename); + if (oldSourceFile) { + // This SourceFile is safe to reuse, return it + if (sourceFileUpToDate(oldSourceFile)) { + return oldSourceFile; + } + + // We have an older version of the sourceFile, incrementally parse the changes + var textChangeRange = hostCache.getChangeRange(filename, oldSourceFile.version, oldSourceFile.scriptSnapshot); + return documentRegistry.updateDocument(oldSourceFile, filename, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version, textChangeRange); + } + } + + // Could not find this file in the old program, create a new SourceFile for it. + return documentRegistry.acquireDocument(filename, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); + } + + function sourceFileUpToDate(sourceFile: SourceFile): boolean { + return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename); + } + + function programUpToDate(): boolean { + // If we haven't create a program yet, then it is not up-to-date + if (!program) { + return false; + } + + // If number of files in the program do not match, it is not up-to-date + var rootFilenames = hostCache.getRootFilenames(); + if (program.getSourceFiles().length !== rootFilenames.length) { + return false; + } + + // If any file is not up-to-date, then the whole program is not up-to-date + for (var i = 0, n = rootFilenames.length; i < n; i++) { + if (!sourceFileUpToDate(program.getSourceFile(rootFilenames[i]))) { + return false; + } + } + + // If the compilation settings do no match, then the program is not up-to-date + return compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); + } } /** diff --git a/src/services/shims.ts b/src/services/shims.ts index 4d3d90cd0fa..9e042c05a93 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -54,6 +54,7 @@ module ts { getLocalizedDiagnosticMessages(): string; getCancellationToken(): CancellationToken; getCurrentDirectory(): string; + getDefaultLibFilename(options: string): string; } /// @@ -243,7 +244,8 @@ module ts { } public getScriptSnapshot(fileName: string): IScriptSnapshot { - return new ScriptSnapshotShimAdapter(this.shimHost.getScriptSnapshot(fileName)); + var scriptSnapshot = this.shimHost.getScriptSnapshot(fileName); + return scriptSnapshot && new ScriptSnapshotShimAdapter(scriptSnapshot); } public getScriptVersion(fileName: string): string { @@ -272,6 +274,10 @@ module ts { public getCurrentDirectory(): string { return this.shimHost.getCurrentDirectory(); } + + public getDefaultLibFilename(options: CompilerOptions): string { + return this.shimHost.getDefaultLibFilename(JSON.stringify(options)); + } } function simpleForwardCall(logger: Logger, actionDescription: string, action: () => any): any { From d6decf82e1fde4a688b27f87e4c9a6b61e7c04d1 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 00:13:28 -0800 Subject: [PATCH 111/211] Expose underlying program from the LS --- src/services/services.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/services/services.ts b/src/services/services.ts index 129d6d6289b..14f7afd52ca 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -914,6 +914,8 @@ module ts { getEmitOutput(fileName: string): EmitOutput; + getProgram(): Program; + getSourceFile(filename: string): SourceFile; dispose(): void; @@ -2075,6 +2077,12 @@ module ts { } } + function getProgram(): Program { + synchronizeHostData(); + + return program; + } + /** * Clean up any semantic caches that are not needed. * The host can call this method if it wants to jettison unused memory. @@ -5444,6 +5452,7 @@ module ts { getFormattingEditsAfterKeystroke, getEmitOutput, getSourceFile: getCurrentSourceFile, + getProgram }; } From fe836c5639597c55694ed8946ce6b36ccde962aa Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 10:37:35 -0800 Subject: [PATCH 112/211] make documentRegistry optional argument to createLanguageService --- src/services/services.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 14f7afd52ca..c8b947161b2 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1927,16 +1927,14 @@ module ts { }); } - export function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry): LanguageService { + export function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry = createDocumentRegistry()): LanguageService { var syntaxTreeCache: SyntaxTreeCache = new SyntaxTreeCache(host); var ruleProvider: formatting.RulesProvider; var program: Program; // this checker is used to answer all LS questions except errors var typeInfoResolver: TypeChecker; - var useCaseSensitivefilenames = false; - var documentRegistry = documentRegistry; var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); var activeCompletionSession: CompletionSession; // The current active completion session, used to get the completion entry details From e503f382722451077bb9889a5df5f21ce2a8b3ae Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 10:48:21 -0800 Subject: [PATCH 113/211] Remove unused IScriptSnapshot.getLineStartPositions --- src/harness/fourslash.ts | 3 --- src/harness/harnessLanguageService.ts | 8 -------- src/services/services.ts | 15 --------------- src/services/shims.ts | 11 ----------- 4 files changed, 37 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 3987fdb6ffa..e0b74318e26 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -237,9 +237,6 @@ module FourSlash { getLength: () => { return sourceText.length; }, - getLineStartPositions: () => { - return []; - }, getChangeRange: (oldSnapshot: ts.IScriptSnapshot) => { return undefined; } diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 4d7572d9f30..1d442822866 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -72,14 +72,6 @@ module Harness.LanguageService { return this.textSnapshot.length; } - public getLineStartPositions(): string { - if (this.lineMap === null) { - this.lineMap = ts.computeLineStarts(this.textSnapshot); - } - - return JSON.stringify(this.lineMap); - } - public getChangeRange(oldScript: ts.ScriptSnapshotShim): string { var oldShim = oldScript; var range = this.scriptInfo.getTextChangeRangeBetweenVersions(oldShim.version, this.version); diff --git a/src/services/services.ts b/src/services/services.ts index c8b947161b2..c188ff84a22 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -74,13 +74,6 @@ module ts { /** Gets the length of this script snapshot. */ getLength(): number; - /** - * This call returns the array containing the start position of every line. - * i.e."[0, 10, 55]". TODO: consider making this optional. The language service could - * always determine this (albeit in a more expensive manner). - */ - getLineStartPositions(): number[]; - /** * Gets the TextChangeRange that describe how the text changed between this text and * an older version. This information is used by the incremental parser to determine @@ -106,14 +99,6 @@ module ts { return this.text.length; } - public getLineStartPositions(): number[] { - if (!this._lineStartPositions) { - this._lineStartPositions = computeLineStarts(this.text); - } - - return this._lineStartPositions; - } - public getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange { // Text-based snapshots do not support incremental parsing. Return undefined // to signal that to the caller. diff --git a/src/services/shims.ts b/src/services/shims.ts index 9e042c05a93..c9f33914e09 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -25,9 +25,6 @@ module ts { /** Gets the length of this script snapshot. */ getLength(): number; - /** This call returns the JSON-encoded array of the type: number[] */ - getLineStartPositions(): string; - /** * Returns a JSON-encoded value of the type: * { span: { start: number; length: number }; newLength: number } @@ -192,14 +189,6 @@ module ts { return this.scriptSnapshotShim.getLength(); } - public getLineStartPositions(): number[] { - if (this.lineStartPositions == null) { - this.lineStartPositions = JSON.parse(this.scriptSnapshotShim.getLineStartPositions()); - } - - return this.lineStartPositions; - } - public getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange { var oldSnapshotShim = oldSnapshot; var encoded = this.scriptSnapshotShim.getChangeRange(oldSnapshotShim.scriptSnapshotShim); From d593902d5ed0711b16aca4c4e578b3e667b24c88 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 11:28:34 -0800 Subject: [PATCH 114/211] Add documentation to DocumentRegistry --- src/services/services.ts | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/services/services.ts b/src/services/services.ts index c188ff84a22..0a701b0006d 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1155,13 +1155,62 @@ module ts { getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ export interface DocumentRegistry { + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ acquireDocument( filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ updateDocument( sourceFile: SourceFile, filename: string, @@ -1170,6 +1219,15 @@ module ts { version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ releaseDocument(filename: string, compilationSettings: CompilerOptions): void } From ca3c1ed543cb4fb0f8d71181d03d2c41ed35f1e9 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 16:10:15 -0800 Subject: [PATCH 115/211] Address the issue that arrow function doesn't have arguments objects --- src/compiler/checker.ts | 10 + .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 3818 +++++++++-------- src/harness/harness.ts | 2 +- src/harness/loggedIO.ts | 2 +- 5 files changed, 1924 insertions(+), 1909 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ba271e72687..fdad2277f0a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4836,6 +4836,16 @@ module ts { function checkIdentifier(node: Identifier): Type { var symbol = getResolvedSymbol(node); + // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. + // Although in down-level emit of arrow function, we emit it using function expression which means that + // arguments objects will be inner bound while emitting arrow function natively in ES6, arguments objects + // will be bound to non-arrow function that contain this arrow function. This results in inconsistent bahaviour. + // To avoid that we will give an error to users if they use arguments objects in arrow function so that they + // can explicitly bound arguments objects + if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { + error(node, Diagnostics.An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); + } + if (symbol.flags & SymbolFlags.Import) { var symbolLinks = getSymbolLinks(symbol); if (!symbolLinks.referenced) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index f333520733e..5f9c0a2d4fc 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -452,5 +452,6 @@ module ts { 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.", isEarly: true }, Generators_are_not_currently_supported: { code: 9001, category: DiagnosticCategory.Error, key: "Generators are not currently supported.", isEarly: true }, + An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead: { code: 9002, category: DiagnosticCategory.Error, key: "An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead" }, }; } \ No newline at end of file diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 49ee8eebcd9..b5763adf47e 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1,1912 +1,1916 @@ { - "Unterminated string literal.": { - "category": "Error", - "code": 1002 - }, - "Identifier expected.": { - "category": "Error", - "code": 1003 - }, - "'{0}' expected.": { - "category": "Error", - "code": 1005, - "isEarly": true - }, - "A file cannot have a reference to itself.": { - "category": "Error", - "code": 1006 - }, - "Trailing comma not allowed.": { - "category": "Error", - "code": 1009, - "isEarly": true - }, - "'*/' expected.": { - "category": "Error", - "code": 1010 - }, - "Unexpected token.": { - "category": "Error", - "code": 1012 - }, - "Catch clause parameter cannot have a type annotation.": { - "category": "Error", - "code": 1013, - "isEarly": true - }, - "A rest parameter must be last in a parameter list.": { - "category": "Error", - "code": 1014, - "isEarly": true - }, - "Parameter cannot have question mark and initializer.": { - "category": "Error", - "code": 1015, - "isEarly": true - }, - "A required parameter cannot follow an optional parameter.": { - "category": "Error", - "code": 1016, - "isEarly": true - }, - "An index signature cannot have a rest parameter.": { - "category": "Error", - "code": 1017, - "isEarly": true - }, - "An index signature parameter cannot have an accessibility modifier.": { - "category": "Error", - "code": 1018, - "isEarly": true - }, - "An index signature parameter cannot have a question mark.": { - "category": "Error", - "code": 1019, - "isEarly": true - }, - "An index signature parameter cannot have an initializer.": { - "category": "Error", - "code": 1020, - "isEarly": true - }, - "An index signature must have a type annotation.": { - "category": "Error", - "code": 1021, - "isEarly": true - }, - "An index signature parameter must have a type annotation.": { - "category": "Error", - "code": 1022, - "isEarly": true - }, - "An index signature parameter type must be 'string' or 'number'.": { - "category": "Error", - "code": 1023, - "isEarly": true - }, - "A class or interface declaration can only have one 'extends' clause.": { - "category": "Error", - "code": 1024 - }, - "An 'extends' clause must precede an 'implements' clause.": { - "category": "Error", - "code": 1025 - }, - "A class can only extend a single class.": { - "category": "Error", - "code": 1026 - }, - "A class declaration can only have one 'implements' clause.": { - "category": "Error", - "code": 1027 - }, - "Accessibility modifier already seen.": { - "category": "Error", - "code": 1028, - "isEarly": true - }, - "'{0}' modifier must precede '{1}' modifier.": { - "category": "Error", - "code": 1029, - "isEarly": true - }, - "'{0}' modifier already seen.": { - "category": "Error", - "code": 1030, - "isEarly": true - }, - "'{0}' modifier cannot appear on a class element.": { - "category": "Error", - "code": 1031, - "isEarly": true - }, - "An interface declaration cannot have an 'implements' clause.": { - "category": "Error", - "code": 1032 - }, - "'super' must be followed by an argument list or member access.": { - "category": "Error", - "code": 1034 - }, - "Only ambient modules can use quoted names.": { - "category": "Error", - "code": 1035, - "isEarly": true - }, - "Statements are not allowed in ambient contexts.": { - "category": "Error", - "code": 1036, - "isEarly": true - }, - "A 'declare' modifier cannot be used in an already ambient context.": { - "category": "Error", - "code": 1038, - "isEarly": true - }, - "Initializers are not allowed in ambient contexts.": { - "category": "Error", - "code": 1039, - "isEarly": true - }, - "'{0}' modifier cannot appear on a module element.": { - "category": "Error", - "code": 1044, - "isEarly": true - }, - "A 'declare' modifier cannot be used with an interface declaration.": { - "category": "Error", - "code": 1045, - "isEarly": true - }, - "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { - "category": "Error", - "code": 1046 - }, - "A rest parameter cannot be optional.": { - "category": "Error", - "code": 1047, - "isEarly": true - }, - "A rest parameter cannot have an initializer.": { - "category": "Error", - "code": 1048, - "isEarly": true - }, - "A 'set' accessor must have exactly one parameter.": { - "category": "Error", - "code": 1049, - "isEarly": true - }, - "A 'set' accessor cannot have an optional parameter.": { - "category": "Error", - "code": 1051, - "isEarly": true - }, - "A 'set' accessor parameter cannot have an initializer.": { - "category": "Error", - "code": 1052, - "isEarly": true - }, - "A 'set' accessor cannot have rest parameter.": { - "category": "Error", - "code": 1053, - "isEarly": true - }, - "A 'get' accessor cannot have parameters.": { - "category": "Error", - "code": 1054, - "isEarly": true - }, - "Accessors are only available when targeting ECMAScript 5 and higher.": { - "category": "Error", - "code": 1056, - "isEarly": true - }, - "Enum member must have initializer.": { - "category": "Error", - "code": 1061, - "isEarly": true - }, - "An export assignment cannot be used in an internal module.": { - "category": "Error", - "code": 1063, - "isEarly": true - }, - "Ambient enum elements can only have integer literal initializers.": { - "category": "Error", - "code": 1066, - "isEarly": true - }, - "Unexpected token. A constructor, method, accessor, or property was expected.": { - "category": "Error", - "code": 1068 - }, - "A 'declare' modifier cannot be used with an import declaration.": { - "category": "Error", - "code": 1079, - "isEarly": true - }, - "Invalid 'reference' directive syntax.": { - "category": "Error", - "code": 1084 - }, - "Octal literals are not available when targeting ECMAScript 5 and higher.": { - "category": "Error", - "code": 1085, - "isEarly": true - }, - "An accessor cannot be declared in an ambient context.": { - "category": "Error", - "code": 1086, - "isEarly": true - }, - "'{0}' modifier cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1089, - "isEarly": true - }, - "'{0}' modifier cannot appear on a parameter.": { - "category": "Error", - "code": 1090, - "isEarly": true - }, - "Only a single variable declaration is allowed in a 'for...in' statement.": { - "category": "Error", - "code": 1091, - "isEarly": true - }, - "Type parameters cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1092, - "isEarly": true - }, - "Type annotation cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1093, - "isEarly": true - }, - "An accessor cannot have type parameters.": { - "category": "Error", - "code": 1094, - "isEarly": true - }, - "A 'set' accessor cannot have a return type annotation.": { - "category": "Error", - "code": 1095, - "isEarly": true - }, - "An index signature must have exactly one parameter.": { - "category": "Error", - "code": 1096, - "isEarly": true - }, - "'{0}' list cannot be empty.": { - "category": "Error", - "code": 1097, - "isEarly": true - }, - "Type parameter list cannot be empty.": { - "category": "Error", - "code": 1098, - "isEarly": true - }, - "Type argument list cannot be empty.": { - "category": "Error", - "code": 1099, - "isEarly": true - }, - "Invalid use of '{0}' in strict mode.": { - "category": "Error", - "code": 1100, - "isEarly": true - }, - "'with' statements are not allowed in strict mode.": { - "category": "Error", - "code": 1101, - "isEarly": true - }, - "'delete' cannot be called on an identifier in strict mode.": { - "category": "Error", - "code": 1102, - "isEarly": true - }, - "A 'continue' statement can only be used within an enclosing iteration statement.": { - "category": "Error", - "code": 1104, - "isEarly": true - }, - "A 'break' statement can only be used within an enclosing iteration or switch statement.": { - "category": "Error", - "code": 1105, - "isEarly": true - }, - "Jump target cannot cross function boundary.": { - "category": "Error", - "code": 1107, - "isEarly": true - }, - "A 'return' statement can only be used within a function body.": { - "category": "Error", - "code": 1108, - "isEarly": true - }, - "Expression expected.": { - "category": "Error", - "code": 1109, - "isEarly": true - }, - "Type expected.": { - "category": "Error", - "code": 1110, - "isEarly": true - }, - "A class member cannot be declared optional.": { - "category": "Error", - "code": 1112, - "isEarly": true - }, - "A 'default' clause cannot appear more than once in a 'switch' statement.": { - "category": "Error", - "code": 1113, - "isEarly": true - }, - "Duplicate label '{0}'": { - "category": "Error", - "code": 1114, - "isEarly": true - }, - "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { - "category": "Error", - "code": 1115, - "isEarly": true - }, - "A 'break' statement can only jump to a label of an enclosing statement.": { - "category": "Error", - "code": 1116, - "isEarly": true - }, - "An object literal cannot have multiple properties with the same name in strict mode.": { - "category": "Error", - "code": 1117, - "isEarly": true - }, - "An object literal cannot have multiple get/set accessors with the same name.": { - "category": "Error", - "code": 1118, - "isEarly": true - }, - "An object literal cannot have property and accessor with the same name.": { - "category": "Error", - "code": 1119, - "isEarly": true - }, - "An export assignment cannot have modifiers.": { - "category": "Error", - "code": 1120, - "isEarly": true - }, - "Octal literals are not allowed in strict mode.": { - "category": "Error", - "code": 1121, - "isEarly": true - }, - "A tuple type element list cannot be empty.": { - "category": "Error", - "code": 1122, - "isEarly": true - }, - "Variable declaration list cannot be empty.": { - "category": "Error", - "code": 1123, - "isEarly": true - }, - "Digit expected.": { - "category": "Error", - "code": 1124 - }, - "Hexadecimal digit expected.": { - "category": "Error", - "code": 1125 - }, - "Unexpected end of text.": { - "category": "Error", - "code": 1126 - }, - "Invalid character.": { - "category": "Error", - "code": 1127 - }, - "Declaration or statement expected.": { - "category": "Error", - "code": 1128 - }, - "Statement expected.": { - "category": "Error", - "code": 1129 - }, - "'case' or 'default' expected.": { - "category": "Error", - "code": 1130 - }, - "Property or signature expected.": { - "category": "Error", - "code": 1131 - }, - "Enum member expected.": { - "category": "Error", - "code": 1132 - }, - "Type reference expected.": { - "category": "Error", - "code": 1133 - }, - "Variable declaration expected.": { - "category": "Error", - "code": 1134 - }, - "Argument expression expected.": { - "category": "Error", - "code": 1135, - "isEarly": true - }, - "Property assignment expected.": { - "category": "Error", - "code": 1136 - }, - "Expression or comma expected.": { - "category": "Error", - "code": 1137 - }, - "Parameter declaration expected.": { - "category": "Error", - "code": 1138 - }, - "Type parameter declaration expected.": { - "category": "Error", - "code": 1139 - }, - "Type argument expected.": { - "category": "Error", - "code": 1140 - }, - "String literal expected.": { - "category": "Error", - "code": 1141, - "isEarly": true - }, - "Line break not permitted here.": { - "category": "Error", - "code": 1142, - "isEarly": true - }, - "'{' or ';' expected.": { - "category": "Error", - "code": 1144 - }, - "Modifiers not permitted on index signature members.": { - "category": "Error", - "code": 1145, - "isEarly": true - }, - "Declaration expected.": { - "category": "Error", - "code": 1146 - }, - "Import declarations in an internal module cannot reference an external module.": { - "category": "Error", - "code": 1147, - "isEarly": true - }, - "Cannot compile external modules unless the '--module' flag is provided.": { - "category": "Error", - "code": 1148 - }, - "Filename '{0}' differs from already included filename '{1}' only in casing": { - "category": "Error", - "code": 1149 - }, - "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { - "category": "Error", - "code": 1150, - "isEarly": true - }, - "'var', 'let' or 'const' expected.": { - "category": "Error", - "code": 1152 - }, - "'let' declarations are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1153, - "isEarly": true - }, - "'const' declarations are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1154, - "isEarly": true - }, - "'const' declarations must be initialized": { - "category": "Error", - "code": 1155, - "isEarly": true - }, - "'const' declarations can only be declared inside a block.": { - "category": "Error", - "code": 1156, - "isEarly": true - }, - "'let' declarations can only be declared inside a block.": { - "category": "Error", - "code": 1157, - "isEarly": true - }, - "Tagged templates are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1159, - "isEarly": true - }, - "Unterminated template literal.": { - "category": "Error", - "code": 1160 - }, - "Unterminated regular expression literal.": { - "category": "Error", - "code": 1161 - }, - "An object member cannot be declared optional.": { - "category": "Error", - "code": 1162, - "isEarly": true - }, - "'yield' expression must be contained_within a generator declaration.": { - "category": "Error", - "code": 1163, - "isEarly": true - }, - "Computed property names are not allowed in enums.": { - "category": "Error", - "code": 1164, - "isEarly": true - }, - "Computed property names are not allowed in an ambient context.": { - "category": "Error", - "code": 1165, - "isEarly": true - }, - "Computed property names are not allowed in class property declarations.": { - "category": "Error", - "code": 1166, - "isEarly": true - }, - "Computed property names are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1167, - "isEarly": true - }, - "Computed property names are not allowed in method overloads.": { - "category": "Error", - "code": 1168, - "isEarly": true - }, - "Computed property names are not allowed in interfaces.": { - "category": "Error", - "code": 1169, - "isEarly": true - }, - "Computed property names are not allowed in type literals.": { - "category": "Error", - "code": 1170, - "isEarly": true - }, - "A comma expression is not allowed in a computed property name.": { - "category": "Error", - "code": 1171 - }, - "'extends' clause already seen.": { - "category": "Error", - "code": 1172, - "isEarly": true - }, - "'extends' clause must precede 'implements' clause.": { - "category": "Error", - "code": 1173, - "isEarly": true - }, - "Classes can only extend a single class.": { - "category": "Error", - "code": 1174, - "isEarly": true - }, - "'implements' clause already seen.": { - "category": "Error", - "code": 1175, - "isEarly": true - }, - "Interface declaration cannot have 'implements' clause.": { - "category": "Error", - "code": 1176, - "isEarly": true - }, - "Binary digit expected.": { - "category": "Error", - "code": 1177 - }, - "Octal digit expected.": { - "category": "Error", - "code": 1178 - }, - "Unexpected token. '{' expected.": { - "category": "Error", - "code": 1179 - }, - "Property destructuring pattern expected.": { - "category": "Error", - "code": 1180 - }, - "Array element destructuring pattern expected.": { - "category": "Error", - "code": 1181 - }, - "A destructuring declaration must have an initializer.": { - "category": "Error", - "code": 1182, - "isEarly": true - }, - "Destructuring declarations are not allowed in ambient contexts.": { - "category": "Error", - "code": 1183, - "isEarly": true - }, - "An implementation cannot be declared in ambient contexts.": { - "category": "Error", - "code": 1184, - "isEarly": true - }, - "Modifiers cannot appear here.": { - "category": "Error", - "code": 1184 - }, - "Merge conflict marker encountered.": { - "category": "Error", - "code": 1185 - }, - "A rest element cannot have an initializer.": { - "category": "Error", - "code": 1186 - }, - "A parameter property may not be a binding pattern.": { - "category": "Error", - "code": 1187 - }, + "Unterminated string literal.": { + "category": "Error", + "code": 1002 + }, + "Identifier expected.": { + "category": "Error", + "code": 1003 + }, + "'{0}' expected.": { + "category": "Error", + "code": 1005, + "isEarly": true + }, + "A file cannot have a reference to itself.": { + "category": "Error", + "code": 1006 + }, + "Trailing comma not allowed.": { + "category": "Error", + "code": 1009, + "isEarly": true + }, + "'*/' expected.": { + "category": "Error", + "code": 1010 + }, + "Unexpected token.": { + "category": "Error", + "code": 1012 + }, + "Catch clause parameter cannot have a type annotation.": { + "category": "Error", + "code": 1013, + "isEarly": true + }, + "A rest parameter must be last in a parameter list.": { + "category": "Error", + "code": 1014, + "isEarly": true + }, + "Parameter cannot have question mark and initializer.": { + "category": "Error", + "code": 1015, + "isEarly": true + }, + "A required parameter cannot follow an optional parameter.": { + "category": "Error", + "code": 1016, + "isEarly": true + }, + "An index signature cannot have a rest parameter.": { + "category": "Error", + "code": 1017, + "isEarly": true + }, + "An index signature parameter cannot have an accessibility modifier.": { + "category": "Error", + "code": 1018, + "isEarly": true + }, + "An index signature parameter cannot have a question mark.": { + "category": "Error", + "code": 1019, + "isEarly": true + }, + "An index signature parameter cannot have an initializer.": { + "category": "Error", + "code": 1020, + "isEarly": true + }, + "An index signature must have a type annotation.": { + "category": "Error", + "code": 1021, + "isEarly": true + }, + "An index signature parameter must have a type annotation.": { + "category": "Error", + "code": 1022, + "isEarly": true + }, + "An index signature parameter type must be 'string' or 'number'.": { + "category": "Error", + "code": 1023, + "isEarly": true + }, + "A class or interface declaration can only have one 'extends' clause.": { + "category": "Error", + "code": 1024 + }, + "An 'extends' clause must precede an 'implements' clause.": { + "category": "Error", + "code": 1025 + }, + "A class can only extend a single class.": { + "category": "Error", + "code": 1026 + }, + "A class declaration can only have one 'implements' clause.": { + "category": "Error", + "code": 1027 + }, + "Accessibility modifier already seen.": { + "category": "Error", + "code": 1028, + "isEarly": true + }, + "'{0}' modifier must precede '{1}' modifier.": { + "category": "Error", + "code": 1029, + "isEarly": true + }, + "'{0}' modifier already seen.": { + "category": "Error", + "code": 1030, + "isEarly": true + }, + "'{0}' modifier cannot appear on a class element.": { + "category": "Error", + "code": 1031, + "isEarly": true + }, + "An interface declaration cannot have an 'implements' clause.": { + "category": "Error", + "code": 1032 + }, + "'super' must be followed by an argument list or member access.": { + "category": "Error", + "code": 1034 + }, + "Only ambient modules can use quoted names.": { + "category": "Error", + "code": 1035, + "isEarly": true + }, + "Statements are not allowed in ambient contexts.": { + "category": "Error", + "code": 1036, + "isEarly": true + }, + "A 'declare' modifier cannot be used in an already ambient context.": { + "category": "Error", + "code": 1038, + "isEarly": true + }, + "Initializers are not allowed in ambient contexts.": { + "category": "Error", + "code": 1039, + "isEarly": true + }, + "'{0}' modifier cannot appear on a module element.": { + "category": "Error", + "code": 1044, + "isEarly": true + }, + "A 'declare' modifier cannot be used with an interface declaration.": { + "category": "Error", + "code": 1045, + "isEarly": true + }, + "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { + "category": "Error", + "code": 1046 + }, + "A rest parameter cannot be optional.": { + "category": "Error", + "code": 1047, + "isEarly": true + }, + "A rest parameter cannot have an initializer.": { + "category": "Error", + "code": 1048, + "isEarly": true + }, + "A 'set' accessor must have exactly one parameter.": { + "category": "Error", + "code": 1049, + "isEarly": true + }, + "A 'set' accessor cannot have an optional parameter.": { + "category": "Error", + "code": 1051, + "isEarly": true + }, + "A 'set' accessor parameter cannot have an initializer.": { + "category": "Error", + "code": 1052, + "isEarly": true + }, + "A 'set' accessor cannot have rest parameter.": { + "category": "Error", + "code": 1053, + "isEarly": true + }, + "A 'get' accessor cannot have parameters.": { + "category": "Error", + "code": 1054, + "isEarly": true + }, + "Accessors are only available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 1056, + "isEarly": true + }, + "Enum member must have initializer.": { + "category": "Error", + "code": 1061, + "isEarly": true + }, + "An export assignment cannot be used in an internal module.": { + "category": "Error", + "code": 1063, + "isEarly": true + }, + "Ambient enum elements can only have integer literal initializers.": { + "category": "Error", + "code": 1066, + "isEarly": true + }, + "Unexpected token. A constructor, method, accessor, or property was expected.": { + "category": "Error", + "code": 1068 + }, + "A 'declare' modifier cannot be used with an import declaration.": { + "category": "Error", + "code": 1079, + "isEarly": true + }, + "Invalid 'reference' directive syntax.": { + "category": "Error", + "code": 1084 + }, + "Octal literals are not available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 1085, + "isEarly": true + }, + "An accessor cannot be declared in an ambient context.": { + "category": "Error", + "code": 1086, + "isEarly": true + }, + "'{0}' modifier cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1089, + "isEarly": true + }, + "'{0}' modifier cannot appear on a parameter.": { + "category": "Error", + "code": 1090, + "isEarly": true + }, + "Only a single variable declaration is allowed in a 'for...in' statement.": { + "category": "Error", + "code": 1091, + "isEarly": true + }, + "Type parameters cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1092, + "isEarly": true + }, + "Type annotation cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1093, + "isEarly": true + }, + "An accessor cannot have type parameters.": { + "category": "Error", + "code": 1094, + "isEarly": true + }, + "A 'set' accessor cannot have a return type annotation.": { + "category": "Error", + "code": 1095, + "isEarly": true + }, + "An index signature must have exactly one parameter.": { + "category": "Error", + "code": 1096, + "isEarly": true + }, + "'{0}' list cannot be empty.": { + "category": "Error", + "code": 1097, + "isEarly": true + }, + "Type parameter list cannot be empty.": { + "category": "Error", + "code": 1098, + "isEarly": true + }, + "Type argument list cannot be empty.": { + "category": "Error", + "code": 1099, + "isEarly": true + }, + "Invalid use of '{0}' in strict mode.": { + "category": "Error", + "code": 1100, + "isEarly": true + }, + "'with' statements are not allowed in strict mode.": { + "category": "Error", + "code": 1101, + "isEarly": true + }, + "'delete' cannot be called on an identifier in strict mode.": { + "category": "Error", + "code": 1102, + "isEarly": true + }, + "A 'continue' statement can only be used within an enclosing iteration statement.": { + "category": "Error", + "code": 1104, + "isEarly": true + }, + "A 'break' statement can only be used within an enclosing iteration or switch statement.": { + "category": "Error", + "code": 1105, + "isEarly": true + }, + "Jump target cannot cross function boundary.": { + "category": "Error", + "code": 1107, + "isEarly": true + }, + "A 'return' statement can only be used within a function body.": { + "category": "Error", + "code": 1108, + "isEarly": true + }, + "Expression expected.": { + "category": "Error", + "code": 1109, + "isEarly": true + }, + "Type expected.": { + "category": "Error", + "code": 1110, + "isEarly": true + }, + "A class member cannot be declared optional.": { + "category": "Error", + "code": 1112, + "isEarly": true + }, + "A 'default' clause cannot appear more than once in a 'switch' statement.": { + "category": "Error", + "code": 1113, + "isEarly": true + }, + "Duplicate label '{0}'": { + "category": "Error", + "code": 1114, + "isEarly": true + }, + "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { + "category": "Error", + "code": 1115, + "isEarly": true + }, + "A 'break' statement can only jump to a label of an enclosing statement.": { + "category": "Error", + "code": 1116, + "isEarly": true + }, + "An object literal cannot have multiple properties with the same name in strict mode.": { + "category": "Error", + "code": 1117, + "isEarly": true + }, + "An object literal cannot have multiple get/set accessors with the same name.": { + "category": "Error", + "code": 1118, + "isEarly": true + }, + "An object literal cannot have property and accessor with the same name.": { + "category": "Error", + "code": 1119, + "isEarly": true + }, + "An export assignment cannot have modifiers.": { + "category": "Error", + "code": 1120, + "isEarly": true + }, + "Octal literals are not allowed in strict mode.": { + "category": "Error", + "code": 1121, + "isEarly": true + }, + "A tuple type element list cannot be empty.": { + "category": "Error", + "code": 1122, + "isEarly": true + }, + "Variable declaration list cannot be empty.": { + "category": "Error", + "code": 1123, + "isEarly": true + }, + "Digit expected.": { + "category": "Error", + "code": 1124 + }, + "Hexadecimal digit expected.": { + "category": "Error", + "code": 1125 + }, + "Unexpected end of text.": { + "category": "Error", + "code": 1126 + }, + "Invalid character.": { + "category": "Error", + "code": 1127 + }, + "Declaration or statement expected.": { + "category": "Error", + "code": 1128 + }, + "Statement expected.": { + "category": "Error", + "code": 1129 + }, + "'case' or 'default' expected.": { + "category": "Error", + "code": 1130 + }, + "Property or signature expected.": { + "category": "Error", + "code": 1131 + }, + "Enum member expected.": { + "category": "Error", + "code": 1132 + }, + "Type reference expected.": { + "category": "Error", + "code": 1133 + }, + "Variable declaration expected.": { + "category": "Error", + "code": 1134 + }, + "Argument expression expected.": { + "category": "Error", + "code": 1135, + "isEarly": true + }, + "Property assignment expected.": { + "category": "Error", + "code": 1136 + }, + "Expression or comma expected.": { + "category": "Error", + "code": 1137 + }, + "Parameter declaration expected.": { + "category": "Error", + "code": 1138 + }, + "Type parameter declaration expected.": { + "category": "Error", + "code": 1139 + }, + "Type argument expected.": { + "category": "Error", + "code": 1140 + }, + "String literal expected.": { + "category": "Error", + "code": 1141, + "isEarly": true + }, + "Line break not permitted here.": { + "category": "Error", + "code": 1142, + "isEarly": true + }, + "'{' or ';' expected.": { + "category": "Error", + "code": 1144 + }, + "Modifiers not permitted on index signature members.": { + "category": "Error", + "code": 1145, + "isEarly": true + }, + "Declaration expected.": { + "category": "Error", + "code": 1146 + }, + "Import declarations in an internal module cannot reference an external module.": { + "category": "Error", + "code": 1147, + "isEarly": true + }, + "Cannot compile external modules unless the '--module' flag is provided.": { + "category": "Error", + "code": 1148 + }, + "Filename '{0}' differs from already included filename '{1}' only in casing": { + "category": "Error", + "code": 1149 + }, + "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { + "category": "Error", + "code": 1150, + "isEarly": true + }, + "'var', 'let' or 'const' expected.": { + "category": "Error", + "code": 1152 + }, + "'let' declarations are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1153, + "isEarly": true + }, + "'const' declarations are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1154, + "isEarly": true + }, + "'const' declarations must be initialized": { + "category": "Error", + "code": 1155, + "isEarly": true + }, + "'const' declarations can only be declared inside a block.": { + "category": "Error", + "code": 1156, + "isEarly": true + }, + "'let' declarations can only be declared inside a block.": { + "category": "Error", + "code": 1157, + "isEarly": true + }, + "Tagged templates are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1159, + "isEarly": true + }, + "Unterminated template literal.": { + "category": "Error", + "code": 1160 + }, + "Unterminated regular expression literal.": { + "category": "Error", + "code": 1161 + }, + "An object member cannot be declared optional.": { + "category": "Error", + "code": 1162, + "isEarly": true + }, + "'yield' expression must be contained_within a generator declaration.": { + "category": "Error", + "code": 1163, + "isEarly": true + }, + "Computed property names are not allowed in enums.": { + "category": "Error", + "code": 1164, + "isEarly": true + }, + "Computed property names are not allowed in an ambient context.": { + "category": "Error", + "code": 1165, + "isEarly": true + }, + "Computed property names are not allowed in class property declarations.": { + "category": "Error", + "code": 1166, + "isEarly": true + }, + "Computed property names are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1167, + "isEarly": true + }, + "Computed property names are not allowed in method overloads.": { + "category": "Error", + "code": 1168, + "isEarly": true + }, + "Computed property names are not allowed in interfaces.": { + "category": "Error", + "code": 1169, + "isEarly": true + }, + "Computed property names are not allowed in type literals.": { + "category": "Error", + "code": 1170, + "isEarly": true + }, + "A comma expression is not allowed in a computed property name.": { + "category": "Error", + "code": 1171 + }, + "'extends' clause already seen.": { + "category": "Error", + "code": 1172, + "isEarly": true + }, + "'extends' clause must precede 'implements' clause.": { + "category": "Error", + "code": 1173, + "isEarly": true + }, + "Classes can only extend a single class.": { + "category": "Error", + "code": 1174, + "isEarly": true + }, + "'implements' clause already seen.": { + "category": "Error", + "code": 1175, + "isEarly": true + }, + "Interface declaration cannot have 'implements' clause.": { + "category": "Error", + "code": 1176, + "isEarly": true + }, + "Binary digit expected.": { + "category": "Error", + "code": 1177 + }, + "Octal digit expected.": { + "category": "Error", + "code": 1178 + }, + "Unexpected token. '{' expected.": { + "category": "Error", + "code": 1179 + }, + "Property destructuring pattern expected.": { + "category": "Error", + "code": 1180 + }, + "Array element destructuring pattern expected.": { + "category": "Error", + "code": 1181 + }, + "A destructuring declaration must have an initializer.": { + "category": "Error", + "code": 1182, + "isEarly": true + }, + "Destructuring declarations are not allowed in ambient contexts.": { + "category": "Error", + "code": 1183, + "isEarly": true + }, + "An implementation cannot be declared in ambient contexts.": { + "category": "Error", + "code": 1184, + "isEarly": true + }, + "Modifiers cannot appear here.": { + "category": "Error", + "code": 1184 + }, + "Merge conflict marker encountered.": { + "category": "Error", + "code": 1185 + }, + "A rest element cannot have an initializer.": { + "category": "Error", + "code": 1186 + }, + "A parameter property may not be a binding pattern.": { + "category": "Error", + "code": 1187 + }, - "Duplicate identifier '{0}'.": { - "category": "Error", - "code": 2300 - }, - "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { - "category": "Error", - "code": 2301 - }, - "Static members cannot reference class type parameters.": { - "category": "Error", - "code": 2302 - }, - "Circular definition of import alias '{0}'.": { - "category": "Error", - "code": 2303 - }, - "Cannot find name '{0}'.": { - "category": "Error", - "code": 2304 - }, - "Module '{0}' has no exported member '{1}'.": { - "category": "Error", - "code": 2305 - }, - "File '{0}' is not an external module.": { - "category": "Error", - "code": 2306 - }, - "Cannot find external module '{0}'.": { - "category": "Error", - "code": 2307 - }, - "A module cannot have more than one export assignment.": { - "category": "Error", - "code": 2308 - }, - "An export assignment cannot be used in a module with other exported elements.": { - "category": "Error", - "code": 2309 - }, - "Type '{0}' recursively references itself as a base type.": { - "category": "Error", - "code": 2310 - }, - "A class may only extend another class.": { - "category": "Error", - "code": 2311 - }, - "An interface may only extend a class or another interface.": { - "category": "Error", - "code": 2312 - }, - "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { - "category": "Error", - "code": 2313 - }, - "Generic type '{0}' requires {1} type argument(s).": { - "category": "Error", - "code": 2314 - }, - "Type '{0}' is not generic.": { - "category": "Error", - "code": 2315 - }, - "Global type '{0}' must be a class or interface type.": { - "category": "Error", - "code": 2316 - }, - "Global type '{0}' must have {1} type parameter(s).": { - "category": "Error", - "code": 2317 - }, - "Cannot find global type '{0}'.": { - "category": "Error", - "code": 2318 - }, - "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { - "category": "Error", - "code": 2319 - }, - "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.": { - "category": "Error", - "code": 2320 - }, - "Excessive stack depth comparing types '{0}' and '{1}'.": { - "category": "Error", - "code": 2321 - }, - "Type '{0}' is not assignable to type '{1}'.": { - "category": "Error", - "code": 2322 - }, - "Property '{0}' is missing in type '{1}'.": { - "category": "Error", - "code": 2324 - }, - "Property '{0}' is private in type '{1}' but not in type '{2}'.": { - "category": "Error", - "code": 2325 - }, - "Types of property '{0}' are incompatible.": { - "category": "Error", - "code": 2326 - }, - "Property '{0}' is optional in type '{1}' but required in type '{2}'.": { - "category": "Error", - "code": 2327 - }, - "Types of parameters '{0}' and '{1}' are incompatible.": { - "category": "Error", - "code": 2328 - }, - "Index signature is missing in type '{0}'.": { - "category": "Error", - "code": 2329 - }, - "Index signatures are incompatible.": { - "category": "Error", - "code": 2330 - }, - "'this' cannot be referenced in a module body.": { - "category": "Error", - "code": 2331 - }, - "'this' cannot be referenced in current location.": { - "category": "Error", - "code": 2332 - }, - "'this' cannot be referenced in constructor arguments.": { - "category": "Error", - "code": 2333 - }, - "'this' cannot be referenced in a static property initializer.": { - "category": "Error", - "code": 2334 - }, - "'super' can only be referenced in a derived class.": { - "category": "Error", - "code": 2335 - }, - "'super' cannot be referenced in constructor arguments.": { - "category": "Error", - "code": 2336 - }, - "Super calls are not permitted outside constructors or in nested functions inside constructors": { - "category": "Error", - "code": 2337 - }, - "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class": { - "category": "Error", - "code": 2338 - }, - "Property '{0}' does not exist on type '{1}'.": { - "category": "Error", - "code": 2339 - }, - "Only public and protected methods of the base class are accessible via the 'super' keyword": { - "category": "Error", - "code": 2340 - }, - "Property '{0}' is private and only accessible within class '{1}'.": { - "category": "Error", - "code": 2341 - }, - "An index expression argument must be of type 'string', 'number', or 'any'.": { - "category": "Error", - "code": 2342 - }, - "Type '{0}' does not satisfy the constraint '{1}'.": { - "category": "Error", - "code": 2344 - }, - "Argument of type '{0}' is not assignable to parameter of type '{1}'.": { - "category": "Error", - "code": 2345 - }, - "Supplied parameters do not match any signature of call target.": { - "category": "Error", - "code": 2346 - }, - "Untyped function calls may not accept type arguments.": { - "category": "Error", - "code": 2347 - }, - "Value of type '{0}' is not callable. Did you mean to include 'new'?": { - "category": "Error", - "code": 2348 - }, - "Cannot invoke an expression whose type lacks a call signature.": { - "category": "Error", - "code": 2349 - }, - "Only a void function can be called with the 'new' keyword.": { - "category": "Error", - "code": 2350 - }, - "Cannot use 'new' with an expression whose type lacks a call or construct signature.": { - "category": "Error", - "code": 2351 - }, - "Neither type '{0}' nor type '{1}' is assignable to the other.": { - "category": "Error", - "code": 2352 - }, - "No best common type exists among return expressions.": { - "category": "Error", - "code": 2354 - }, - "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.": { - "category": "Error", - "code": 2355 - }, - "An arithmetic operand must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2356 - }, - "The operand of an increment or decrement operator must be a variable, property or indexer.": { - "category": "Error", - "code": 2357 - }, - "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { - "category": "Error", - "code": 2358 - }, - "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { - "category": "Error", - "code": 2359 - }, - "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { - "category": "Error", - "code": 2360 - }, - "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter": { - "category": "Error", - "code": 2361 - }, - "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2362 - }, - "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2363 - }, - "Invalid left-hand side of assignment expression.": { - "category": "Error", - "code": 2364 - }, - "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { - "category": "Error", - "code": 2365 - }, - "Type parameter name cannot be '{0}'": { - "category": "Error", - "code": 2368 - }, - "A parameter property is only allowed in a constructor implementation.": { - "category": "Error", - "code": 2369 - }, - "A rest parameter must be of an array type.": { - "category": "Error", - "code": 2370 - }, - "A parameter initializer is only allowed in a function or constructor implementation.": { - "category": "Error", - "code": 2371 - }, - "Parameter '{0}' cannot be referenced in its initializer.": { - "category": "Error", - "code": 2372 - }, - "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { - "category": "Error", - "code": 2373 - }, - "Duplicate string index signature.": { - "category": "Error", - "code": 2374 - }, - "Duplicate number index signature.": { - "category": "Error", - "code": 2375 - }, - "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { - "category": "Error", - "code": 2376 - }, - "Constructors for derived classes must contain a 'super' call.": { - "category": "Error", - "code": 2377 - }, - "A 'get' accessor must return a value or consist of a single 'throw' statement.": { - "category": "Error", - "code": 2378 - }, - "Getter and setter accessors do not agree in visibility.": { - "category": "Error", - "code": 2379 - }, - "'get' and 'set' accessor must have the same type.": { - "category": "Error", - "code": 2380 - }, - "A signature with an implementation cannot use a string literal type.": { - "category": "Error", - "code": 2381 - }, - "Specialized overload signature is not assignable to any non-specialized signature.": { - "category": "Error", - "code": 2382 - }, - "Overload signatures must all be exported or not exported.": { - "category": "Error", - "code": 2383 - }, - "Overload signatures must all be ambient or non-ambient.": { - "category": "Error", - "code": 2384 - }, - "Overload signatures must all be public, private or protected.": { - "category": "Error", - "code": 2385 - }, - "Overload signatures must all be optional or required.": { - "category": "Error", - "code": 2386 - }, - "Function overload must be static.": { - "category": "Error", - "code": 2387 - }, - "Function overload must not be static.": { - "category": "Error", - "code": 2388 - }, - "Function implementation name must be '{0}'.": { - "category": "Error", - "code": 2389 - }, - "Constructor implementation is missing.": { - "category": "Error", - "code": 2390 - }, - "Function implementation is missing or not immediately following the declaration.": { - "category": "Error", - "code": 2391 - }, - "Multiple constructor implementations are not allowed.": { - "category": "Error", - "code": 2392 - }, - "Duplicate function implementation.": { - "category": "Error", - "code": 2393 - }, - "Overload signature is not compatible with function implementation.": { - "category": "Error", - "code": 2394 - }, - "Individual declarations in merged declaration {0} must be all exported or all local.": { - "category": "Error", - "code": 2395 - }, - "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { - "category": "Error", - "code": 2396 - }, - "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { - "category": "Error", - "code": 2399 - }, - "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { - "category": "Error", - "code": 2400 - }, - "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { - "category": "Error", - "code": 2401 - }, - "Expression resolves to '_super' that compiler uses to capture base class reference.": { - "category": "Error", - "code": 2402 - }, - "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { - "category": "Error", - "code": 2403 - }, - "The left-hand side of a 'for...in' statement cannot use a type annotation.": { - "category": "Error", - "code": 2404 - }, - "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.": { - "category": "Error", - "code": 2405 - }, - "Invalid left-hand side in 'for...in' statement.": { - "category": "Error", - "code": 2406 - }, - "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { - "category": "Error", - "code": 2407 - }, - "Setters cannot return a value.": { - "category": "Error", - "code": 2408 - }, - "Return type of constructor signature must be assignable to the instance type of the class": { - "category": "Error", - "code": 2409 - }, - "All symbols within a 'with' block will be resolved to 'any'.": { - "category": "Error", - "code": 2410 - }, - "Property '{0}' of type '{1}' is not assignable to string index type '{2}'.": { - "category": "Error", - "code": 2411 - }, - "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.": { - "category": "Error", - "code": 2412 - }, - "Numeric index type '{0}' is not assignable to string index type '{1}'.": { - "category": "Error", - "code": 2413 - }, - "Class name cannot be '{0}'": { - "category": "Error", - "code": 2414 - }, - "Class '{0}' incorrectly extends base class '{1}'.": { - "category": "Error", - "code": 2415 - }, - "Class static side '{0}' incorrectly extends base class static side '{1}'.": { - "category": "Error", - "code": 2417 - }, - "Type name '{0}' in extends clause does not reference constructor function for '{0}'.": { - "category": "Error", - "code": 2419 - }, - "Class '{0}' incorrectly implements interface '{1}'.": { - "category": "Error", - "code": 2420 - }, - "A class may only implement another class or interface.": { - "category": "Error", - "code": 2422 - }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { - "category": "Error", - "code": 2423 - }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { - "category": "Error", - "code": 2424 - }, - "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { - "category": "Error", - "code": 2425 - }, - "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { - "category": "Error", - "code": 2426 - }, - "Interface name cannot be '{0}'": { - "category": "Error", - "code": 2427 - }, - "All declarations of an interface must have identical type parameters.": { - "category": "Error", - "code": 2428 - }, - "Interface '{0}' incorrectly extends interface '{1}'.": { - "category": "Error", - "code": 2430 - }, - "Enum name cannot be '{0}'": { - "category": "Error", - "code": 2431 - }, - "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.": { - "category": "Error", - "code": 2432 - }, - "A module declaration cannot be in a different file from a class or function with which it is merged": { - "category": "Error", - "code": 2433 - }, - "A module declaration cannot be located prior to a class or function with which it is merged": { - "category": "Error", - "code": 2434 - }, - "Ambient external modules cannot be nested in other modules.": { - "category": "Error", - "code": 2435 - }, - "Ambient external module declaration cannot specify relative module name.": { - "category": "Error", - "code": 2436 - }, - "Module '{0}' is hidden by a local declaration with the same name": { - "category": "Error", - "code": 2437 - }, - "Import name cannot be '{0}'": { - "category": "Error", - "code": 2438 - }, - "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { - "category": "Error", - "code": 2439 - }, - "Import declaration conflicts with local declaration of '{0}'": { - "category": "Error", - "code": 2440 - }, - "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { - "category": "Error", - "code": 2441 - }, - "Types have separate declarations of a private property '{0}'.": { - "category": "Error", - "code": 2442 - }, - "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.": { - "category": "Error", - "code": 2443 - }, - "Property '{0}' is protected in type '{1}' but public in type '{2}'.": { - "category": "Error", - "code": 2444 - }, - "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.": { - "category": "Error", - "code": 2445 - }, - "Property '{0}' is protected and only accessible through an instance of class '{1}'.": { - "category": "Error", - "code": 2446 - }, - "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.": { - "category": "Error", - "code": 2447 - }, - "Block-scoped variable '{0}' used before its declaration.": { - "category": "Error", - "code": 2448, - "isEarly": true - }, - "The operand of an increment or decrement operator cannot be a constant.": { - "category": "Error", - "code": 2449, - "isEarly": true - }, - "Left-hand side of assignment expression cannot be a constant.": { - "category": "Error", - "code": 2450, - "isEarly": true - }, - "Cannot redeclare block-scoped variable '{0}'.": { - "category": "Error", - "code": 2451, - "isEarly": true - }, - "An enum member cannot have a numeric name.": { - "category": "Error", - "code": 2452 - }, - "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.": { - "category": "Error", - "code": 2453 - }, - "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.": { - "category": "Error", - "code": 2455 - }, - "Type alias '{0}' circularly references itself.": { - "category": "Error", - "code": 2456 - }, - "Type alias name cannot be '{0}'": { - "category": "Error", - "code": 2457 - }, - "An AMD module cannot have multiple name assignments.": { - "category": "Error", - "code": 2458 - }, - "Type '{0}' has no property '{1}' and no string index signature.": { - "category": "Error", - "code": 2459 - }, - "Type '{0}' has no property '{1}'.": { - "category": "Error", - "code": 2460 - }, - "Type '{0}' is not an array type.": { - "category": "Error", - "code": 2461 - }, - "A rest element must be last in an array destructuring pattern": { - "category": "Error", - "code": 2462 - }, - "A binding pattern parameter cannot be optional in an implementation signature.": { - "category": "Error", - "code": 2463 - }, - "A computed property name must be of type 'string', 'number', or 'any'.": { - "category": "Error", - "code": 2464 - }, - "'this' cannot be referenced in a computed property name.": { - "category": "Error", - "code": 2465 - }, - "'super' cannot be referenced in a computed property name.": { - "category": "Error", - "code": 2466 - }, - "A computed property name cannot reference a type parameter from its containing type.": { - "category": "Error", - "code": 2466 - }, + "Duplicate identifier '{0}'.": { + "category": "Error", + "code": 2300 + }, + "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { + "category": "Error", + "code": 2301 + }, + "Static members cannot reference class type parameters.": { + "category": "Error", + "code": 2302 + }, + "Circular definition of import alias '{0}'.": { + "category": "Error", + "code": 2303 + }, + "Cannot find name '{0}'.": { + "category": "Error", + "code": 2304 + }, + "Module '{0}' has no exported member '{1}'.": { + "category": "Error", + "code": 2305 + }, + "File '{0}' is not an external module.": { + "category": "Error", + "code": 2306 + }, + "Cannot find external module '{0}'.": { + "category": "Error", + "code": 2307 + }, + "A module cannot have more than one export assignment.": { + "category": "Error", + "code": 2308 + }, + "An export assignment cannot be used in a module with other exported elements.": { + "category": "Error", + "code": 2309 + }, + "Type '{0}' recursively references itself as a base type.": { + "category": "Error", + "code": 2310 + }, + "A class may only extend another class.": { + "category": "Error", + "code": 2311 + }, + "An interface may only extend a class or another interface.": { + "category": "Error", + "code": 2312 + }, + "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { + "category": "Error", + "code": 2313 + }, + "Generic type '{0}' requires {1} type argument(s).": { + "category": "Error", + "code": 2314 + }, + "Type '{0}' is not generic.": { + "category": "Error", + "code": 2315 + }, + "Global type '{0}' must be a class or interface type.": { + "category": "Error", + "code": 2316 + }, + "Global type '{0}' must have {1} type parameter(s).": { + "category": "Error", + "code": 2317 + }, + "Cannot find global type '{0}'.": { + "category": "Error", + "code": 2318 + }, + "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { + "category": "Error", + "code": 2319 + }, + "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.": { + "category": "Error", + "code": 2320 + }, + "Excessive stack depth comparing types '{0}' and '{1}'.": { + "category": "Error", + "code": 2321 + }, + "Type '{0}' is not assignable to type '{1}'.": { + "category": "Error", + "code": 2322 + }, + "Property '{0}' is missing in type '{1}'.": { + "category": "Error", + "code": 2324 + }, + "Property '{0}' is private in type '{1}' but not in type '{2}'.": { + "category": "Error", + "code": 2325 + }, + "Types of property '{0}' are incompatible.": { + "category": "Error", + "code": 2326 + }, + "Property '{0}' is optional in type '{1}' but required in type '{2}'.": { + "category": "Error", + "code": 2327 + }, + "Types of parameters '{0}' and '{1}' are incompatible.": { + "category": "Error", + "code": 2328 + }, + "Index signature is missing in type '{0}'.": { + "category": "Error", + "code": 2329 + }, + "Index signatures are incompatible.": { + "category": "Error", + "code": 2330 + }, + "'this' cannot be referenced in a module body.": { + "category": "Error", + "code": 2331 + }, + "'this' cannot be referenced in current location.": { + "category": "Error", + "code": 2332 + }, + "'this' cannot be referenced in constructor arguments.": { + "category": "Error", + "code": 2333 + }, + "'this' cannot be referenced in a static property initializer.": { + "category": "Error", + "code": 2334 + }, + "'super' can only be referenced in a derived class.": { + "category": "Error", + "code": 2335 + }, + "'super' cannot be referenced in constructor arguments.": { + "category": "Error", + "code": 2336 + }, + "Super calls are not permitted outside constructors or in nested functions inside constructors": { + "category": "Error", + "code": 2337 + }, + "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class": { + "category": "Error", + "code": 2338 + }, + "Property '{0}' does not exist on type '{1}'.": { + "category": "Error", + "code": 2339 + }, + "Only public and protected methods of the base class are accessible via the 'super' keyword": { + "category": "Error", + "code": 2340 + }, + "Property '{0}' is private and only accessible within class '{1}'.": { + "category": "Error", + "code": 2341 + }, + "An index expression argument must be of type 'string', 'number', or 'any'.": { + "category": "Error", + "code": 2342 + }, + "Type '{0}' does not satisfy the constraint '{1}'.": { + "category": "Error", + "code": 2344 + }, + "Argument of type '{0}' is not assignable to parameter of type '{1}'.": { + "category": "Error", + "code": 2345 + }, + "Supplied parameters do not match any signature of call target.": { + "category": "Error", + "code": 2346 + }, + "Untyped function calls may not accept type arguments.": { + "category": "Error", + "code": 2347 + }, + "Value of type '{0}' is not callable. Did you mean to include 'new'?": { + "category": "Error", + "code": 2348 + }, + "Cannot invoke an expression whose type lacks a call signature.": { + "category": "Error", + "code": 2349 + }, + "Only a void function can be called with the 'new' keyword.": { + "category": "Error", + "code": 2350 + }, + "Cannot use 'new' with an expression whose type lacks a call or construct signature.": { + "category": "Error", + "code": 2351 + }, + "Neither type '{0}' nor type '{1}' is assignable to the other.": { + "category": "Error", + "code": 2352 + }, + "No best common type exists among return expressions.": { + "category": "Error", + "code": 2354 + }, + "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.": { + "category": "Error", + "code": 2355 + }, + "An arithmetic operand must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2356 + }, + "The operand of an increment or decrement operator must be a variable, property or indexer.": { + "category": "Error", + "code": 2357 + }, + "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { + "category": "Error", + "code": 2358 + }, + "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { + "category": "Error", + "code": 2359 + }, + "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { + "category": "Error", + "code": 2360 + }, + "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter": { + "category": "Error", + "code": 2361 + }, + "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2362 + }, + "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2363 + }, + "Invalid left-hand side of assignment expression.": { + "category": "Error", + "code": 2364 + }, + "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { + "category": "Error", + "code": 2365 + }, + "Type parameter name cannot be '{0}'": { + "category": "Error", + "code": 2368 + }, + "A parameter property is only allowed in a constructor implementation.": { + "category": "Error", + "code": 2369 + }, + "A rest parameter must be of an array type.": { + "category": "Error", + "code": 2370 + }, + "A parameter initializer is only allowed in a function or constructor implementation.": { + "category": "Error", + "code": 2371 + }, + "Parameter '{0}' cannot be referenced in its initializer.": { + "category": "Error", + "code": 2372 + }, + "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { + "category": "Error", + "code": 2373 + }, + "Duplicate string index signature.": { + "category": "Error", + "code": 2374 + }, + "Duplicate number index signature.": { + "category": "Error", + "code": 2375 + }, + "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { + "category": "Error", + "code": 2376 + }, + "Constructors for derived classes must contain a 'super' call.": { + "category": "Error", + "code": 2377 + }, + "A 'get' accessor must return a value or consist of a single 'throw' statement.": { + "category": "Error", + "code": 2378 + }, + "Getter and setter accessors do not agree in visibility.": { + "category": "Error", + "code": 2379 + }, + "'get' and 'set' accessor must have the same type.": { + "category": "Error", + "code": 2380 + }, + "A signature with an implementation cannot use a string literal type.": { + "category": "Error", + "code": 2381 + }, + "Specialized overload signature is not assignable to any non-specialized signature.": { + "category": "Error", + "code": 2382 + }, + "Overload signatures must all be exported or not exported.": { + "category": "Error", + "code": 2383 + }, + "Overload signatures must all be ambient or non-ambient.": { + "category": "Error", + "code": 2384 + }, + "Overload signatures must all be public, private or protected.": { + "category": "Error", + "code": 2385 + }, + "Overload signatures must all be optional or required.": { + "category": "Error", + "code": 2386 + }, + "Function overload must be static.": { + "category": "Error", + "code": 2387 + }, + "Function overload must not be static.": { + "category": "Error", + "code": 2388 + }, + "Function implementation name must be '{0}'.": { + "category": "Error", + "code": 2389 + }, + "Constructor implementation is missing.": { + "category": "Error", + "code": 2390 + }, + "Function implementation is missing or not immediately following the declaration.": { + "category": "Error", + "code": 2391 + }, + "Multiple constructor implementations are not allowed.": { + "category": "Error", + "code": 2392 + }, + "Duplicate function implementation.": { + "category": "Error", + "code": 2393 + }, + "Overload signature is not compatible with function implementation.": { + "category": "Error", + "code": 2394 + }, + "Individual declarations in merged declaration {0} must be all exported or all local.": { + "category": "Error", + "code": 2395 + }, + "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { + "category": "Error", + "code": 2396 + }, + "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { + "category": "Error", + "code": 2399 + }, + "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { + "category": "Error", + "code": 2400 + }, + "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { + "category": "Error", + "code": 2401 + }, + "Expression resolves to '_super' that compiler uses to capture base class reference.": { + "category": "Error", + "code": 2402 + }, + "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { + "category": "Error", + "code": 2403 + }, + "The left-hand side of a 'for...in' statement cannot use a type annotation.": { + "category": "Error", + "code": 2404 + }, + "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.": { + "category": "Error", + "code": 2405 + }, + "Invalid left-hand side in 'for...in' statement.": { + "category": "Error", + "code": 2406 + }, + "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { + "category": "Error", + "code": 2407 + }, + "Setters cannot return a value.": { + "category": "Error", + "code": 2408 + }, + "Return type of constructor signature must be assignable to the instance type of the class": { + "category": "Error", + "code": 2409 + }, + "All symbols within a 'with' block will be resolved to 'any'.": { + "category": "Error", + "code": 2410 + }, + "Property '{0}' of type '{1}' is not assignable to string index type '{2}'.": { + "category": "Error", + "code": 2411 + }, + "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.": { + "category": "Error", + "code": 2412 + }, + "Numeric index type '{0}' is not assignable to string index type '{1}'.": { + "category": "Error", + "code": 2413 + }, + "Class name cannot be '{0}'": { + "category": "Error", + "code": 2414 + }, + "Class '{0}' incorrectly extends base class '{1}'.": { + "category": "Error", + "code": 2415 + }, + "Class static side '{0}' incorrectly extends base class static side '{1}'.": { + "category": "Error", + "code": 2417 + }, + "Type name '{0}' in extends clause does not reference constructor function for '{0}'.": { + "category": "Error", + "code": 2419 + }, + "Class '{0}' incorrectly implements interface '{1}'.": { + "category": "Error", + "code": 2420 + }, + "A class may only implement another class or interface.": { + "category": "Error", + "code": 2422 + }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { + "category": "Error", + "code": 2423 + }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { + "category": "Error", + "code": 2424 + }, + "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2425 + }, + "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2426 + }, + "Interface name cannot be '{0}'": { + "category": "Error", + "code": 2427 + }, + "All declarations of an interface must have identical type parameters.": { + "category": "Error", + "code": 2428 + }, + "Interface '{0}' incorrectly extends interface '{1}'.": { + "category": "Error", + "code": 2430 + }, + "Enum name cannot be '{0}'": { + "category": "Error", + "code": 2431 + }, + "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.": { + "category": "Error", + "code": 2432 + }, + "A module declaration cannot be in a different file from a class or function with which it is merged": { + "category": "Error", + "code": 2433 + }, + "A module declaration cannot be located prior to a class or function with which it is merged": { + "category": "Error", + "code": 2434 + }, + "Ambient external modules cannot be nested in other modules.": { + "category": "Error", + "code": 2435 + }, + "Ambient external module declaration cannot specify relative module name.": { + "category": "Error", + "code": 2436 + }, + "Module '{0}' is hidden by a local declaration with the same name": { + "category": "Error", + "code": 2437 + }, + "Import name cannot be '{0}'": { + "category": "Error", + "code": 2438 + }, + "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { + "category": "Error", + "code": 2439 + }, + "Import declaration conflicts with local declaration of '{0}'": { + "category": "Error", + "code": 2440 + }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { + "category": "Error", + "code": 2441 + }, + "Types have separate declarations of a private property '{0}'.": { + "category": "Error", + "code": 2442 + }, + "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.": { + "category": "Error", + "code": 2443 + }, + "Property '{0}' is protected in type '{1}' but public in type '{2}'.": { + "category": "Error", + "code": 2444 + }, + "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.": { + "category": "Error", + "code": 2445 + }, + "Property '{0}' is protected and only accessible through an instance of class '{1}'.": { + "category": "Error", + "code": 2446 + }, + "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.": { + "category": "Error", + "code": 2447 + }, + "Block-scoped variable '{0}' used before its declaration.": { + "category": "Error", + "code": 2448, + "isEarly": true + }, + "The operand of an increment or decrement operator cannot be a constant.": { + "category": "Error", + "code": 2449, + "isEarly": true + }, + "Left-hand side of assignment expression cannot be a constant.": { + "category": "Error", + "code": 2450, + "isEarly": true + }, + "Cannot redeclare block-scoped variable '{0}'.": { + "category": "Error", + "code": 2451, + "isEarly": true + }, + "An enum member cannot have a numeric name.": { + "category": "Error", + "code": 2452 + }, + "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.": { + "category": "Error", + "code": 2453 + }, + "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.": { + "category": "Error", + "code": 2455 + }, + "Type alias '{0}' circularly references itself.": { + "category": "Error", + "code": 2456 + }, + "Type alias name cannot be '{0}'": { + "category": "Error", + "code": 2457 + }, + "An AMD module cannot have multiple name assignments.": { + "category": "Error", + "code": 2458 + }, + "Type '{0}' has no property '{1}' and no string index signature.": { + "category": "Error", + "code": 2459 + }, + "Type '{0}' has no property '{1}'.": { + "category": "Error", + "code": 2460 + }, + "Type '{0}' is not an array type.": { + "category": "Error", + "code": 2461 + }, + "A rest element must be last in an array destructuring pattern": { + "category": "Error", + "code": 2462 + }, + "A binding pattern parameter cannot be optional in an implementation signature.": { + "category": "Error", + "code": 2463 + }, + "A computed property name must be of type 'string', 'number', or 'any'.": { + "category": "Error", + "code": 2464 + }, + "'this' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2465 + }, + "'super' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2466 + }, + "A computed property name cannot reference a type parameter from its containing type.": { + "category": "Error", + "code": 2466 + }, - "Import declaration '{0}' is using private name '{1}'.": { - "category": "Error", - "code": 4000 - }, - "Type parameter '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4002 - }, - "Type parameter '{0}' of exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4004 - }, - "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4006 - }, - "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4008 - }, - "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4010 - }, - "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4012 - }, - "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4014 - }, - "Type parameter '{0}' of exported function has or is using private name '{1}'.": { - "category": "Error", - "code": 4016 - }, - "Implements clause of exported class '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4019 - }, - "Extends clause of exported class '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4020 - }, - "Extends clause of exported interface '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4022 - }, - "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4023 - }, - "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4024 - }, - "Exported variable '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4025 - }, - "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4026 - }, - "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4027 - }, - "Public static property '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4028 - }, - "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4029 - }, - "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4030 - }, - "Public property '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4031 - }, - "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4032 - }, - "Property '{0}' of exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4033 - }, - "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4034 - }, - "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4035 - }, - "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4036 - }, - "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4037 - }, - "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4038 - }, - "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4039 - }, - "Return type of public static property getter from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4040 - }, - "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4041 - }, - "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4042 - }, - "Return type of public property getter from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4043 - }, - "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4044 - }, - "Return type of constructor signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4045 - }, - "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4046 - }, - "Return type of call signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4047 - }, - "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4048 - }, - "Return type of index signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4049 - }, - "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4050 - }, - "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4051 - }, - "Return type of public static method from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4052 - }, - "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4053 - }, - "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4054 - }, - "Return type of public method from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4055 - }, - "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4056 - }, - "Return type of method from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4057 - }, - "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4058 - }, - "Return type of exported function has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4059 - }, - "Return type of exported function has or is using private name '{0}'.": { - "category": "Error", - "code": 4060 - }, - "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4061 - }, - "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4062 - }, - "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4063 - }, - "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4064 - }, - "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4065 - }, - "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4066 - }, - "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4067 - }, - "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4068 - }, - "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4069 - }, - "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4070 - }, - "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4071 - }, - "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4072 - }, - "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4073 - }, - "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4074 - }, - "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4075 - }, - "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4076 - }, - "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4077 - }, - "Parameter '{0}' of exported function has or is using private name '{1}'.": { - "category": "Error", - "code": 4078 - }, - "Exported type alias '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4081 - }, - "Enum declarations must all be const or non-const.": { - "category": "Error", - "code": 4082 - }, - "In 'const' enum declarations member initializer must be constant expression.": { - "category": "Error", - "code": 4083, - "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.": { - "category": "Error", - "code": 4084 - }, - "A const enum member can only be accessed using a string literal.": { - "category": "Error", - "code": 4085, - "isEarly": true - }, - "'const' enum member initializer was evaluated to a non-finite value.": { - "category": "Error", - "code": 4086 - }, - "'const' enum member initializer was evaluated to disallowed value 'NaN'.": { - "category": "Error", - "code": 4087 - }, - "Property '{0}' does not exist on 'const' enum '{1}'.": { - "category": "Error", - "code": 4088, - "isEarly": true - }, - "The current host does not support the '{0}' option.": { - "category": "Error", - "code": 5001 - }, - "Cannot find the common subdirectory path for the input files.": { - "category": "Error", - "code": 5009 - }, - "Cannot read file '{0}': {1}": { - "category": "Error", - "code": 5012 - }, - "Unsupported file encoding.": { - "category": "Error", - "code": 5013 - }, - "Unknown compiler option '{0}'.": { - "category": "Error", - "code": 5023 - }, - "Compiler option '{0}' requires a value of type {1}.": { - "category": "Error", - "code": 5024 - }, - "Could not write file '{0}': {1}": { - "category": "Error", - "code": 5033 - }, - "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option.": { - "category": "Error", - "code": 5038 - }, - "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option.": { - "category": "Error", - "code": 5039 - }, - "Option 'noEmit' cannot be specified with option 'out' or 'outDir'.": { - "category": "Error", - "code": 5040 - }, - "Option 'noEmit' cannot be specified with option 'declaration'.": { - "category": "Error", - "code": 5041 - }, - "Option 'project' cannot be mixed with source files on a command line.": { - "category": "Error", - "code": 5042 - }, - "Concatenate and emit output to single file.": { - "category": "Message", - "code": 6001 - }, - "Generates corresponding '.d.ts' file.": { - "category": "Message", - "code": 6002 - }, - "Specifies the location where debugger should locate map files instead of generated locations.": { - "category": "Message", - "code": 6003 - }, - "Specifies the location where debugger should locate TypeScript files instead of source locations.": { - "category": "Message", - "code": 6004 - }, - "Watch input files.": { - "category": "Message", - "code": 6005 - }, - "Redirect output structure to the directory.": { - "category": "Message", - "code": 6006 - }, - "Do not erase const enum declarations in generated code.": { - "category": "Message", - "code": 6007 - }, - "Do not emit outputs if any type checking errors were reported.": { - "category": "Message", - "code": 6008 - }, - "Do not emit comments to output.": { - "category": "Message", - "code": 6009 - }, - "Do not emit outputs.": { - "category": "Message", - "code": 6010 - }, - "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)": { - "category": "Message", - "code": 6015 - }, - "Specify module code generation: 'commonjs' or 'amd'": { - "category": "Message", - "code": 6016 - }, - "Print this message.": { - "category": "Message", - "code": 6017 - }, - "Print the compiler's version.": { - "category": "Message", - "code": 6019 - }, - "Compile the project in the given directory.": { - "category": "Message", - "code": 6020 - }, - "Syntax: {0}": { - "category": "Message", - "code": 6023 - }, - "options": { - "category": "Message", - "code": 6024 - }, - "file": { - "category": "Message", - "code": 6025 - }, - "Examples: {0}": { - "category": "Message", - "code": 6026 - }, - "Options:": { - "category": "Message", - "code": 6027 - }, - "Version {0}": { - "category": "Message", - "code": 6029 - }, - "Insert command line options and files from a file.": { - "category": "Message", - "code": 6030 - }, - "File change detected. Starting incremental compilation...": { - "category": "Message", - "code": 6032 - }, - "KIND": { - "category": "Message", - "code": 6034 - }, - "FILE": { - "category": "Message", - "code": 6035 - }, - "VERSION": { - "category": "Message", - "code": 6036 - }, - "LOCATION": { - "category": "Message", - "code": 6037 - }, - "DIRECTORY": { - "category": "Message", - "code": 6038 - }, - "Compilation complete. Watching for file changes.": { - "category": "Message", - "code": 6042 - }, - "Generates corresponding '.map' file.": { - "category": "Message", - "code": 6043 - }, - "Compiler option '{0}' expects an argument.": { - "category": "Error", - "code": 6044 - }, - "Unterminated quoted string in response file '{0}'.": { - "category": "Error", - "code": 6045 - }, - "Argument for '--module' option must be 'commonjs' or 'amd'.": { - "category": "Error", - "code": 6046 - }, - "Argument for '--target' option must be 'es3', 'es5', or 'es6'.": { - "category": "Error", - "code": 6047 - }, - "Locale must be of the form or -. For example '{0}' or '{1}'.": { - "category": "Error", - "code": 6048 - }, - "Unsupported locale '{0}'.": { - "category": "Error", - "code": 6049 - }, - "Unable to open file '{0}'.": { - "category": "Error", - "code": 6050 - }, - "Corrupted locale file {0}.": { - "category": "Error", - "code": 6051 - }, - "Raise error on expressions and declarations with an implied 'any' type.": { - "category": "Message", - "code": 6052 - }, - "File '{0}' not found.": { - "category": "Error", - "code": 6053 - }, - "File '{0}' must have extension '.ts' or '.d.ts'.": { - "category": "Error", - "code": 6054 - }, - "Suppress noImplicitAny errors for indexing objects lacking index signatures.": { - "category": "Message", - "code": 6055 - }, + "Import declaration '{0}' is using private name '{1}'.": { + "category": "Error", + "code": 4000 + }, + "Type parameter '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4002 + }, + "Type parameter '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4004 + }, + "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4006 + }, + "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4008 + }, + "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4010 + }, + "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4012 + }, + "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4014 + }, + "Type parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4016 + }, + "Implements clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4019 + }, + "Extends clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4020 + }, + "Extends clause of exported interface '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4022 + }, + "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4023 + }, + "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4024 + }, + "Exported variable '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4025 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4026 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4027 + }, + "Public static property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4028 + }, + "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4029 + }, + "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4030 + }, + "Public property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4031 + }, + "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4032 + }, + "Property '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4033 + }, + "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4034 + }, + "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4035 + }, + "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4036 + }, + "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4037 + }, + "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4038 + }, + "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4039 + }, + "Return type of public static property getter from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4040 + }, + "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4041 + }, + "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4042 + }, + "Return type of public property getter from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4043 + }, + "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4044 + }, + "Return type of constructor signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4045 + }, + "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4046 + }, + "Return type of call signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4047 + }, + "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4048 + }, + "Return type of index signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4049 + }, + "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4050 + }, + "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4051 + }, + "Return type of public static method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4052 + }, + "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4053 + }, + "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4054 + }, + "Return type of public method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4055 + }, + "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4056 + }, + "Return type of method from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4057 + }, + "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4058 + }, + "Return type of exported function has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4059 + }, + "Return type of exported function has or is using private name '{0}'.": { + "category": "Error", + "code": 4060 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4061 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4062 + }, + "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4063 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4064 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4065 + }, + "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4066 + }, + "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4067 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4068 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4069 + }, + "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4070 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4071 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4072 + }, + "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4073 + }, + "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4074 + }, + "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4075 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4076 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4077 + }, + "Parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4078 + }, + "Exported type alias '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4081 + }, + "Enum declarations must all be const or non-const.": { + "category": "Error", + "code": 4082 + }, + "In 'const' enum declarations member initializer must be constant expression.": { + "category": "Error", + "code": 4083, + "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.": { + "category": "Error", + "code": 4084 + }, + "A const enum member can only be accessed using a string literal.": { + "category": "Error", + "code": 4085, + "isEarly": true + }, + "'const' enum member initializer was evaluated to a non-finite value.": { + "category": "Error", + "code": 4086 + }, + "'const' enum member initializer was evaluated to disallowed value 'NaN'.": { + "category": "Error", + "code": 4087 + }, + "Property '{0}' does not exist on 'const' enum '{1}'.": { + "category": "Error", + "code": 4088, + "isEarly": true + }, + "The current host does not support the '{0}' option.": { + "category": "Error", + "code": 5001 + }, + "Cannot find the common subdirectory path for the input files.": { + "category": "Error", + "code": 5009 + }, + "Cannot read file '{0}': {1}": { + "category": "Error", + "code": 5012 + }, + "Unsupported file encoding.": { + "category": "Error", + "code": 5013 + }, + "Unknown compiler option '{0}'.": { + "category": "Error", + "code": 5023 + }, + "Compiler option '{0}' requires a value of type {1}.": { + "category": "Error", + "code": 5024 + }, + "Could not write file '{0}': {1}": { + "category": "Error", + "code": 5033 + }, + "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option.": { + "category": "Error", + "code": 5038 + }, + "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option.": { + "category": "Error", + "code": 5039 + }, + "Option 'noEmit' cannot be specified with option 'out' or 'outDir'.": { + "category": "Error", + "code": 5040 + }, + "Option 'noEmit' cannot be specified with option 'declaration'.": { + "category": "Error", + "code": 5041 + }, + "Option 'project' cannot be mixed with source files on a command line.": { + "category": "Error", + "code": 5042 + }, + "Concatenate and emit output to single file.": { + "category": "Message", + "code": 6001 + }, + "Generates corresponding '.d.ts' file.": { + "category": "Message", + "code": 6002 + }, + "Specifies the location where debugger should locate map files instead of generated locations.": { + "category": "Message", + "code": 6003 + }, + "Specifies the location where debugger should locate TypeScript files instead of source locations.": { + "category": "Message", + "code": 6004 + }, + "Watch input files.": { + "category": "Message", + "code": 6005 + }, + "Redirect output structure to the directory.": { + "category": "Message", + "code": 6006 + }, + "Do not erase const enum declarations in generated code.": { + "category": "Message", + "code": 6007 + }, + "Do not emit outputs if any type checking errors were reported.": { + "category": "Message", + "code": 6008 + }, + "Do not emit comments to output.": { + "category": "Message", + "code": 6009 + }, + "Do not emit outputs.": { + "category": "Message", + "code": 6010 + }, + "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)": { + "category": "Message", + "code": 6015 + }, + "Specify module code generation: 'commonjs' or 'amd'": { + "category": "Message", + "code": 6016 + }, + "Print this message.": { + "category": "Message", + "code": 6017 + }, + "Print the compiler's version.": { + "category": "Message", + "code": 6019 + }, + "Compile the project in the given directory.": { + "category": "Message", + "code": 6020 + }, + "Syntax: {0}": { + "category": "Message", + "code": 6023 + }, + "options": { + "category": "Message", + "code": 6024 + }, + "file": { + "category": "Message", + "code": 6025 + }, + "Examples: {0}": { + "category": "Message", + "code": 6026 + }, + "Options:": { + "category": "Message", + "code": 6027 + }, + "Version {0}": { + "category": "Message", + "code": 6029 + }, + "Insert command line options and files from a file.": { + "category": "Message", + "code": 6030 + }, + "File change detected. Starting incremental compilation...": { + "category": "Message", + "code": 6032 + }, + "KIND": { + "category": "Message", + "code": 6034 + }, + "FILE": { + "category": "Message", + "code": 6035 + }, + "VERSION": { + "category": "Message", + "code": 6036 + }, + "LOCATION": { + "category": "Message", + "code": 6037 + }, + "DIRECTORY": { + "category": "Message", + "code": 6038 + }, + "Compilation complete. Watching for file changes.": { + "category": "Message", + "code": 6042 + }, + "Generates corresponding '.map' file.": { + "category": "Message", + "code": 6043 + }, + "Compiler option '{0}' expects an argument.": { + "category": "Error", + "code": 6044 + }, + "Unterminated quoted string in response file '{0}'.": { + "category": "Error", + "code": 6045 + }, + "Argument for '--module' option must be 'commonjs' or 'amd'.": { + "category": "Error", + "code": 6046 + }, + "Argument for '--target' option must be 'es3', 'es5', or 'es6'.": { + "category": "Error", + "code": 6047 + }, + "Locale must be of the form or -. For example '{0}' or '{1}'.": { + "category": "Error", + "code": 6048 + }, + "Unsupported locale '{0}'.": { + "category": "Error", + "code": 6049 + }, + "Unable to open file '{0}'.": { + "category": "Error", + "code": 6050 + }, + "Corrupted locale file {0}.": { + "category": "Error", + "code": 6051 + }, + "Raise error on expressions and declarations with an implied 'any' type.": { + "category": "Message", + "code": 6052 + }, + "File '{0}' not found.": { + "category": "Error", + "code": 6053 + }, + "File '{0}' must have extension '.ts' or '.d.ts'.": { + "category": "Error", + "code": 6054 + }, + "Suppress noImplicitAny errors for indexing objects lacking index signatures.": { + "category": "Message", + "code": 6055 + }, - "Variable '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7005 - }, - "Parameter '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7006 - }, - "Member '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7008 - }, - "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.": { - "category": "Error", - "code": 7009 - }, - "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.": { - "category": "Error", - "code": 7010 - }, - "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.": { - "category": "Error", - "code": 7011 - }, - "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.": { - "category": "Error", - "code": 7013 - }, - "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation.": { - "category": "Error", - "code": 7016 - }, - "Index signature of object type implicitly has an 'any' type.": { - "category": "Error", - "code": 7017 - }, - "Object literal's property '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7018 - }, - "Rest parameter '{0}' implicitly has an 'any[]' type.": { - "category": "Error", - "code": 7019 - }, - "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.": { - "category": "Error", - "code": 7020 - }, - "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation.": { - "category": "Error", - "code": 7021 - }, - "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer.": { - "category": "Error", - "code": 7022 - }, - "'{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.": { - "category": "Error", - "code": 7023 - }, - "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.": { - "category": "Error", - "code": 7024 - }, - "You cannot rename this element.": { - "category": "Error", - "code": 8000 - }, - "'yield' expressions are not currently supported.": { - "category": "Error", - "code": 9000, - "isEarly": true - }, - "Generators are not currently supported.": { - "category": "Error", - "code": 9001, - "isEarly": true - } + "Variable '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7005 + }, + "Parameter '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7006 + }, + "Member '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7008 + }, + "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.": { + "category": "Error", + "code": 7009 + }, + "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.": { + "category": "Error", + "code": 7010 + }, + "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.": { + "category": "Error", + "code": 7011 + }, + "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7013 + }, + "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation.": { + "category": "Error", + "code": 7016 + }, + "Index signature of object type implicitly has an 'any' type.": { + "category": "Error", + "code": 7017 + }, + "Object literal's property '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7018 + }, + "Rest parameter '{0}' implicitly has an 'any[]' type.": { + "category": "Error", + "code": 7019 + }, + "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7020 + }, + "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation.": { + "category": "Error", + "code": 7021 + }, + "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer.": { + "category": "Error", + "code": 7022 + }, + "'{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.": { + "category": "Error", + "code": 7023 + }, + "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.": { + "category": "Error", + "code": 7024 + }, + "You cannot rename this element.": { + "category": "Error", + "code": 8000 + }, + "'yield' expressions are not currently supported.": { + "category": "Error", + "code": 9000, + "isEarly": true + }, + "Generators are not currently supported.": { + "category": "Error", + "code": 9001, + "isEarly": true + }, + "An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead": { + "category": "Error", + "code": 9002 + } } diff --git a/src/harness/harness.ts b/src/harness/harness.ts index df73e52a605..166ae3c7d63 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -107,7 +107,7 @@ module Utils { export function memoize(f: T): T { var cache: { [idx: string]: any } = {}; - return (() => { + return (function () { var key = Array.prototype.join.call(arguments); var cachedResult = cache[key]; if (cachedResult) { diff --git a/src/harness/loggedIO.ts b/src/harness/loggedIO.ts index c6d15c34a84..57035262581 100644 --- a/src/harness/loggedIO.ts +++ b/src/harness/loggedIO.ts @@ -138,7 +138,7 @@ module Playback { function recordReplay(original: T, underlying: any) { function createWrapper(record: T, replay: T): T { - return (() => { + return (function () { if (replayLog !== undefined) { return replay.apply(undefined, arguments); } else if (recordLog !== undefined) { From d5b953d3f67eebd1fe0e75ab6126bf5450d02d9f Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 16:17:13 -0800 Subject: [PATCH 116/211] Add testcases --- .../reference/emitArrowFunctionAsIs.js | 13 ++++ .../reference/emitArrowFunctionAsIs.types | 17 ++++++ .../reference/emitArrowFunctionAsIsES6.js | 13 ++++ .../reference/emitArrowFunctionAsIsES6.types | 17 ++++++ ...ArrowFunctionWhenUsingArguments.errors.txt | 46 ++++++++++++++ .../emitArrowFunctionWhenUsingArguments.js | 60 +++++++++++++++++++ ...owFunctionWhenUsingArgumentsES6.errors.txt | 46 ++++++++++++++ .../emitArrowFunctionWhenUsingArgumentsES6.js | 60 +++++++++++++++++++ .../arrowFunction/emitArrowFunctionAsIs.ts | 5 ++ .../arrowFunction/emitArrowFunctionAsIsES6.ts | 5 ++ .../emitArrowFunctionWhenUsingArguments.ts | 32 ++++++++++ .../emitArrowFunctionWhenUsingArgumentsES6.ts | 32 ++++++++++ 12 files changed, 346 insertions(+) create mode 100644 tests/baselines/reference/emitArrowFunctionAsIs.js create mode 100644 tests/baselines/reference/emitArrowFunctionAsIs.types create mode 100644 tests/baselines/reference/emitArrowFunctionAsIsES6.js create mode 100644 tests/baselines/reference/emitArrowFunctionAsIsES6.types create mode 100644 tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt create mode 100644 tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js create mode 100644 tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt create mode 100644 tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts create mode 100644 tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts diff --git a/tests/baselines/reference/emitArrowFunctionAsIs.js b/tests/baselines/reference/emitArrowFunctionAsIs.js new file mode 100644 index 00000000000..11df7903ad8 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIs.js @@ -0,0 +1,13 @@ +//// [emitArrowFunctionAsIs.ts] +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; + +//// [emitArrowFunctionAsIs.js] +var arrow1 = function (a) { +}; +var arrow2 = function (a) { +}; +var arrow3 = function (a, b) { +}; diff --git a/tests/baselines/reference/emitArrowFunctionAsIs.types b/tests/baselines/reference/emitArrowFunctionAsIs.types new file mode 100644 index 00000000000..1ab5de9724a --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIs.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts === +var arrow1 = a => { }; +>arrow1 : (a: any) => void +>a => { } : (a: any) => void +>a : any + +var arrow2 = (a) => { }; +>arrow2 : (a: any) => void +>(a) => { } : (a: any) => void +>a : any + +var arrow3 = (a, b) => { }; +>arrow3 : (a: any, b: any) => void +>(a, b) => { } : (a: any, b: any) => void +>a : any +>b : any + diff --git a/tests/baselines/reference/emitArrowFunctionAsIsES6.js b/tests/baselines/reference/emitArrowFunctionAsIsES6.js new file mode 100644 index 00000000000..9941434ae10 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIsES6.js @@ -0,0 +1,13 @@ +//// [emitArrowFunctionAsIsES6.ts] +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; + +//// [emitArrowFunctionAsIsES6.js] +var arrow1 = a => { +}; +var arrow2 = (a) => { +}; +var arrow3 = (a, b) => { +}; diff --git a/tests/baselines/reference/emitArrowFunctionAsIsES6.types b/tests/baselines/reference/emitArrowFunctionAsIsES6.types new file mode 100644 index 00000000000..6b8c9e54bbe --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIsES6.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts === +var arrow1 = a => { }; +>arrow1 : (a: any) => void +>a => { } : (a: any) => void +>a : any + +var arrow2 = (a) => { }; +>arrow2 : (a: any) => void +>(a) => { } : (a: any) => void +>a : any + +var arrow3 = (a, b) => { }; +>arrow3 : (a: any, b: any) => void +>(a, b) => { } : (a: any, b: any) => void +>a : any +>b : any + diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt new file mode 100644 index 00000000000..714d6a3e46f --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt @@ -0,0 +1,46 @@ +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(2,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(7,19): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(13,13): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(19,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + + +==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts (4 errors) ==== + var a = () => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + + var b = function () { + var a = () => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + } + + function baz() { + () => { + var arg = arguments[0]; + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + } + + function foo(inputFunc: () => void) { } + foo(() => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + }); + + function bar() { + var arg = arguments[0]; // no error + } + + + () => { + function foo() { + var arg = arguments[0]; // no error + } + } \ No newline at end of file diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js new file mode 100644 index 00000000000..00a4c7aa051 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js @@ -0,0 +1,60 @@ +//// [emitArrowFunctionWhenUsingArguments.ts] +var a = () => { + var arg = arguments[0]; // error +} + +var b = function () { + var a = () => { + var arg = arguments[0]; // error + } +} + +function baz() { + () => { + var arg = arguments[0]; + } +} + +function foo(inputFunc: () => void) { } +foo(() => { + var arg = arguments[0]; // error +}); + +function bar() { + var arg = arguments[0]; // no error +} + + +() => { + function foo() { + var arg = arguments[0]; // no error + } +} + +//// [emitArrowFunctionWhenUsingArguments.js] +var a = () => { + var arg = arguments[0]; // error +}; +var b = function () { + var a = () => { + var arg = arguments[0]; // error + }; +}; +function baz() { + (() => { + var arg = arguments[0]; + }); +} +function foo(inputFunc) { +} +foo(() => { + var arg = arguments[0]; // error +}); +function bar() { + var arg = arguments[0]; // no error +} +(() => { + function foo() { + var arg = arguments[0]; // no error + } +}); diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt new file mode 100644 index 00000000000..c134fb84958 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt @@ -0,0 +1,46 @@ +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(2,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(7,19): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(13,13): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(19,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + + +==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts (4 errors) ==== + var a = () => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + + var b = function () { + var a = () => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + } + + function baz() { + () => { + var arg = arguments[0]; + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + } + } + + function foo(inputFunc: () => void) { } + foo(() => { + var arg = arguments[0]; // error + ~~~~~~~~~ +!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead + }); + + function bar() { + var arg = arguments[0]; // no error + } + + + () => { + function foo() { + var arg = arguments[0]; // no error + } + } \ No newline at end of file diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js new file mode 100644 index 00000000000..0deacd409df --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js @@ -0,0 +1,60 @@ +//// [emitArrowFunctionWhenUsingArgumentsES6.ts] +var a = () => { + var arg = arguments[0]; // error +} + +var b = function () { + var a = () => { + var arg = arguments[0]; // error + } +} + +function baz() { + () => { + var arg = arguments[0]; + } +} + +function foo(inputFunc: () => void) { } +foo(() => { + var arg = arguments[0]; // error +}); + +function bar() { + var arg = arguments[0]; // no error +} + + +() => { + function foo() { + var arg = arguments[0]; // no error + } +} + +//// [emitArrowFunctionWhenUsingArgumentsES6.js] +var a = () => { + var arg = arguments[0]; // error +}; +var b = function () { + var a = () => { + var arg = arguments[0]; // error + }; +}; +function baz() { + (() => { + var arg = arguments[0]; + }); +} +function foo(inputFunc) { +} +foo(() => { + var arg = arguments[0]; // error +}); +function bar() { + var arg = arguments[0]; // no error +} +(() => { + function foo() { + var arg = arguments[0]; // no error + } +}); diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts new file mode 100644 index 00000000000..1366fff90a1 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts @@ -0,0 +1,5 @@ +// @target:ES5 +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts new file mode 100644 index 00000000000..01331ededf9 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts @@ -0,0 +1,5 @@ +// @target:ES6 +var arrow1 = a => { }; +var arrow2 = (a) => { }; + +var arrow3 = (a, b) => { }; \ No newline at end of file diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts new file mode 100644 index 00000000000..fa92d48a4c0 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts @@ -0,0 +1,32 @@ +// @target: es6 +var a = () => { + var arg = arguments[0]; // error +} + +var b = function () { + var a = () => { + var arg = arguments[0]; // error + } +} + +function baz() { + () => { + var arg = arguments[0]; + } +} + +function foo(inputFunc: () => void) { } +foo(() => { + var arg = arguments[0]; // error +}); + +function bar() { + var arg = arguments[0]; // no error +} + + +() => { + function foo() { + var arg = arguments[0]; // no error + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts new file mode 100644 index 00000000000..fa92d48a4c0 --- /dev/null +++ b/tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts @@ -0,0 +1,32 @@ +// @target: es6 +var a = () => { + var arg = arguments[0]; // error +} + +var b = function () { + var a = () => { + var arg = arguments[0]; // error + } +} + +function baz() { + () => { + var arg = arguments[0]; + } +} + +function foo(inputFunc: () => void) { } +foo(() => { + var arg = arguments[0]; // error +}); + +function bar() { + var arg = arguments[0]; // no error +} + + +() => { + function foo() { + var arg = arguments[0]; // no error + } +} \ No newline at end of file From 70140ef508cbfb6ab14910f5aa16b5d436808c1e Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 16:43:25 -0800 Subject: [PATCH 117/211] Fix spacing due to tab --- src/compiler/checker.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fdad2277f0a..ee9c827f612 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4836,15 +4836,15 @@ module ts { function checkIdentifier(node: Identifier): Type { var symbol = getResolvedSymbol(node); - // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. - // Although in down-level emit of arrow function, we emit it using function expression which means that - // arguments objects will be inner bound while emitting arrow function natively in ES6, arguments objects - // will be bound to non-arrow function that contain this arrow function. This results in inconsistent bahaviour. - // To avoid that we will give an error to users if they use arguments objects in arrow function so that they - // can explicitly bound arguments objects - if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { - error(node, Diagnostics.An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); - } + // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. + // Although in down-level emit of arrow function, we emit it using function expression which means that + // arguments objects will be inner bound while emitting arrow function natively in ES6, arguments objects + // will be bound to non-arrow function that contain this arrow function. This results in inconsistent bahaviour. + // To avoid that we will give an error to users if they use arguments objects in arrow function so that they + // can explicitly bound arguments objects + if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { + error(node, Diagnostics.An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); + } if (symbol.flags & SymbolFlags.Import) { var symbolLinks = getSymbolLinks(symbol); @@ -4905,9 +4905,9 @@ module ts { if (compilerOptions.target >= ScriptTarget.ES6) { needToCaptureLexicalThis = false; } - else { - needToCaptureLexicalThis = true; - } + else { + needToCaptureLexicalThis = true; + } } switch (container.kind) { From 8d731d400cec101dcc9a4c21de864a0150452c54 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 16:48:53 -0800 Subject: [PATCH 118/211] Address code review --- src/compiler/emitter.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 0d54920a617..6279f3a3ebb 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3313,20 +3313,20 @@ module ts { decreaseIndent(); } - function emitSignatureParametersES6(node: FunctionLikeDeclaration) { - // Check the node's parameters whether it contains flags indicating that it has no parenthesis around the parameters - // Preserver no-parenthesis - if (node && node.flags & NodeFlags.SimpleArrowFunction) { - increaseIndent(); + function emitSignatureParametersForArrow(node: FunctionLikeDeclaration) { + // Check the node's parameters whether it contains flags indicating that it has no parenthesis around the parameters + // Preserve no-parenthesis + if (node && node.flags & NodeFlags.SimpleArrowFunction) { + increaseIndent(); var parameters = node.parameters; - var omitCount = languageVersion < ScriptTarget.ES6 && hasRestParameters(node) ? 1 : 0; - emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); - decreaseIndent(); - } - else { - emitSignatureParameters(node); - } - } + var omitCount = hasRestParameters(node) ? 1 : 0; + emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); + decreaseIndent(); + } + else { + emitSignatureParameters(node); + } + } function emitSignatureAndBody(node: FunctionLikeDeclaration) { var saveTempCount = tempCount; @@ -3338,7 +3338,7 @@ module ts { // When targeting ES6, emit arrow function natively in ES6 if (isES6ArrowFunction(node)) { - emitSignatureParametersES6(node); + emitSignatureParametersForArrow(node); write(" =>"); } else { From fd3562b60f57a2227e837765754eeb7e2cef73a3 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 28 Jan 2015 17:13:26 -0800 Subject: [PATCH 119/211] Update ServicesVersion --- 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 0a701b0006d..d0810442b66 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -9,7 +9,7 @@ /// module ts { - export var servicesVersion = "0.4"; + export var servicesVersion = "0.5"; export interface Node { getSourceFile(): SourceFile; From 2b200d472706762a59521469b8e7e8f6cdacde0e Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 17:34:38 -0800 Subject: [PATCH 120/211] Address code review --- src/compiler/checker.ts | 4 ++-- src/compiler/emitter.ts | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ee9c827f612..697828c6891 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4838,8 +4838,8 @@ module ts { // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. // Although in down-level emit of arrow function, we emit it using function expression which means that - // arguments objects will be inner bound while emitting arrow function natively in ES6, arguments objects - // will be bound to non-arrow function that contain this arrow function. This results in inconsistent bahaviour. + // arguments objects will be bound to the inner object; emitting arrow function natively in ES6, arguments objects + // will be bound to non-arrow function that contain this arrow function. This results in inconsistent behaviour. // To avoid that we will give an error to users if they use arguments objects in arrow function so that they // can explicitly bound arguments objects if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 6279f3a3ebb..92051f4edb2 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3263,7 +3263,7 @@ module ts { emitTrailingComments(node); } - function isES6ArrowFunction(node: FunctionLikeDeclaration): boolean { + function shouldEmitAsArrowFunction(node: FunctionLikeDeclaration): boolean { return node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6; } @@ -3279,7 +3279,7 @@ module ts { // For targeting below es6, emit functions-like declaration including arrow function using function keyword. // When targeting ES6, emit arrow function natively in ES6 by omitting function keyword and using fat arrow instead - if (!isES6ArrowFunction(node)) { + if (!shouldEmitAsArrowFunction(node)) { write("function "); } @@ -3314,9 +3314,8 @@ module ts { } function emitSignatureParametersForArrow(node: FunctionLikeDeclaration) { - // Check the node's parameters whether it contains flags indicating that it has no parenthesis around the parameters - // Preserve no-parenthesis - if (node && node.flags & NodeFlags.SimpleArrowFunction) { + // Check whether the parameter list needs parentheses and preserve no-parenthesis + if (node.flags & NodeFlags.SimpleArrowFunction) { increaseIndent(); var parameters = node.parameters; var omitCount = hasRestParameters(node) ? 1 : 0; @@ -3337,13 +3336,13 @@ module ts { tempParameters = undefined; // When targeting ES6, emit arrow function natively in ES6 - if (isES6ArrowFunction(node)) { + if (shouldEmitAsArrowFunction(node)) { emitSignatureParametersForArrow(node); - write(" =>"); + write(" =>"); + } + else { + emitSignatureParameters(node); } - else { - emitSignatureParameters(node); - } write(" {"); scopeEmitStart(node); From 9b04180475c8faebe6a44f759a70d30e62a61b84 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 28 Jan 2015 17:56:48 -0800 Subject: [PATCH 121/211] Change tab to space --- 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 697828c6891..a4509599e35 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4905,7 +4905,7 @@ module ts { if (compilerOptions.target >= ScriptTarget.ES6) { needToCaptureLexicalThis = false; } - else { + else { needToCaptureLexicalThis = true; } } From 9f977af9cc88fc64ab70d721655b3d0af1908c5d Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 29 Jan 2015 11:22:00 -0800 Subject: [PATCH 122/211] Shorten library to lib in getDefaultLibFilePath for consistency --- src/services/services.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index d0810442b66..933c98d0a8c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -5809,13 +5809,13 @@ module ts { * node package. * The functionality is not supported if the ts module is consumed outside of a node module. */ - export function getDefaultLibraryFilePath(options: CompilerOptions): string { + export function getDefaultLibFilePath(options: CompilerOptions): string { // Check __dirname is defined and that we are on a node.js system. if (typeof __dirname !== "undefined") { return __dirname + directorySeparator + getDefaultLibFilename(options); } - throw new Error("getDefaultLibraryFilename is only supported when consumed as a node module. "); + throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); } function initializeServices() { From 5fa30e550c147000991b868b747ee4c1749bd31d Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 29 Jan 2015 11:23:02 -0800 Subject: [PATCH 123/211] Add API sample tests --- src/harness/harness.ts | 16 +- .../baselines/reference/APISample_compile.js | 1942 +++++ .../reference/APISample_compile.types | 5970 ++++++++++++++++ tests/baselines/reference/APISample_linter.js | 1994 ++++++ .../reference/APISample_linter.types | 6100 ++++++++++++++++ .../reference/APISample_transform.js | 1999 ++++++ .../reference/APISample_transform.types | 6048 ++++++++++++++++ .../baselines/reference/APISample_watcher.js | 2057 ++++++ .../reference/APISample_watcher.types | 6226 +++++++++++++++++ tests/cases/compiler/APISample_compile.ts | 37 + tests/cases/compiler/APISample_linter.ts | 65 + tests/cases/compiler/APISample_transform.ts | 67 + tests/cases/compiler/APISample_watcher.ts | 104 + 13 files changed, 32622 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/APISample_compile.js create mode 100644 tests/baselines/reference/APISample_compile.types create mode 100644 tests/baselines/reference/APISample_linter.js create mode 100644 tests/baselines/reference/APISample_linter.types create mode 100644 tests/baselines/reference/APISample_transform.js create mode 100644 tests/baselines/reference/APISample_transform.types create mode 100644 tests/baselines/reference/APISample_watcher.js create mode 100644 tests/baselines/reference/APISample_watcher.types create mode 100644 tests/cases/compiler/APISample_compile.ts create mode 100644 tests/cases/compiler/APISample_linter.ts create mode 100644 tests/cases/compiler/APISample_transform.ts create mode 100644 tests/cases/compiler/APISample_watcher.ts diff --git a/src/harness/harness.ts b/src/harness/harness.ts index df73e52a605..7a167258ffa 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -931,6 +931,8 @@ module Harness { settingsCallback(null); } + var newLine = '\r\n'; + var useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames; this.settings.forEach(setting => { switch (setting.flag.toLowerCase()) { @@ -1009,7 +1011,7 @@ module Harness { case 'newline': case 'newlines': - ts.sys.newLine = setting.value; + newLine = setting.value; break; case 'comments': @@ -1051,7 +1053,7 @@ module Harness { break; case 'includebuiltfile': - inputFiles.push({ unitName: setting.value, content: IO.readFile(libFolder + setting.value) }); + inputFiles.push({ unitName: setting.value, content: normalizeLineEndings(IO.readFile(libFolder + setting.value), newLine) }); break; default: @@ -1097,7 +1099,7 @@ module Harness { onComplete(result, program); // reset what newline means in case the last test changed it - ts.sys.newLine = '\r\n'; + ts.sys.newLine = newLine; return options; } @@ -1169,6 +1171,14 @@ module Harness { } } + function normalizeLineEndings(text: string, lineEnding: string): string { + var normalized = text.replace(/\r\n?/g, '\n'); + if (lineEnding !== '\n') { + normalized = normalized.replace(/\n/g, lineEnding); + } + return normalized; + } + export function getMinimalDiagnostic(err: ts.Diagnostic): HarnessDiagnostic { var errorLineInfo = err.file ? err.file.getLineAndCharacterFromPosition(err.start) : { line: 0, character: 0 }; return { diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js new file mode 100644 index 00000000000..fd9fbdfe781 --- /dev/null +++ b/tests/baselines/reference/APISample_compile.js @@ -0,0 +1,1942 @@ +//// [tests/cases/compiler/APISample_compile.ts] //// + +//// [APISample_compile.ts] + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-minimal-compiler + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; + +import ts = require("typescript"); + +export function compile(filenames: string[], options: ts.CompilerOptions): void { + var host = ts.createCompilerHost(options); + var program = ts.createProgram(filenames, options, host); + var checker = ts.createTypeChecker(program, /*produceDiagnostics*/ true); + var result = program.emitFiles(); + + var allDiagnostics = program.getDiagnostics() + .concat(checker.getDiagnostics()) + .concat(result.diagnostics); + + allDiagnostics.forEach(diagnostic => { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + }); + + console.log(`Process exiting with code '${result.emitResultStatus}'.`); + process.exit(result.emitResultStatus); +} + +compile(process.argv.slice(2), { + noEmitOnError: true, noImplicitAny: true, + target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS +}); +//// [typescript.d.ts] +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { + [index: string]: T; + } + interface TextRange { + pos: number; + end: number; + } + const enum SyntaxKind { + Unknown = 0, + EndOfFileToken = 1, + SingleLineCommentTrivia = 2, + MultiLineCommentTrivia = 3, + NewLineTrivia = 4, + WhitespaceTrivia = 5, + ConflictMarkerTrivia = 6, + NumericLiteral = 7, + StringLiteral = 8, + RegularExpressionLiteral = 9, + NoSubstitutionTemplateLiteral = 10, + TemplateHead = 11, + TemplateMiddle = 12, + TemplateTail = 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 = 63, + Identifier = 64, + BreakKeyword = 65, + CaseKeyword = 66, + CatchKeyword = 67, + ClassKeyword = 68, + ConstKeyword = 69, + ContinueKeyword = 70, + DebuggerKeyword = 71, + DefaultKeyword = 72, + DeleteKeyword = 73, + DoKeyword = 74, + ElseKeyword = 75, + EnumKeyword = 76, + ExportKeyword = 77, + ExtendsKeyword = 78, + FalseKeyword = 79, + FinallyKeyword = 80, + ForKeyword = 81, + FunctionKeyword = 82, + IfKeyword = 83, + ImportKeyword = 84, + InKeyword = 85, + InstanceOfKeyword = 86, + NewKeyword = 87, + NullKeyword = 88, + ReturnKeyword = 89, + SuperKeyword = 90, + SwitchKeyword = 91, + ThisKeyword = 92, + ThrowKeyword = 93, + TrueKeyword = 94, + TryKeyword = 95, + TypeOfKeyword = 96, + VarKeyword = 97, + VoidKeyword = 98, + WhileKeyword = 99, + WithKeyword = 100, + ImplementsKeyword = 101, + InterfaceKeyword = 102, + LetKeyword = 103, + PackageKeyword = 104, + PrivateKeyword = 105, + ProtectedKeyword = 106, + PublicKeyword = 107, + StaticKeyword = 108, + YieldKeyword = 109, + AnyKeyword = 110, + BooleanKeyword = 111, + ConstructorKeyword = 112, + DeclareKeyword = 113, + GetKeyword = 114, + ModuleKeyword = 115, + RequireKeyword = 116, + NumberKeyword = 117, + SetKeyword = 118, + StringKeyword = 119, + TypeKeyword = 120, + QualifiedName = 121, + ComputedPropertyName = 122, + TypeParameter = 123, + Parameter = 124, + PropertySignature = 125, + PropertyDeclaration = 126, + MethodSignature = 127, + MethodDeclaration = 128, + Constructor = 129, + GetAccessor = 130, + SetAccessor = 131, + CallSignature = 132, + ConstructSignature = 133, + IndexSignature = 134, + TypeReference = 135, + FunctionType = 136, + ConstructorType = 137, + TypeQuery = 138, + TypeLiteral = 139, + ArrayType = 140, + TupleType = 141, + UnionType = 142, + ParenthesizedType = 143, + ObjectBindingPattern = 144, + ArrayBindingPattern = 145, + BindingElement = 146, + ArrayLiteralExpression = 147, + ObjectLiteralExpression = 148, + PropertyAccessExpression = 149, + ElementAccessExpression = 150, + CallExpression = 151, + NewExpression = 152, + TaggedTemplateExpression = 153, + TypeAssertionExpression = 154, + ParenthesizedExpression = 155, + FunctionExpression = 156, + ArrowFunction = 157, + DeleteExpression = 158, + TypeOfExpression = 159, + VoidExpression = 160, + PrefixUnaryExpression = 161, + PostfixUnaryExpression = 162, + BinaryExpression = 163, + ConditionalExpression = 164, + TemplateExpression = 165, + YieldExpression = 166, + SpreadElementExpression = 167, + OmittedExpression = 168, + TemplateSpan = 169, + Block = 170, + VariableStatement = 171, + EmptyStatement = 172, + ExpressionStatement = 173, + IfStatement = 174, + DoStatement = 175, + WhileStatement = 176, + ForStatement = 177, + ForInStatement = 178, + ContinueStatement = 179, + BreakStatement = 180, + ReturnStatement = 181, + WithStatement = 182, + SwitchStatement = 183, + LabeledStatement = 184, + ThrowStatement = 185, + TryStatement = 186, + DebuggerStatement = 187, + VariableDeclaration = 188, + VariableDeclarationList = 189, + FunctionDeclaration = 190, + ClassDeclaration = 191, + InterfaceDeclaration = 192, + TypeAliasDeclaration = 193, + EnumDeclaration = 194, + ModuleDeclaration = 195, + ModuleBlock = 196, + ImportDeclaration = 197, + ExportAssignment = 198, + ExternalModuleReference = 199, + CaseClause = 200, + DefaultClause = 201, + HeritageClause = 202, + CatchClause = 203, + PropertyAssignment = 204, + ShorthandPropertyAssignment = 205, + EnumMember = 206, + SourceFile = 207, + SyntaxList = 208, + Count = 209, + FirstAssignment = 52, + LastAssignment = 63, + FirstReservedWord = 65, + LastReservedWord = 100, + FirstKeyword = 65, + LastKeyword = 120, + FirstFutureReservedWord = 101, + LastFutureReservedWord = 109, + FirstTypeNode = 135, + LastTypeNode = 143, + FirstPunctuation = 14, + LastPunctuation = 63, + FirstToken = 0, + LastToken = 120, + FirstTriviaToken = 2, + LastTriviaToken = 6, + FirstLiteralToken = 7, + LastLiteralToken = 10, + FirstTemplateToken = 10, + LastTemplateToken = 13, + FirstBinaryOperator = 24, + LastBinaryOperator = 63, + FirstNode = 121, + } + const enum NodeFlags { + Export = 1, + Ambient = 2, + Public = 16, + Private = 32, + Protected = 64, + Static = 128, + MultiLine = 256, + Synthetic = 512, + DeclarationFile = 1024, + Let = 2048, + Const = 4096, + OctalLiteral = 8192, + Modifier = 243, + AccessibilityModifier = 112, + BlockScoped = 6144, + } + const enum ParserContextFlags { + StrictMode = 1, + DisallowIn = 2, + Yield = 4, + GeneratorParameter = 8, + ThisNodeHasError = 16, + ParserGeneratedFlags = 31, + ThisNodeOrAnySubNodesHasError = 32, + HasAggregatedChildData = 64, + } + interface Node extends TextRange { + kind: SyntaxKind; + flags: NodeFlags; + parserContextFlags?: ParserContextFlags; + id?: number; + parent?: Node; + symbol?: Symbol; + locals?: SymbolTable; + nextContainer?: Node; + localSymbol?: Symbol; + modifiers?: ModifiersArray; + } + interface NodeArray extends Array, TextRange { + hasTrailingComma?: boolean; + } + interface ModifiersArray extends NodeArray { + flags: number; + } + interface Identifier extends PrimaryExpression { + text: string; + } + interface QualifiedName extends Node { + left: EntityName; + right: Identifier; + } + type EntityName = Identifier | QualifiedName; + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; + interface Declaration extends Node { + _declarationBrand: any; + name?: DeclarationName; + } + interface ComputedPropertyName extends Node { + expression: Expression; + } + interface TypeParameterDeclaration extends Declaration { + name: Identifier; + constraint?: TypeNode; + expression?: Expression; + } + interface SignatureDeclaration extends Declaration { + typeParameters?: NodeArray; + parameters: NodeArray; + type?: TypeNode; + } + interface VariableDeclaration extends Declaration { + parent?: VariableDeclarationList; + name: Identifier | BindingPattern; + type?: TypeNode; + initializer?: Expression; + } + interface VariableDeclarationList extends Node { + declarations: NodeArray; + } + interface ParameterDeclaration extends Declaration { + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingElement extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + initializer?: Expression; + } + interface PropertyDeclaration extends Declaration, ClassElement { + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface ObjectLiteralElement extends Declaration { + _objectLiteralBrandBrand: any; + } + interface PropertyAssignment extends ObjectLiteralElement { + _propertyAssignmentBrand: any; + name: DeclarationName; + questionToken?: Node; + initializer: Expression; + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { + name: Identifier; + questionToken?: Node; + } + interface VariableLikeDeclaration extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingPattern extends Node { + elements: NodeArray; + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { + _functionLikeDeclarationBrand: any; + asteriskToken?: Node; + questionToken?: Node; + body?: Block | Expression; + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { + name: Identifier; + body?: Block; + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + body?: Block; + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { + body?: Block; + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + _accessorDeclarationBrand: any; + body: Block; + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { + _indexSignatureDeclarationBrand: any; + } + interface TypeNode extends Node { + _typeNodeBrand: any; + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { + _functionOrConstructorTypeNodeBrand: any; + } + interface TypeReferenceNode extends TypeNode { + typeName: EntityName; + typeArguments?: NodeArray; + } + interface TypeQueryNode extends TypeNode { + exprName: EntityName; + } + interface TypeLiteralNode extends TypeNode, Declaration { + members: NodeArray; + } + interface ArrayTypeNode extends TypeNode { + elementType: TypeNode; + } + interface TupleTypeNode extends TypeNode { + elementTypes: NodeArray; + } + interface UnionTypeNode extends TypeNode { + types: NodeArray; + } + interface ParenthesizedTypeNode extends TypeNode { + type: TypeNode; + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { + } + interface Expression extends Node { + _expressionBrand: any; + contextualType?: Type; + } + interface UnaryExpression extends Expression { + _unaryExpressionBrand: any; + } + interface PrefixUnaryExpression extends UnaryExpression { + operator: SyntaxKind; + operand: UnaryExpression; + } + interface PostfixUnaryExpression extends PostfixExpression { + operand: LeftHandSideExpression; + operator: SyntaxKind; + } + interface PostfixExpression extends UnaryExpression { + _postfixExpressionBrand: any; + } + interface LeftHandSideExpression extends PostfixExpression { + _leftHandSideExpressionBrand: any; + } + interface MemberExpression extends LeftHandSideExpression { + _memberExpressionBrand: any; + } + interface PrimaryExpression extends MemberExpression { + _primaryExpressionBrand: any; + } + interface DeleteExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface TypeOfExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface VoidExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface YieldExpression extends Expression { + asteriskToken?: Node; + expression: Expression; + } + interface BinaryExpression extends Expression { + left: Expression; + operator: SyntaxKind; + right: Expression; + } + interface ConditionalExpression extends Expression { + condition: Expression; + whenTrue: Expression; + whenFalse: Expression; + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { + name?: Identifier; + body: Block | Expression; + } + interface LiteralExpression extends PrimaryExpression { + text: string; + isUnterminated?: boolean; + } + interface StringLiteralExpression extends LiteralExpression { + _stringLiteralExpressionBrand: any; + } + interface TemplateExpression extends PrimaryExpression { + head: LiteralExpression; + templateSpans: NodeArray; + } + interface TemplateSpan extends Node { + expression: Expression; + literal: LiteralExpression; + } + interface ParenthesizedExpression extends PrimaryExpression { + expression: Expression; + } + interface ArrayLiteralExpression extends PrimaryExpression { + elements: NodeArray; + } + interface SpreadElementExpression extends Expression { + expression: Expression; + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { + properties: NodeArray; + } + interface PropertyAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + name: Identifier; + } + interface ElementAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + argumentExpression?: Expression; + } + interface CallExpression extends LeftHandSideExpression { + expression: LeftHandSideExpression; + typeArguments?: NodeArray; + arguments: NodeArray; + } + interface NewExpression extends CallExpression, PrimaryExpression { + } + interface TaggedTemplateExpression extends MemberExpression { + tag: LeftHandSideExpression; + template: LiteralExpression | TemplateExpression; + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; + interface TypeAssertion extends UnaryExpression { + type: TypeNode; + expression: UnaryExpression; + } + interface Statement extends Node, ModuleElement { + _statementBrand: any; + } + interface Block extends Statement { + statements: NodeArray; + } + interface VariableStatement extends Statement { + declarationList: VariableDeclarationList; + } + interface ExpressionStatement extends Statement { + expression: Expression; + } + interface IfStatement extends Statement { + expression: Expression; + thenStatement: Statement; + elseStatement?: Statement; + } + interface IterationStatement extends Statement { + statement: Statement; + } + interface DoStatement extends IterationStatement { + expression: Expression; + } + interface WhileStatement extends IterationStatement { + expression: Expression; + } + interface ForStatement extends IterationStatement { + initializer?: VariableDeclarationList | Expression; + condition?: Expression; + iterator?: Expression; + } + interface ForInStatement extends IterationStatement { + initializer: VariableDeclarationList | Expression; + expression: Expression; + } + interface BreakOrContinueStatement extends Statement { + label?: Identifier; + } + interface ReturnStatement extends Statement { + expression?: Expression; + } + interface WithStatement extends Statement { + expression: Expression; + statement: Statement; + } + interface SwitchStatement extends Statement { + expression: Expression; + clauses: NodeArray; + } + interface CaseClause extends Node { + expression?: Expression; + statements: NodeArray; + } + interface DefaultClause extends Node { + statements: NodeArray; + } + type CaseOrDefaultClause = CaseClause | DefaultClause; + interface LabeledStatement extends Statement { + label: Identifier; + statement: Statement; + } + interface ThrowStatement extends Statement { + expression: Expression; + } + interface TryStatement extends Statement { + tryBlock: Block; + catchClause?: CatchClause; + finallyBlock?: Block; + } + interface CatchClause extends Declaration { + name: Identifier; + type?: TypeNode; + block: Block; + } + interface ModuleElement extends Node { + _moduleElementBrand: any; + } + interface ClassDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface ClassElement extends Declaration { + _classElementBrand: any; + } + interface InterfaceDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface HeritageClause extends Node { + token: SyntaxKind; + types?: NodeArray; + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { + name: Identifier; + type: TypeNode; + } + interface EnumMember extends Declaration { + name: DeclarationName; + initializer?: Expression; + } + interface EnumDeclaration extends Declaration, ModuleElement { + name: Identifier; + members: NodeArray; + } + interface ModuleDeclaration extends Declaration, ModuleElement { + name: Identifier | LiteralExpression; + body: ModuleBlock | ModuleDeclaration; + } + interface ModuleBlock extends Node, ModuleElement { + statements: NodeArray; + } + interface ImportDeclaration extends Declaration, ModuleElement { + name: Identifier; + moduleReference: EntityName | ExternalModuleReference; + } + interface ExternalModuleReference extends Node { + expression?: Expression; + } + interface ExportAssignment extends Statement, ModuleElement { + exportName: Identifier; + } + interface FileReference extends TextRange { + filename: string; + } + interface CommentRange extends TextRange { + hasTrailingNewLine?: boolean; + } + interface SourceFile extends Declaration { + statements: NodeArray; + endOfFileToken: Node; + filename: string; + text: string; + getLineAndCharacterFromPosition(position: number): LineAndCharacter; + getPositionFromLineAndCharacter(line: number, character: number): number; + getLineStarts(): number[]; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; + amdDependencies: string[]; + amdModuleName: string; + referencedFiles: FileReference[]; + referenceDiagnostics: Diagnostic[]; + parseDiagnostics: Diagnostic[]; + getSyntacticDiagnostics(): Diagnostic[]; + semanticDiagnostics: Diagnostic[]; + hasNoDefaultLib: boolean; + externalModuleIndicator: Node; + nodeCount: number; + identifierCount: number; + symbolCount: number; + languageVersion: ScriptTarget; + identifiers: Map; + } + interface ScriptReferenceHost { + getCompilerOptions(): CompilerOptions; + getSourceFile(filename: string): SourceFile; + getCurrentDirectory(): string; + } + interface Program extends ScriptReferenceHost { + getSourceFiles(): SourceFile[]; + getCompilerHost(): CompilerHost; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; + getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getCommonSourceDirectory(): string; + emitFiles(targetSourceFile?: SourceFile): EmitResult; + isEmitBlocked(sourceFile?: SourceFile): boolean; + } + interface SourceMapSpan { + emittedLine: number; + emittedColumn: number; + sourceLine: number; + sourceColumn: number; + nameIndex?: number; + sourceIndex: number; + } + interface SourceMapData { + sourceMapFilePath: string; + jsSourceMappingURL: string; + sourceMapFile: string; + sourceMapSourceRoot: string; + sourceMapSources: string[]; + inputSourceFileNames: string[]; + sourceMapNames?: string[]; + sourceMapMappings: string; + sourceMapDecodedMappings: SourceMapSpan[]; + } + enum EmitReturnStatus { + Succeeded = 0, + AllOutputGenerationSkipped = 1, + JSGeneratedWithSemanticErrors = 2, + DeclarationGenerationSkipped = 3, + EmitErrorsEncountered = 4, + CompilerOptionsErrors = 5, + } + interface EmitResult { + emitResultStatus: EmitReturnStatus; + diagnostics: Diagnostic[]; + sourceMaps: SourceMapData[]; + } + interface TypeCheckerHost { + getCompilerOptions(): CompilerOptions; + getCompilerHost(): CompilerHost; + getSourceFiles(): SourceFile[]; + getSourceFile(filename: string): SourceFile; + } + interface TypeChecker { + getEmitResolver(): EmitResolver; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getNodeCount(): number; + getIdentifierCount(): number; + getSymbolCount(): number; + getTypeCount(): number; + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; + getDeclaredTypeOfSymbol(symbol: Symbol): Type; + getPropertiesOfType(type: Type): Symbol[]; + getPropertyOfType(type: Type, propertyName: string): Symbol; + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; + getIndexTypeOfType(type: Type, kind: IndexKind): Type; + getReturnTypeOfSignature(signature: Signature): Type; + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; + getSymbolAtLocation(node: Node): Symbol; + getShorthandAssignmentValueSymbol(location: Node): Symbol; + getTypeAtLocation(node: Node): Type; + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; + getSymbolDisplayBuilder(): SymbolDisplayBuilder; + getFullyQualifiedName(symbol: Symbol): string; + getAugmentedPropertiesOfType(type: Type): Symbol[]; + getRootSymbols(symbol: Symbol): Symbol[]; + getContextualType(node: Expression): Type; + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + isUndefinedSymbol(symbol: Symbol): boolean; + isArgumentsSymbol(symbol: Symbol): boolean; + getEnumMemberValue(node: EnumMember): number; + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; + getAliasedSymbol(symbol: Symbol): Symbol; + } + interface SymbolDisplayBuilder { + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + } + interface SymbolWriter { + writeKeyword(text: string): void; + writeOperator(text: string): void; + writePunctuation(text: string): void; + writeSpace(text: string): void; + writeStringLiteral(text: string): void; + writeParameter(text: string): void; + writeSymbol(text: string, symbol: Symbol): void; + writeLine(): void; + increaseIndent(): void; + decreaseIndent(): void; + clear(): void; + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; + } + const enum TypeFormatFlags { + None = 0, + WriteArrayAsGenericType = 1, + UseTypeOfFunction = 2, + NoTruncation = 4, + WriteArrowStyleSignature = 8, + WriteOwnNameForAnyLike = 16, + WriteTypeArgumentsOfSignature = 32, + InElementType = 64, + } + const enum SymbolFormatFlags { + None = 0, + WriteTypeParametersOrArguments = 1, + UseOnlyExternalAliasing = 2, + } + const enum SymbolAccessibility { + Accessible = 0, + NotAccessible = 1, + CannotBeNamed = 2, + } + interface SymbolVisibilityResult { + accessibility: SymbolAccessibility; + aliasesToMakeVisible?: ImportDeclaration[]; + errorSymbolName?: string; + errorNode?: Node; + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { + errorModuleName?: string; + } + interface EmitResolver { + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; + getExpressionNamePrefix(node: Identifier): string; + getExportAssignmentName(node: SourceFile): string; + isReferencedImportDeclaration(node: ImportDeclaration): boolean; + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; + getNodeCheckFlags(node: Node): NodeCheckFlags; + getEnumMemberValue(node: EnumMember): number; + hasSemanticErrors(sourceFile?: SourceFile): boolean; + isDeclarationVisible(node: Declaration): boolean; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, 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; + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + isUnknownIdentifier(location: Node, name: string): boolean; + } + const enum SymbolFlags { + FunctionScopedVariable = 1, + BlockScopedVariable = 2, + Property = 4, + EnumMember = 8, + Function = 16, + Class = 32, + Interface = 64, + ConstEnum = 128, + RegularEnum = 256, + ValueModule = 512, + NamespaceModule = 1024, + TypeLiteral = 2048, + ObjectLiteral = 4096, + Method = 8192, + Constructor = 16384, + GetAccessor = 32768, + SetAccessor = 65536, + Signature = 131072, + TypeParameter = 262144, + TypeAlias = 524288, + ExportValue = 1048576, + ExportType = 2097152, + ExportNamespace = 4194304, + Import = 8388608, + Instantiated = 16777216, + Merged = 33554432, + Transient = 67108864, + Prototype = 134217728, + UnionProperty = 268435456, + Optional = 536870912, + Enum = 384, + Variable = 3, + Value = 107455, + Type = 793056, + Namespace = 1536, + Module = 1536, + Accessor = 98304, + FunctionScopedVariableExcludes = 107454, + BlockScopedVariableExcludes = 107455, + ParameterExcludes = 107455, + PropertyExcludes = 107455, + EnumMemberExcludes = 107455, + FunctionExcludes = 106927, + ClassExcludes = 899583, + InterfaceExcludes = 792992, + RegularEnumExcludes = 899327, + ConstEnumExcludes = 899967, + ValueModuleExcludes = 106639, + NamespaceModuleExcludes = 0, + MethodExcludes = 99263, + GetAccessorExcludes = 41919, + SetAccessorExcludes = 74687, + TypeParameterExcludes = 530912, + TypeAliasExcludes = 793056, + ImportExcludes = 8388608, + ModuleMember = 8914931, + ExportHasLocal = 944, + HasLocals = 255504, + HasExports = 1952, + HasMembers = 6240, + IsContainer = 262128, + PropertyOrAccessor = 98308, + Export = 7340032, + } + interface Symbol { + flags: SymbolFlags; + name: string; + id?: number; + mergeId?: number; + declarations?: Declaration[]; + parent?: Symbol; + members?: SymbolTable; + exports?: SymbolTable; + exportSymbol?: Symbol; + valueDeclaration?: Declaration; + constEnumOnlyModule?: boolean; + } + interface SymbolLinks { + target?: Symbol; + type?: Type; + declaredType?: Type; + mapper?: TypeMapper; + referenced?: boolean; + exportAssignSymbol?: Symbol; + unionType?: UnionType; + } + interface TransientSymbol extends Symbol, SymbolLinks { + } + interface SymbolTable { + [index: string]: Symbol; + } + const enum NodeCheckFlags { + TypeChecked = 1, + LexicalThis = 2, + CaptureThis = 4, + EmitExtends = 8, + SuperInstance = 16, + SuperStatic = 32, + ContextChecked = 64, + EnumValuesComputed = 128, + } + interface NodeLinks { + resolvedType?: Type; + resolvedSignature?: Signature; + resolvedSymbol?: Symbol; + flags?: NodeCheckFlags; + enumMemberValue?: number; + isIllegalTypeReferenceInConstraint?: boolean; + isVisible?: boolean; + localModuleName?: string; + assignmentChecks?: Map; + hasReportedStatementInAmbientContext?: boolean; + importOnRightSide?: Symbol; + } + const enum TypeFlags { + Any = 1, + String = 2, + Number = 4, + Boolean = 8, + Void = 16, + Undefined = 32, + Null = 64, + Enum = 128, + StringLiteral = 256, + TypeParameter = 512, + Class = 1024, + Interface = 2048, + Reference = 4096, + Tuple = 8192, + Union = 16384, + Anonymous = 32768, + FromSignature = 65536, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, + Intrinsic = 127, + Primitive = 510, + StringLike = 258, + NumberLike = 132, + ObjectType = 48128, + RequiresWidening = 786432, + } + interface Type { + flags: TypeFlags; + id: number; + symbol?: Symbol; + } + interface IntrinsicType extends Type { + intrinsicName: string; + } + interface StringLiteralType extends Type { + text: string; + } + interface ObjectType extends Type { + } + interface InterfaceType extends ObjectType { + typeParameters: TypeParameter[]; + baseTypes: ObjectType[]; + declaredProperties: Symbol[]; + declaredCallSignatures: Signature[]; + declaredConstructSignatures: Signature[]; + declaredStringIndexType: Type; + declaredNumberIndexType: Type; + } + interface TypeReference extends ObjectType { + target: GenericType; + typeArguments: Type[]; + } + interface GenericType extends InterfaceType, TypeReference { + instantiations: Map; + } + interface TupleType extends ObjectType { + elementTypes: Type[]; + baseArrayType: TypeReference; + } + interface UnionType extends Type { + types: Type[]; + resolvedProperties: SymbolTable; + } + interface ResolvedType extends ObjectType, UnionType { + members: SymbolTable; + properties: Symbol[]; + callSignatures: Signature[]; + constructSignatures: Signature[]; + stringIndexType: Type; + numberIndexType: Type; + } + interface TypeParameter extends Type { + constraint: Type; + target?: TypeParameter; + mapper?: TypeMapper; + } + const enum SignatureKind { + Call = 0, + Construct = 1, + } + interface Signature { + declaration: SignatureDeclaration; + typeParameters: TypeParameter[]; + parameters: Symbol[]; + resolvedReturnType: Type; + minArgumentCount: number; + hasRestParameter: boolean; + hasStringLiterals: boolean; + target?: Signature; + mapper?: TypeMapper; + unionSignatures?: Signature[]; + erasedSignatureCache?: Signature; + isolatedSignatureType?: ObjectType; + } + const enum IndexKind { + String = 0, + Number = 1, + } + interface TypeMapper { + (t: Type): Type; + } + interface TypeInferences { + primary: Type[]; + secondary: Type[]; + } + interface InferenceContext { + typeParameters: TypeParameter[]; + inferUnionTypes: boolean; + inferences: TypeInferences[]; + inferredTypes: Type[]; + failedTypeParameterIndex?: number; + } + interface DiagnosticMessage { + key: string; + category: DiagnosticCategory; + code: number; + isEarly?: boolean; + } + interface DiagnosticMessageChain { + messageText: string; + category: DiagnosticCategory; + code: number; + next?: DiagnosticMessageChain; + } + interface Diagnostic { + file: SourceFile; + start: number; + length: number; + messageText: string; + category: DiagnosticCategory; + code: number; + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; + } + enum DiagnosticCategory { + Warning = 0, + Error = 1, + Message = 2, + } + interface CompilerOptions { + allowNonTsExtensions?: boolean; + charset?: string; + codepage?: number; + declaration?: boolean; + diagnostics?: boolean; + emitBOM?: boolean; + help?: boolean; + listFiles?: boolean; + locale?: string; + mapRoot?: string; + module?: ModuleKind; + noEmit?: boolean; + noEmitOnError?: boolean; + noErrorTruncation?: boolean; + noImplicitAny?: boolean; + noLib?: boolean; + noLibCheck?: boolean; + noResolve?: boolean; + out?: string; + outDir?: string; + preserveConstEnums?: boolean; + project?: string; + removeComments?: boolean; + sourceMap?: boolean; + sourceRoot?: string; + suppressImplicitAnyIndexErrors?: boolean; + target?: ScriptTarget; + version?: boolean; + watch?: boolean; + [option: string]: string | number | boolean; + } + const enum ModuleKind { + None = 0, + CommonJS = 1, + AMD = 2, + } + interface LineAndCharacter { + line: number; + character: number; + } + const enum ScriptTarget { + ES3 = 0, + ES5 = 1, + ES6 = 2, + Latest = 2, + } + interface ParsedCommandLine { + options: CompilerOptions; + filenames: string[]; + errors: Diagnostic[]; + } + interface CommandLineOption { + name: string; + type: string | Map; + isFilePath?: boolean; + shortName?: string; + description?: DiagnosticMessage; + paramType?: DiagnosticMessage; + error?: DiagnosticMessage; + } + const enum CharacterCodes { + nullCharacter = 0, + maxAsciiCharacter = 127, + lineFeed = 10, + carriageReturn = 13, + lineSeparator = 8232, + paragraphSeparator = 8233, + nextLine = 133, + space = 32, + nonBreakingSpace = 160, + enQuad = 8192, + emQuad = 8193, + enSpace = 8194, + emSpace = 8195, + threePerEmSpace = 8196, + fourPerEmSpace = 8197, + sixPerEmSpace = 8198, + figureSpace = 8199, + punctuationSpace = 8200, + thinSpace = 8201, + hairSpace = 8202, + zeroWidthSpace = 8203, + narrowNoBreakSpace = 8239, + ideographicSpace = 12288, + mathematicalSpace = 8287, + ogham = 5760, + _ = 95, + $ = 36, + _0 = 48, + _1 = 49, + _2 = 50, + _3 = 51, + _4 = 52, + _5 = 53, + _6 = 54, + _7 = 55, + _8 = 56, + _9 = 57, + a = 97, + b = 98, + c = 99, + d = 100, + e = 101, + f = 102, + g = 103, + h = 104, + i = 105, + j = 106, + k = 107, + l = 108, + m = 109, + n = 110, + o = 111, + p = 112, + q = 113, + r = 114, + s = 115, + t = 116, + u = 117, + v = 118, + w = 119, + x = 120, + y = 121, + z = 122, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + ampersand = 38, + asterisk = 42, + at = 64, + backslash = 92, + backtick = 96, + bar = 124, + caret = 94, + closeBrace = 125, + closeBracket = 93, + closeParen = 41, + colon = 58, + comma = 44, + dot = 46, + doubleQuote = 34, + equals = 61, + exclamation = 33, + greaterThan = 62, + lessThan = 60, + minus = 45, + openBrace = 123, + openBracket = 91, + openParen = 40, + percent = 37, + plus = 43, + question = 63, + semicolon = 59, + singleQuote = 39, + slash = 47, + tilde = 126, + backspace = 8, + formFeed = 12, + byteOrderMark = 65279, + tab = 9, + verticalTab = 11, + } + interface CancellationToken { + isCancellationRequested(): boolean; + } + interface CompilerHost { + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFilename(options: CompilerOptions): string; + getCancellationToken?(): CancellationToken; + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + getCurrentDirectory(): string; + getCanonicalFileName(fileName: string): string; + useCaseSensitiveFileNames(): boolean; + getNewLine(): string; + } + interface TextSpan { + start: number; + length: number; + } + interface TextChangeRange { + span: TextSpan; + newLength: number; + } +} +declare module "typescript" { + interface ErrorCallback { + (message: DiagnosticMessage, length: number): void; + } + interface Scanner { + getStartPos(): number; + getToken(): SyntaxKind; + getTextPos(): number; + getTokenPos(): number; + getTokenText(): string; + getTokenValue(): string; + hasPrecedingLineBreak(): boolean; + isIdentifier(): boolean; + isReservedWord(): boolean; + isUnterminated(): boolean; + reScanGreaterToken(): SyntaxKind; + reScanSlashToken(): SyntaxKind; + reScanTemplateToken(): SyntaxKind; + scan(): SyntaxKind; + setText(text: string): void; + setTextPos(textPos: number): void; + lookAhead(callback: () => T): T; + tryScan(callback: () => T): T; + } + function tokenToString(t: SyntaxKind): string; + function computeLineStarts(text: string): number[]; + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { + line: number; + character: number; + }; + function positionToLineAndCharacter(text: string, pos: number): { + line: number; + character: number; + }; + function isWhiteSpace(ch: number): boolean; + function isLineBreak(ch: number): boolean; + function isOctalDigit(ch: number): boolean; + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; + function createNode(kind: SyntaxKind): Node; + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; + function modifierToFlag(token: SyntaxKind): NodeFlags; + function isEvalOrArgumentsIdentifier(node: Node): boolean; + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function isLeftHandSideExpression(expr: Expression): boolean; + function isAssignmentOperator(token: SyntaxKind): boolean; +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +} +declare module "typescript" { + var servicesVersion: string; + interface Node { + getSourceFile(): SourceFile; + getChildCount(sourceFile?: SourceFile): number; + getChildAt(index: number, sourceFile?: SourceFile): Node; + getChildren(sourceFile?: SourceFile): Node[]; + getStart(sourceFile?: SourceFile): number; + getFullStart(): number; + getEnd(): number; + getWidth(sourceFile?: SourceFile): number; + getFullWidth(): number; + getLeadingTriviaWidth(sourceFile?: SourceFile): number; + getFullText(sourceFile?: SourceFile): string; + getText(sourceFile?: SourceFile): string; + getFirstToken(sourceFile?: SourceFile): Node; + getLastToken(sourceFile?: SourceFile): Node; + } + interface Symbol { + getFlags(): SymbolFlags; + getName(): string; + getDeclarations(): Declaration[]; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface Type { + getFlags(): TypeFlags; + getSymbol(): Symbol; + getProperties(): Symbol[]; + getProperty(propertyName: string): Symbol; + getApparentProperties(): Symbol[]; + getCallSignatures(): Signature[]; + getConstructSignatures(): Signature[]; + getStringIndexType(): Type; + getNumberIndexType(): Type; + } + interface Signature { + getDeclaration(): SignatureDeclaration; + getTypeParameters(): Type[]; + getParameters(): Symbol[]; + getReturnType(): Type; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface SourceFile { + version: string; + scriptSnapshot: IScriptSnapshot; + nameTable: Map; + getNamedDeclarations(): Declaration[]; + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; + /** Gets the length of this script snapshot. */ + getLength(): number; + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; + } + module ScriptSnapshot { + function fromString(text: string): IScriptSnapshot; + } + interface PreProcessedFileInfo { + referencedFiles: FileReference[]; + importedFiles: FileReference[]; + isLibFile: boolean; + } + interface LanguageServiceHost { + getCompilationSettings(): CompilerOptions; + getNewLine?(): string; + getScriptFileNames(): string[]; + getScriptVersion(fileName: string): string; + getScriptSnapshot(fileName: string): IScriptSnapshot; + getLocalizedDiagnosticMessages?(): any; + getCancellationToken?(): CancellationToken; + getCurrentDirectory(): string; + getDefaultLibFilename(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; + } + interface LanguageService { + cleanupSemanticCache(): void; + getSyntacticDiagnostics(fileName: string): Diagnostic[]; + getSemanticDiagnostics(fileName: string): Diagnostic[]; + getCompilerOptionsDiagnostics(): Diagnostic[]; + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; + getRenameInfo(fileName: string, position: number): RenameInfo; + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getNavigateToItems(searchValue: string): NavigateToItem[]; + getNavigationBarItems(fileName: string): NavigationBarItem[]; + getOutliningSpans(fileName: string): OutliningSpan[]; + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; + getEmitOutput(fileName: string): EmitOutput; + getProgram(): Program; + getSourceFile(filename: string): SourceFile; + dispose(): void; + } + interface ClassifiedSpan { + textSpan: TextSpan; + classificationType: string; + } + interface NavigationBarItem { + text: string; + kind: string; + kindModifiers: string; + spans: TextSpan[]; + childItems: NavigationBarItem[]; + indent: number; + bolded: boolean; + grayed: boolean; + } + interface TodoCommentDescriptor { + text: string; + priority: number; + } + interface TodoComment { + descriptor: TodoCommentDescriptor; + message: string; + position: number; + } + class TextChange { + span: TextSpan; + newText: string; + } + interface RenameLocation { + textSpan: TextSpan; + fileName: string; + } + interface ReferenceEntry { + textSpan: TextSpan; + fileName: string; + isWriteAccess: boolean; + } + interface NavigateToItem { + name: string; + kind: string; + kindModifiers: string; + matchKind: string; + fileName: string; + textSpan: TextSpan; + containerName: string; + containerKind: string; + } + interface EditorOptions { + IndentSize: number; + TabSize: number; + NewLineCharacter: string; + ConvertTabsToSpaces: boolean; + } + interface FormatCodeOptions extends EditorOptions { + InsertSpaceAfterCommaDelimiter: boolean; + InsertSpaceAfterSemicolonInForStatements: boolean; + InsertSpaceBeforeAndAfterBinaryOperators: boolean; + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; + PlaceOpenBraceOnNewLineForFunctions: boolean; + PlaceOpenBraceOnNewLineForControlBlocks: boolean; + } + interface DefinitionInfo { + fileName: string; + textSpan: TextSpan; + kind: string; + name: string; + containerKind: string; + containerName: string; + } + enum SymbolDisplayPartKind { + aliasName = 0, + className = 1, + enumName = 2, + fieldName = 3, + interfaceName = 4, + keyword = 5, + lineBreak = 6, + numericLiteral = 7, + stringLiteral = 8, + localName = 9, + methodName = 10, + moduleName = 11, + operator = 12, + parameterName = 13, + propertyName = 14, + punctuation = 15, + space = 16, + text = 17, + typeParameterName = 18, + enumMemberName = 19, + functionName = 20, + regularExpressionLiteral = 21, + } + interface SymbolDisplayPart { + text: string; + kind: string; + } + interface QuickInfo { + kind: string; + kindModifiers: string; + textSpan: TextSpan; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface RenameInfo { + canRename: boolean; + localizedErrorMessage: string; + displayName: string; + fullDisplayName: string; + kind: string; + kindModifiers: string; + triggerSpan: TextSpan; + } + interface SignatureHelpParameter { + name: string; + documentation: SymbolDisplayPart[]; + displayParts: SymbolDisplayPart[]; + isOptional: boolean; + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { + isVariadic: boolean; + prefixDisplayParts: SymbolDisplayPart[]; + suffixDisplayParts: SymbolDisplayPart[]; + separatorDisplayParts: SymbolDisplayPart[]; + parameters: SignatureHelpParameter[]; + documentation: SymbolDisplayPart[]; + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { + items: SignatureHelpItem[]; + applicableSpan: TextSpan; + selectedItemIndex: number; + argumentIndex: number; + argumentCount: number; + } + interface CompletionInfo { + isMemberCompletion: boolean; + entries: CompletionEntry[]; + } + interface CompletionEntry { + name: string; + kind: string; + kindModifiers: string; + } + interface CompletionEntryDetails { + name: string; + kind: string; + kindModifiers: string; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface OutliningSpan { + /** The span of the document to actually collapse. */ + textSpan: TextSpan; + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; + /** The text to display in the editor for the collapsed region. */ + bannerText: string; + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; + } + interface EmitOutput { + outputFiles: OutputFile[]; + emitOutputStatus: EmitReturnStatus; + } + const enum OutputFileType { + JavaScript = 0, + SourceMap = 1, + Declaration = 2, + } + interface OutputFile { + name: string; + writeByteOrderMark: boolean; + text: string; + } + const enum EndOfLineState { + Start = 0, + InMultiLineCommentTrivia = 1, + InSingleQuoteStringLiteral = 2, + InDoubleQuoteStringLiteral = 3, + } + enum TokenClass { + Punctuation = 0, + Keyword = 1, + Operator = 2, + Comment = 3, + Whitespace = 4, + Identifier = 5, + NumberLiteral = 6, + StringLiteral = 7, + RegExpLiteral = 8, + } + interface ClassificationResult { + finalLexState: EndOfLineState; + entries: ClassificationInfo[]; + } + interface ClassificationInfo { + length: number; + classification: TokenClass; + } + interface Classifier { + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + } + class ScriptElementKind { + static unknown: string; + static keyword: string; + static scriptElement: string; + static moduleElement: string; + static classElement: string; + static interfaceElement: string; + static typeElement: string; + static enumElement: string; + static variableElement: string; + static localVariableElement: string; + static functionElement: string; + static localFunctionElement: string; + static memberFunctionElement: string; + static memberGetAccessorElement: string; + static memberSetAccessorElement: string; + static memberVariableElement: string; + static constructorImplementationElement: string; + static callSignatureElement: string; + static indexSignatureElement: string; + static constructSignatureElement: string; + static parameterElement: string; + static typeParameterElement: string; + static primitiveType: string; + static label: string; + static alias: string; + static constElement: string; + static letElement: string; + } + class ScriptElementKindModifier { + static none: string; + static publicMemberModifier: string; + static privateMemberModifier: string; + static protectedMemberModifier: string; + static exportedModifier: string; + static ambientModifier: string; + static staticModifier: string; + } + class ClassificationTypeNames { + static comment: string; + static identifier: string; + static keyword: string; + static numericLiteral: string; + static operator: string; + static stringLiteral: string; + static whiteSpace: string; + static text: string; + static punctuation: string; + static className: string; + static enumName: string; + static interfaceName: string; + static moduleName: string; + static typeParameterName: string; + static typeAlias: string; + } + interface DisplayPartsSymbolWriter extends SymbolWriter { + displayParts(): SymbolDisplayPart[]; + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; + function getDefaultCompilerOptions(): CompilerOptions; + class OperationCanceledException { + } + class CancellationTokenObject { + private cancellationToken; + static None: CancellationTokenObject; + constructor(cancellationToken: CancellationToken); + isCancellationRequested(): boolean; + throwIfCancellationRequested(): void; + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; + var disableIncrementalParsing: boolean; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function createDocumentRegistry(): DocumentRegistry; + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +} + + +//// [APISample_compile.js] +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-minimal-compiler + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ +var ts = require("typescript"); +function compile(filenames, options) { + var host = ts.createCompilerHost(options); + var program = ts.createProgram(filenames, options, host); + var checker = ts.createTypeChecker(program, true); + var result = program.emitFiles(); + var allDiagnostics = program.getDiagnostics().concat(checker.getDiagnostics()).concat(result.diagnostics); + allDiagnostics.forEach(function (diagnostic) { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(diagnostic.file.filename + " (" + lineChar.line + "," + lineChar.character + "): " + diagnostic.messageText); + }); + console.log("Process exiting with code '" + result.emitResultStatus + "'."); + process.exit(result.emitResultStatus); +} +exports.compile = compile; +compile(process.argv.slice(2), { + noEmitOnError: true, + noImplicitAny: true, + target: 1 /* ES5 */, + module: 1 /* CommonJS */ +}); diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types new file mode 100644 index 00000000000..bcb5a606748 --- /dev/null +++ b/tests/baselines/reference/APISample_compile.types @@ -0,0 +1,5970 @@ +=== tests/cases/compiler/APISample_compile.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-minimal-compiler + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : any + +declare var console: any; +>console : any + +import ts = require("typescript"); +>ts : typeof ts + +export function compile(filenames: string[], options: ts.CompilerOptions): void { +>compile : (filenames: string[], options: ts.CompilerOptions) => void +>filenames : string[] +>options : ts.CompilerOptions +>ts : unknown +>CompilerOptions : ts.CompilerOptions + + var host = ts.createCompilerHost(options); +>host : ts.CompilerHost +>ts.createCompilerHost(options) : ts.CompilerHost +>ts.createCompilerHost : (options: ts.CompilerOptions) => ts.CompilerHost +>ts : typeof ts +>createCompilerHost : (options: ts.CompilerOptions) => ts.CompilerHost +>options : ts.CompilerOptions + + var program = ts.createProgram(filenames, options, host); +>program : ts.Program +>ts.createProgram(filenames, options, host) : ts.Program +>ts.createProgram : (rootNames: string[], options: ts.CompilerOptions, host: ts.CompilerHost) => ts.Program +>ts : typeof ts +>createProgram : (rootNames: string[], options: ts.CompilerOptions, host: ts.CompilerHost) => ts.Program +>filenames : string[] +>options : ts.CompilerOptions +>host : ts.CompilerHost + + var checker = ts.createTypeChecker(program, /*produceDiagnostics*/ true); +>checker : ts.TypeChecker +>ts.createTypeChecker(program, /*produceDiagnostics*/ true) : ts.TypeChecker +>ts.createTypeChecker : (host: ts.TypeCheckerHost, produceDiagnostics: boolean) => ts.TypeChecker +>ts : typeof ts +>createTypeChecker : (host: ts.TypeCheckerHost, produceDiagnostics: boolean) => ts.TypeChecker +>program : ts.Program + + var result = program.emitFiles(); +>result : ts.EmitResult +>program.emitFiles() : ts.EmitResult +>program.emitFiles : (targetSourceFile?: ts.SourceFile) => ts.EmitResult +>program : ts.Program +>emitFiles : (targetSourceFile?: ts.SourceFile) => ts.EmitResult + + var allDiagnostics = program.getDiagnostics() +>allDiagnostics : ts.Diagnostic[] +>program.getDiagnostics() .concat(checker.getDiagnostics()) .concat(result.diagnostics) : ts.Diagnostic[] +>program.getDiagnostics() .concat(checker.getDiagnostics()) .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>program.getDiagnostics() .concat(checker.getDiagnostics()) : ts.Diagnostic[] +>program.getDiagnostics() .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>program.getDiagnostics() : ts.Diagnostic[] +>program.getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] +>program : ts.Program +>getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] + + .concat(checker.getDiagnostics()) +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>checker.getDiagnostics() : ts.Diagnostic[] +>checker.getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] +>checker : ts.TypeChecker +>getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] + + .concat(result.diagnostics); +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>result.diagnostics : ts.Diagnostic[] +>result : ts.EmitResult +>diagnostics : ts.Diagnostic[] + + allDiagnostics.forEach(diagnostic => { +>allDiagnostics.forEach(diagnostic => { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); }) : void +>allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>allDiagnostics : ts.Diagnostic[] +>forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>diagnostic => { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); } : (diagnostic: ts.Diagnostic) => void +>diagnostic : ts.Diagnostic + + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); +>lineChar : ts.LineAndCharacter +>diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start) : ts.LineAndCharacter +>diagnostic.file.getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>diagnostic.start : number +>diagnostic : ts.Diagnostic +>start : number + + console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); +>console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`) : any +>console.log : any +>console : any +>log : any +>diagnostic.file.filename : string +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>filename : string +>lineChar.line : number +>lineChar : ts.LineAndCharacter +>line : number +>lineChar.character : number +>lineChar : ts.LineAndCharacter +>character : number +>diagnostic.messageText : string +>diagnostic : ts.Diagnostic +>messageText : string + + }); + + console.log(`Process exiting with code '${result.emitResultStatus}'.`); +>console.log(`Process exiting with code '${result.emitResultStatus}'.`) : any +>console.log : any +>console : any +>log : any +>result.emitResultStatus : ts.EmitReturnStatus +>result : ts.EmitResult +>emitResultStatus : ts.EmitReturnStatus + + process.exit(result.emitResultStatus); +>process.exit(result.emitResultStatus) : any +>process.exit : any +>process : any +>exit : any +>result.emitResultStatus : ts.EmitReturnStatus +>result : ts.EmitResult +>emitResultStatus : ts.EmitReturnStatus +} + +compile(process.argv.slice(2), { +>compile(process.argv.slice(2), { noEmitOnError: true, noImplicitAny: true, target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS}) : void +>compile : (filenames: string[], options: ts.CompilerOptions) => void +>process.argv.slice(2) : any +>process.argv.slice : any +>process.argv : any +>process : any +>argv : any +>slice : any +>{ noEmitOnError: true, noImplicitAny: true, target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS} : { [x: string]: boolean | ts.ScriptTarget | ts.ModuleKind; noEmitOnError: boolean; noImplicitAny: boolean; target: ts.ScriptTarget; module: ts.ModuleKind; } + + noEmitOnError: true, noImplicitAny: true, +>noEmitOnError : boolean +>noImplicitAny : boolean + + target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS +>target : ts.ScriptTarget +>ts.ScriptTarget.ES5 : ts.ScriptTarget +>ts.ScriptTarget : typeof ts.ScriptTarget +>ts : typeof ts +>ScriptTarget : typeof ts.ScriptTarget +>ES5 : ts.ScriptTarget +>module : ts.ModuleKind +>ts.ModuleKind.CommonJS : ts.ModuleKind +>ts.ModuleKind : typeof ts.ModuleKind +>ts : typeof ts +>ModuleKind : typeof ts.ModuleKind +>CommonJS : ts.ModuleKind + +}); +=== typescript.d.ts === +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { +>Map : Map +>T : T + + [index: string]: T; +>index : string +>T : T + } + interface TextRange { +>TextRange : TextRange + + pos: number; +>pos : number + + end: number; +>end : number + } + const enum SyntaxKind { +>SyntaxKind : SyntaxKind + + Unknown = 0, +>Unknown : SyntaxKind + + EndOfFileToken = 1, +>EndOfFileToken : SyntaxKind + + SingleLineCommentTrivia = 2, +>SingleLineCommentTrivia : SyntaxKind + + MultiLineCommentTrivia = 3, +>MultiLineCommentTrivia : SyntaxKind + + NewLineTrivia = 4, +>NewLineTrivia : SyntaxKind + + WhitespaceTrivia = 5, +>WhitespaceTrivia : SyntaxKind + + ConflictMarkerTrivia = 6, +>ConflictMarkerTrivia : SyntaxKind + + NumericLiteral = 7, +>NumericLiteral : SyntaxKind + + StringLiteral = 8, +>StringLiteral : SyntaxKind + + RegularExpressionLiteral = 9, +>RegularExpressionLiteral : SyntaxKind + + NoSubstitutionTemplateLiteral = 10, +>NoSubstitutionTemplateLiteral : SyntaxKind + + TemplateHead = 11, +>TemplateHead : SyntaxKind + + TemplateMiddle = 12, +>TemplateMiddle : SyntaxKind + + TemplateTail = 13, +>TemplateTail : SyntaxKind + + OpenBraceToken = 14, +>OpenBraceToken : SyntaxKind + + CloseBraceToken = 15, +>CloseBraceToken : SyntaxKind + + OpenParenToken = 16, +>OpenParenToken : SyntaxKind + + CloseParenToken = 17, +>CloseParenToken : SyntaxKind + + OpenBracketToken = 18, +>OpenBracketToken : SyntaxKind + + CloseBracketToken = 19, +>CloseBracketToken : SyntaxKind + + DotToken = 20, +>DotToken : SyntaxKind + + DotDotDotToken = 21, +>DotDotDotToken : SyntaxKind + + SemicolonToken = 22, +>SemicolonToken : SyntaxKind + + CommaToken = 23, +>CommaToken : SyntaxKind + + LessThanToken = 24, +>LessThanToken : SyntaxKind + + GreaterThanToken = 25, +>GreaterThanToken : SyntaxKind + + LessThanEqualsToken = 26, +>LessThanEqualsToken : SyntaxKind + + GreaterThanEqualsToken = 27, +>GreaterThanEqualsToken : SyntaxKind + + EqualsEqualsToken = 28, +>EqualsEqualsToken : SyntaxKind + + ExclamationEqualsToken = 29, +>ExclamationEqualsToken : SyntaxKind + + EqualsEqualsEqualsToken = 30, +>EqualsEqualsEqualsToken : SyntaxKind + + ExclamationEqualsEqualsToken = 31, +>ExclamationEqualsEqualsToken : SyntaxKind + + EqualsGreaterThanToken = 32, +>EqualsGreaterThanToken : SyntaxKind + + PlusToken = 33, +>PlusToken : SyntaxKind + + MinusToken = 34, +>MinusToken : SyntaxKind + + AsteriskToken = 35, +>AsteriskToken : SyntaxKind + + SlashToken = 36, +>SlashToken : SyntaxKind + + PercentToken = 37, +>PercentToken : SyntaxKind + + PlusPlusToken = 38, +>PlusPlusToken : SyntaxKind + + MinusMinusToken = 39, +>MinusMinusToken : SyntaxKind + + LessThanLessThanToken = 40, +>LessThanLessThanToken : SyntaxKind + + GreaterThanGreaterThanToken = 41, +>GreaterThanGreaterThanToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanToken = 42, +>GreaterThanGreaterThanGreaterThanToken : SyntaxKind + + AmpersandToken = 43, +>AmpersandToken : SyntaxKind + + BarToken = 44, +>BarToken : SyntaxKind + + CaretToken = 45, +>CaretToken : SyntaxKind + + ExclamationToken = 46, +>ExclamationToken : SyntaxKind + + TildeToken = 47, +>TildeToken : SyntaxKind + + AmpersandAmpersandToken = 48, +>AmpersandAmpersandToken : SyntaxKind + + BarBarToken = 49, +>BarBarToken : SyntaxKind + + QuestionToken = 50, +>QuestionToken : SyntaxKind + + ColonToken = 51, +>ColonToken : SyntaxKind + + EqualsToken = 52, +>EqualsToken : SyntaxKind + + PlusEqualsToken = 53, +>PlusEqualsToken : SyntaxKind + + MinusEqualsToken = 54, +>MinusEqualsToken : SyntaxKind + + AsteriskEqualsToken = 55, +>AsteriskEqualsToken : SyntaxKind + + SlashEqualsToken = 56, +>SlashEqualsToken : SyntaxKind + + PercentEqualsToken = 57, +>PercentEqualsToken : SyntaxKind + + LessThanLessThanEqualsToken = 58, +>LessThanLessThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanEqualsToken = 59, +>GreaterThanGreaterThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanEqualsToken = 60, +>GreaterThanGreaterThanGreaterThanEqualsToken : SyntaxKind + + AmpersandEqualsToken = 61, +>AmpersandEqualsToken : SyntaxKind + + BarEqualsToken = 62, +>BarEqualsToken : SyntaxKind + + CaretEqualsToken = 63, +>CaretEqualsToken : SyntaxKind + + Identifier = 64, +>Identifier : SyntaxKind + + BreakKeyword = 65, +>BreakKeyword : SyntaxKind + + CaseKeyword = 66, +>CaseKeyword : SyntaxKind + + CatchKeyword = 67, +>CatchKeyword : SyntaxKind + + ClassKeyword = 68, +>ClassKeyword : SyntaxKind + + ConstKeyword = 69, +>ConstKeyword : SyntaxKind + + ContinueKeyword = 70, +>ContinueKeyword : SyntaxKind + + DebuggerKeyword = 71, +>DebuggerKeyword : SyntaxKind + + DefaultKeyword = 72, +>DefaultKeyword : SyntaxKind + + DeleteKeyword = 73, +>DeleteKeyword : SyntaxKind + + DoKeyword = 74, +>DoKeyword : SyntaxKind + + ElseKeyword = 75, +>ElseKeyword : SyntaxKind + + EnumKeyword = 76, +>EnumKeyword : SyntaxKind + + ExportKeyword = 77, +>ExportKeyword : SyntaxKind + + ExtendsKeyword = 78, +>ExtendsKeyword : SyntaxKind + + FalseKeyword = 79, +>FalseKeyword : SyntaxKind + + FinallyKeyword = 80, +>FinallyKeyword : SyntaxKind + + ForKeyword = 81, +>ForKeyword : SyntaxKind + + FunctionKeyword = 82, +>FunctionKeyword : SyntaxKind + + IfKeyword = 83, +>IfKeyword : SyntaxKind + + ImportKeyword = 84, +>ImportKeyword : SyntaxKind + + InKeyword = 85, +>InKeyword : SyntaxKind + + InstanceOfKeyword = 86, +>InstanceOfKeyword : SyntaxKind + + NewKeyword = 87, +>NewKeyword : SyntaxKind + + NullKeyword = 88, +>NullKeyword : SyntaxKind + + ReturnKeyword = 89, +>ReturnKeyword : SyntaxKind + + SuperKeyword = 90, +>SuperKeyword : SyntaxKind + + SwitchKeyword = 91, +>SwitchKeyword : SyntaxKind + + ThisKeyword = 92, +>ThisKeyword : SyntaxKind + + ThrowKeyword = 93, +>ThrowKeyword : SyntaxKind + + TrueKeyword = 94, +>TrueKeyword : SyntaxKind + + TryKeyword = 95, +>TryKeyword : SyntaxKind + + TypeOfKeyword = 96, +>TypeOfKeyword : SyntaxKind + + VarKeyword = 97, +>VarKeyword : SyntaxKind + + VoidKeyword = 98, +>VoidKeyword : SyntaxKind + + WhileKeyword = 99, +>WhileKeyword : SyntaxKind + + WithKeyword = 100, +>WithKeyword : SyntaxKind + + ImplementsKeyword = 101, +>ImplementsKeyword : SyntaxKind + + InterfaceKeyword = 102, +>InterfaceKeyword : SyntaxKind + + LetKeyword = 103, +>LetKeyword : SyntaxKind + + PackageKeyword = 104, +>PackageKeyword : SyntaxKind + + PrivateKeyword = 105, +>PrivateKeyword : SyntaxKind + + ProtectedKeyword = 106, +>ProtectedKeyword : SyntaxKind + + PublicKeyword = 107, +>PublicKeyword : SyntaxKind + + StaticKeyword = 108, +>StaticKeyword : SyntaxKind + + YieldKeyword = 109, +>YieldKeyword : SyntaxKind + + AnyKeyword = 110, +>AnyKeyword : SyntaxKind + + BooleanKeyword = 111, +>BooleanKeyword : SyntaxKind + + ConstructorKeyword = 112, +>ConstructorKeyword : SyntaxKind + + DeclareKeyword = 113, +>DeclareKeyword : SyntaxKind + + GetKeyword = 114, +>GetKeyword : SyntaxKind + + ModuleKeyword = 115, +>ModuleKeyword : SyntaxKind + + RequireKeyword = 116, +>RequireKeyword : SyntaxKind + + NumberKeyword = 117, +>NumberKeyword : SyntaxKind + + SetKeyword = 118, +>SetKeyword : SyntaxKind + + StringKeyword = 119, +>StringKeyword : SyntaxKind + + TypeKeyword = 120, +>TypeKeyword : SyntaxKind + + QualifiedName = 121, +>QualifiedName : SyntaxKind + + ComputedPropertyName = 122, +>ComputedPropertyName : SyntaxKind + + TypeParameter = 123, +>TypeParameter : SyntaxKind + + Parameter = 124, +>Parameter : SyntaxKind + + PropertySignature = 125, +>PropertySignature : SyntaxKind + + PropertyDeclaration = 126, +>PropertyDeclaration : SyntaxKind + + MethodSignature = 127, +>MethodSignature : SyntaxKind + + MethodDeclaration = 128, +>MethodDeclaration : SyntaxKind + + Constructor = 129, +>Constructor : SyntaxKind + + GetAccessor = 130, +>GetAccessor : SyntaxKind + + SetAccessor = 131, +>SetAccessor : SyntaxKind + + CallSignature = 132, +>CallSignature : SyntaxKind + + ConstructSignature = 133, +>ConstructSignature : SyntaxKind + + IndexSignature = 134, +>IndexSignature : SyntaxKind + + TypeReference = 135, +>TypeReference : SyntaxKind + + FunctionType = 136, +>FunctionType : SyntaxKind + + ConstructorType = 137, +>ConstructorType : SyntaxKind + + TypeQuery = 138, +>TypeQuery : SyntaxKind + + TypeLiteral = 139, +>TypeLiteral : SyntaxKind + + ArrayType = 140, +>ArrayType : SyntaxKind + + TupleType = 141, +>TupleType : SyntaxKind + + UnionType = 142, +>UnionType : SyntaxKind + + ParenthesizedType = 143, +>ParenthesizedType : SyntaxKind + + ObjectBindingPattern = 144, +>ObjectBindingPattern : SyntaxKind + + ArrayBindingPattern = 145, +>ArrayBindingPattern : SyntaxKind + + BindingElement = 146, +>BindingElement : SyntaxKind + + ArrayLiteralExpression = 147, +>ArrayLiteralExpression : SyntaxKind + + ObjectLiteralExpression = 148, +>ObjectLiteralExpression : SyntaxKind + + PropertyAccessExpression = 149, +>PropertyAccessExpression : SyntaxKind + + ElementAccessExpression = 150, +>ElementAccessExpression : SyntaxKind + + CallExpression = 151, +>CallExpression : SyntaxKind + + NewExpression = 152, +>NewExpression : SyntaxKind + + TaggedTemplateExpression = 153, +>TaggedTemplateExpression : SyntaxKind + + TypeAssertionExpression = 154, +>TypeAssertionExpression : SyntaxKind + + ParenthesizedExpression = 155, +>ParenthesizedExpression : SyntaxKind + + FunctionExpression = 156, +>FunctionExpression : SyntaxKind + + ArrowFunction = 157, +>ArrowFunction : SyntaxKind + + DeleteExpression = 158, +>DeleteExpression : SyntaxKind + + TypeOfExpression = 159, +>TypeOfExpression : SyntaxKind + + VoidExpression = 160, +>VoidExpression : SyntaxKind + + PrefixUnaryExpression = 161, +>PrefixUnaryExpression : SyntaxKind + + PostfixUnaryExpression = 162, +>PostfixUnaryExpression : SyntaxKind + + BinaryExpression = 163, +>BinaryExpression : SyntaxKind + + ConditionalExpression = 164, +>ConditionalExpression : SyntaxKind + + TemplateExpression = 165, +>TemplateExpression : SyntaxKind + + YieldExpression = 166, +>YieldExpression : SyntaxKind + + SpreadElementExpression = 167, +>SpreadElementExpression : SyntaxKind + + OmittedExpression = 168, +>OmittedExpression : SyntaxKind + + TemplateSpan = 169, +>TemplateSpan : SyntaxKind + + Block = 170, +>Block : SyntaxKind + + VariableStatement = 171, +>VariableStatement : SyntaxKind + + EmptyStatement = 172, +>EmptyStatement : SyntaxKind + + ExpressionStatement = 173, +>ExpressionStatement : SyntaxKind + + IfStatement = 174, +>IfStatement : SyntaxKind + + DoStatement = 175, +>DoStatement : SyntaxKind + + WhileStatement = 176, +>WhileStatement : SyntaxKind + + ForStatement = 177, +>ForStatement : SyntaxKind + + ForInStatement = 178, +>ForInStatement : SyntaxKind + + ContinueStatement = 179, +>ContinueStatement : SyntaxKind + + BreakStatement = 180, +>BreakStatement : SyntaxKind + + ReturnStatement = 181, +>ReturnStatement : SyntaxKind + + WithStatement = 182, +>WithStatement : SyntaxKind + + SwitchStatement = 183, +>SwitchStatement : SyntaxKind + + LabeledStatement = 184, +>LabeledStatement : SyntaxKind + + ThrowStatement = 185, +>ThrowStatement : SyntaxKind + + TryStatement = 186, +>TryStatement : SyntaxKind + + DebuggerStatement = 187, +>DebuggerStatement : SyntaxKind + + VariableDeclaration = 188, +>VariableDeclaration : SyntaxKind + + VariableDeclarationList = 189, +>VariableDeclarationList : SyntaxKind + + FunctionDeclaration = 190, +>FunctionDeclaration : SyntaxKind + + ClassDeclaration = 191, +>ClassDeclaration : SyntaxKind + + InterfaceDeclaration = 192, +>InterfaceDeclaration : SyntaxKind + + TypeAliasDeclaration = 193, +>TypeAliasDeclaration : SyntaxKind + + EnumDeclaration = 194, +>EnumDeclaration : SyntaxKind + + ModuleDeclaration = 195, +>ModuleDeclaration : SyntaxKind + + ModuleBlock = 196, +>ModuleBlock : SyntaxKind + + ImportDeclaration = 197, +>ImportDeclaration : SyntaxKind + + ExportAssignment = 198, +>ExportAssignment : SyntaxKind + + ExternalModuleReference = 199, +>ExternalModuleReference : SyntaxKind + + CaseClause = 200, +>CaseClause : SyntaxKind + + DefaultClause = 201, +>DefaultClause : SyntaxKind + + HeritageClause = 202, +>HeritageClause : SyntaxKind + + CatchClause = 203, +>CatchClause : SyntaxKind + + PropertyAssignment = 204, +>PropertyAssignment : SyntaxKind + + ShorthandPropertyAssignment = 205, +>ShorthandPropertyAssignment : SyntaxKind + + EnumMember = 206, +>EnumMember : SyntaxKind + + SourceFile = 207, +>SourceFile : SyntaxKind + + SyntaxList = 208, +>SyntaxList : SyntaxKind + + Count = 209, +>Count : SyntaxKind + + FirstAssignment = 52, +>FirstAssignment : SyntaxKind + + LastAssignment = 63, +>LastAssignment : SyntaxKind + + FirstReservedWord = 65, +>FirstReservedWord : SyntaxKind + + LastReservedWord = 100, +>LastReservedWord : SyntaxKind + + FirstKeyword = 65, +>FirstKeyword : SyntaxKind + + LastKeyword = 120, +>LastKeyword : SyntaxKind + + FirstFutureReservedWord = 101, +>FirstFutureReservedWord : SyntaxKind + + LastFutureReservedWord = 109, +>LastFutureReservedWord : SyntaxKind + + FirstTypeNode = 135, +>FirstTypeNode : SyntaxKind + + LastTypeNode = 143, +>LastTypeNode : SyntaxKind + + FirstPunctuation = 14, +>FirstPunctuation : SyntaxKind + + LastPunctuation = 63, +>LastPunctuation : SyntaxKind + + FirstToken = 0, +>FirstToken : SyntaxKind + + LastToken = 120, +>LastToken : SyntaxKind + + FirstTriviaToken = 2, +>FirstTriviaToken : SyntaxKind + + LastTriviaToken = 6, +>LastTriviaToken : SyntaxKind + + FirstLiteralToken = 7, +>FirstLiteralToken : SyntaxKind + + LastLiteralToken = 10, +>LastLiteralToken : SyntaxKind + + FirstTemplateToken = 10, +>FirstTemplateToken : SyntaxKind + + LastTemplateToken = 13, +>LastTemplateToken : SyntaxKind + + FirstBinaryOperator = 24, +>FirstBinaryOperator : SyntaxKind + + LastBinaryOperator = 63, +>LastBinaryOperator : SyntaxKind + + FirstNode = 121, +>FirstNode : SyntaxKind + } + const enum NodeFlags { +>NodeFlags : NodeFlags + + Export = 1, +>Export : NodeFlags + + Ambient = 2, +>Ambient : NodeFlags + + Public = 16, +>Public : NodeFlags + + Private = 32, +>Private : NodeFlags + + Protected = 64, +>Protected : NodeFlags + + Static = 128, +>Static : NodeFlags + + MultiLine = 256, +>MultiLine : NodeFlags + + Synthetic = 512, +>Synthetic : NodeFlags + + DeclarationFile = 1024, +>DeclarationFile : NodeFlags + + Let = 2048, +>Let : NodeFlags + + Const = 4096, +>Const : NodeFlags + + OctalLiteral = 8192, +>OctalLiteral : NodeFlags + + Modifier = 243, +>Modifier : NodeFlags + + AccessibilityModifier = 112, +>AccessibilityModifier : NodeFlags + + BlockScoped = 6144, +>BlockScoped : NodeFlags + } + const enum ParserContextFlags { +>ParserContextFlags : ParserContextFlags + + StrictMode = 1, +>StrictMode : ParserContextFlags + + DisallowIn = 2, +>DisallowIn : ParserContextFlags + + Yield = 4, +>Yield : ParserContextFlags + + GeneratorParameter = 8, +>GeneratorParameter : ParserContextFlags + + ThisNodeHasError = 16, +>ThisNodeHasError : ParserContextFlags + + ParserGeneratedFlags = 31, +>ParserGeneratedFlags : ParserContextFlags + + ThisNodeOrAnySubNodesHasError = 32, +>ThisNodeOrAnySubNodesHasError : ParserContextFlags + + HasAggregatedChildData = 64, +>HasAggregatedChildData : ParserContextFlags + } + interface Node extends TextRange { +>Node : Node +>TextRange : TextRange + + kind: SyntaxKind; +>kind : SyntaxKind +>SyntaxKind : SyntaxKind + + flags: NodeFlags; +>flags : NodeFlags +>NodeFlags : NodeFlags + + parserContextFlags?: ParserContextFlags; +>parserContextFlags : ParserContextFlags +>ParserContextFlags : ParserContextFlags + + id?: number; +>id : number + + parent?: Node; +>parent : Node +>Node : Node + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + + locals?: SymbolTable; +>locals : SymbolTable +>SymbolTable : SymbolTable + + nextContainer?: Node; +>nextContainer : Node +>Node : Node + + localSymbol?: Symbol; +>localSymbol : Symbol +>Symbol : Symbol + + modifiers?: ModifiersArray; +>modifiers : ModifiersArray +>ModifiersArray : ModifiersArray + } + interface NodeArray extends Array, TextRange { +>NodeArray : NodeArray +>T : T +>Array : T[] +>T : T +>TextRange : TextRange + + hasTrailingComma?: boolean; +>hasTrailingComma : boolean + } + interface ModifiersArray extends NodeArray { +>ModifiersArray : ModifiersArray +>NodeArray : NodeArray +>Node : Node + + flags: number; +>flags : number + } + interface Identifier extends PrimaryExpression { +>Identifier : Identifier +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + } + interface QualifiedName extends Node { +>QualifiedName : QualifiedName +>Node : Node + + left: EntityName; +>left : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + right: Identifier; +>right : Identifier +>Identifier : Identifier + } + type EntityName = Identifier | QualifiedName; +>EntityName : Identifier | QualifiedName +>Identifier : Identifier +>QualifiedName : QualifiedName + + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>Identifier : Identifier +>LiteralExpression : LiteralExpression +>ComputedPropertyName : ComputedPropertyName +>BindingPattern : BindingPattern + + interface Declaration extends Node { +>Declaration : Declaration +>Node : Node + + _declarationBrand: any; +>_declarationBrand : any + + name?: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + } + interface ComputedPropertyName extends Node { +>ComputedPropertyName : ComputedPropertyName +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TypeParameterDeclaration extends Declaration { +>TypeParameterDeclaration : TypeParameterDeclaration +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + constraint?: TypeNode; +>constraint : TypeNode +>TypeNode : TypeNode + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface SignatureDeclaration extends Declaration { +>SignatureDeclaration : SignatureDeclaration +>Declaration : Declaration + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + parameters: NodeArray; +>parameters : NodeArray +>NodeArray : NodeArray +>ParameterDeclaration : ParameterDeclaration + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface VariableDeclaration extends Declaration { +>VariableDeclaration : VariableDeclaration +>Declaration : Declaration + + parent?: VariableDeclarationList; +>parent : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface VariableDeclarationList extends Node { +>VariableDeclarationList : VariableDeclarationList +>Node : Node + + declarations: NodeArray; +>declarations : NodeArray +>NodeArray : NodeArray +>VariableDeclaration : VariableDeclaration + } + interface ParameterDeclaration extends Declaration { +>ParameterDeclaration : ParameterDeclaration +>Declaration : Declaration + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingElement extends Declaration { +>BindingElement : BindingElement +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface PropertyDeclaration extends Declaration, ClassElement { +>PropertyDeclaration : PropertyDeclaration +>Declaration : Declaration +>ClassElement : ClassElement + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface ObjectLiteralElement extends Declaration { +>ObjectLiteralElement : ObjectLiteralElement +>Declaration : Declaration + + _objectLiteralBrandBrand: any; +>_objectLiteralBrandBrand : any + } + interface PropertyAssignment extends ObjectLiteralElement { +>PropertyAssignment : PropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + _propertyAssignmentBrand: any; +>_propertyAssignmentBrand : any + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + initializer: Expression; +>initializer : Expression +>Expression : Expression + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { +>ShorthandPropertyAssignment : ShorthandPropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + questionToken?: Node; +>questionToken : Node +>Node : Node + } + interface VariableLikeDeclaration extends Declaration { +>VariableLikeDeclaration : VariableLikeDeclaration +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingPattern extends Node { +>BindingPattern : BindingPattern +>Node : Node + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>BindingElement : BindingElement + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { +>FunctionLikeDeclaration : FunctionLikeDeclaration +>SignatureDeclaration : SignatureDeclaration + + _functionLikeDeclarationBrand: any; +>_functionLikeDeclarationBrand : any + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + questionToken?: Node; +>questionToken : Node +>Node : Node + + body?: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { +>FunctionDeclaration : FunctionDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>Statement : Statement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + body?: Block; +>body : Block +>Block : Block + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>MethodDeclaration : MethodDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + body?: Block; +>body : Block +>Block : Block + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { +>ConstructorDeclaration : ConstructorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement + + body?: Block; +>body : Block +>Block : Block + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>AccessorDeclaration : AccessorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + _accessorDeclarationBrand: any; +>_accessorDeclarationBrand : any + + body: Block; +>body : Block +>Block : Block + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { +>IndexSignatureDeclaration : IndexSignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>ClassElement : ClassElement + + _indexSignatureDeclarationBrand: any; +>_indexSignatureDeclarationBrand : any + } + interface TypeNode extends Node { +>TypeNode : TypeNode +>Node : Node + + _typeNodeBrand: any; +>_typeNodeBrand : any + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { +>FunctionOrConstructorTypeNode : FunctionOrConstructorTypeNode +>TypeNode : TypeNode +>SignatureDeclaration : SignatureDeclaration + + _functionOrConstructorTypeNodeBrand: any; +>_functionOrConstructorTypeNodeBrand : any + } + interface TypeReferenceNode extends TypeNode { +>TypeReferenceNode : TypeReferenceNode +>TypeNode : TypeNode + + typeName: EntityName; +>typeName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface TypeQueryNode extends TypeNode { +>TypeQueryNode : TypeQueryNode +>TypeNode : TypeNode + + exprName: EntityName; +>exprName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + } + interface TypeLiteralNode extends TypeNode, Declaration { +>TypeLiteralNode : TypeLiteralNode +>TypeNode : TypeNode +>Declaration : Declaration + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Node : Node + } + interface ArrayTypeNode extends TypeNode { +>ArrayTypeNode : ArrayTypeNode +>TypeNode : TypeNode + + elementType: TypeNode; +>elementType : TypeNode +>TypeNode : TypeNode + } + interface TupleTypeNode extends TypeNode { +>TupleTypeNode : TupleTypeNode +>TypeNode : TypeNode + + elementTypes: NodeArray; +>elementTypes : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface UnionTypeNode extends TypeNode { +>UnionTypeNode : UnionTypeNode +>TypeNode : TypeNode + + types: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface ParenthesizedTypeNode extends TypeNode { +>ParenthesizedTypeNode : ParenthesizedTypeNode +>TypeNode : TypeNode + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { +>StringLiteralTypeNode : StringLiteralTypeNode +>LiteralExpression : LiteralExpression +>TypeNode : TypeNode + } + interface Expression extends Node { +>Expression : Expression +>Node : Node + + _expressionBrand: any; +>_expressionBrand : any + + contextualType?: Type; +>contextualType : Type +>Type : Type + } + interface UnaryExpression extends Expression { +>UnaryExpression : UnaryExpression +>Expression : Expression + + _unaryExpressionBrand: any; +>_unaryExpressionBrand : any + } + interface PrefixUnaryExpression extends UnaryExpression { +>PrefixUnaryExpression : PrefixUnaryExpression +>UnaryExpression : UnaryExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + operand: UnaryExpression; +>operand : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface PostfixUnaryExpression extends PostfixExpression { +>PostfixUnaryExpression : PostfixUnaryExpression +>PostfixExpression : PostfixExpression + + operand: LeftHandSideExpression; +>operand : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + } + interface PostfixExpression extends UnaryExpression { +>PostfixExpression : PostfixExpression +>UnaryExpression : UnaryExpression + + _postfixExpressionBrand: any; +>_postfixExpressionBrand : any + } + interface LeftHandSideExpression extends PostfixExpression { +>LeftHandSideExpression : LeftHandSideExpression +>PostfixExpression : PostfixExpression + + _leftHandSideExpressionBrand: any; +>_leftHandSideExpressionBrand : any + } + interface MemberExpression extends LeftHandSideExpression { +>MemberExpression : MemberExpression +>LeftHandSideExpression : LeftHandSideExpression + + _memberExpressionBrand: any; +>_memberExpressionBrand : any + } + interface PrimaryExpression extends MemberExpression { +>PrimaryExpression : PrimaryExpression +>MemberExpression : MemberExpression + + _primaryExpressionBrand: any; +>_primaryExpressionBrand : any + } + interface DeleteExpression extends UnaryExpression { +>DeleteExpression : DeleteExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface TypeOfExpression extends UnaryExpression { +>TypeOfExpression : TypeOfExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface VoidExpression extends UnaryExpression { +>VoidExpression : VoidExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface YieldExpression extends Expression { +>YieldExpression : YieldExpression +>Expression : Expression + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BinaryExpression extends Expression { +>BinaryExpression : BinaryExpression +>Expression : Expression + + left: Expression; +>left : Expression +>Expression : Expression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + right: Expression; +>right : Expression +>Expression : Expression + } + interface ConditionalExpression extends Expression { +>ConditionalExpression : ConditionalExpression +>Expression : Expression + + condition: Expression; +>condition : Expression +>Expression : Expression + + whenTrue: Expression; +>whenTrue : Expression +>Expression : Expression + + whenFalse: Expression; +>whenFalse : Expression +>Expression : Expression + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { +>FunctionExpression : FunctionExpression +>PrimaryExpression : PrimaryExpression +>FunctionLikeDeclaration : FunctionLikeDeclaration + + name?: Identifier; +>name : Identifier +>Identifier : Identifier + + body: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface LiteralExpression extends PrimaryExpression { +>LiteralExpression : LiteralExpression +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + + isUnterminated?: boolean; +>isUnterminated : boolean + } + interface StringLiteralExpression extends LiteralExpression { +>StringLiteralExpression : StringLiteralExpression +>LiteralExpression : LiteralExpression + + _stringLiteralExpressionBrand: any; +>_stringLiteralExpressionBrand : any + } + interface TemplateExpression extends PrimaryExpression { +>TemplateExpression : TemplateExpression +>PrimaryExpression : PrimaryExpression + + head: LiteralExpression; +>head : LiteralExpression +>LiteralExpression : LiteralExpression + + templateSpans: NodeArray; +>templateSpans : NodeArray +>NodeArray : NodeArray +>TemplateSpan : TemplateSpan + } + interface TemplateSpan extends Node { +>TemplateSpan : TemplateSpan +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + + literal: LiteralExpression; +>literal : LiteralExpression +>LiteralExpression : LiteralExpression + } + interface ParenthesizedExpression extends PrimaryExpression { +>ParenthesizedExpression : ParenthesizedExpression +>PrimaryExpression : PrimaryExpression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ArrayLiteralExpression extends PrimaryExpression { +>ArrayLiteralExpression : ArrayLiteralExpression +>PrimaryExpression : PrimaryExpression + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface SpreadElementExpression extends Expression { +>SpreadElementExpression : SpreadElementExpression +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { +>ObjectLiteralExpression : ObjectLiteralExpression +>PrimaryExpression : PrimaryExpression +>Declaration : Declaration + + properties: NodeArray; +>properties : NodeArray +>NodeArray : NodeArray +>ObjectLiteralElement : ObjectLiteralElement + } + interface PropertyAccessExpression extends MemberExpression { +>PropertyAccessExpression : PropertyAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + name: Identifier; +>name : Identifier +>Identifier : Identifier + } + interface ElementAccessExpression extends MemberExpression { +>ElementAccessExpression : ElementAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + argumentExpression?: Expression; +>argumentExpression : Expression +>Expression : Expression + } + interface CallExpression extends LeftHandSideExpression { +>CallExpression : CallExpression +>LeftHandSideExpression : LeftHandSideExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + + arguments: NodeArray; +>arguments : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface NewExpression extends CallExpression, PrimaryExpression { +>NewExpression : NewExpression +>CallExpression : CallExpression +>PrimaryExpression : PrimaryExpression + } + interface TaggedTemplateExpression extends MemberExpression { +>TaggedTemplateExpression : TaggedTemplateExpression +>MemberExpression : MemberExpression + + tag: LeftHandSideExpression; +>tag : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + template: LiteralExpression | TemplateExpression; +>template : LiteralExpression | TemplateExpression +>LiteralExpression : LiteralExpression +>TemplateExpression : TemplateExpression + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>CallExpression : CallExpression +>NewExpression : NewExpression +>TaggedTemplateExpression : TaggedTemplateExpression + + interface TypeAssertion extends UnaryExpression { +>TypeAssertion : TypeAssertion +>UnaryExpression : UnaryExpression + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface Statement extends Node, ModuleElement { +>Statement : Statement +>Node : Node +>ModuleElement : ModuleElement + + _statementBrand: any; +>_statementBrand : any + } + interface Block extends Statement { +>Block : Block +>Statement : Statement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface VariableStatement extends Statement { +>VariableStatement : VariableStatement +>Statement : Statement + + declarationList: VariableDeclarationList; +>declarationList : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + } + interface ExpressionStatement extends Statement { +>ExpressionStatement : ExpressionStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface IfStatement extends Statement { +>IfStatement : IfStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + thenStatement: Statement; +>thenStatement : Statement +>Statement : Statement + + elseStatement?: Statement; +>elseStatement : Statement +>Statement : Statement + } + interface IterationStatement extends Statement { +>IterationStatement : IterationStatement +>Statement : Statement + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface DoStatement extends IterationStatement { +>DoStatement : DoStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface WhileStatement extends IterationStatement { +>WhileStatement : WhileStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ForStatement extends IterationStatement { +>ForStatement : ForStatement +>IterationStatement : IterationStatement + + initializer?: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + condition?: Expression; +>condition : Expression +>Expression : Expression + + iterator?: Expression; +>iterator : Expression +>Expression : Expression + } + interface ForInStatement extends IterationStatement { +>ForInStatement : ForInStatement +>IterationStatement : IterationStatement + + initializer: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BreakOrContinueStatement extends Statement { +>BreakOrContinueStatement : BreakOrContinueStatement +>Statement : Statement + + label?: Identifier; +>label : Identifier +>Identifier : Identifier + } + interface ReturnStatement extends Statement { +>ReturnStatement : ReturnStatement +>Statement : Statement + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface WithStatement extends Statement { +>WithStatement : WithStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface SwitchStatement extends Statement { +>SwitchStatement : SwitchStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + clauses: NodeArray; +>clauses : NodeArray +>NodeArray : NodeArray +>CaseOrDefaultClause : CaseClause | DefaultClause + } + interface CaseClause extends Node { +>CaseClause : CaseClause +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface DefaultClause extends Node { +>DefaultClause : DefaultClause +>Node : Node + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + type CaseOrDefaultClause = CaseClause | DefaultClause; +>CaseOrDefaultClause : CaseClause | DefaultClause +>CaseClause : CaseClause +>DefaultClause : DefaultClause + + interface LabeledStatement extends Statement { +>LabeledStatement : LabeledStatement +>Statement : Statement + + label: Identifier; +>label : Identifier +>Identifier : Identifier + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface ThrowStatement extends Statement { +>ThrowStatement : ThrowStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TryStatement extends Statement { +>TryStatement : TryStatement +>Statement : Statement + + tryBlock: Block; +>tryBlock : Block +>Block : Block + + catchClause?: CatchClause; +>catchClause : CatchClause +>CatchClause : CatchClause + + finallyBlock?: Block; +>finallyBlock : Block +>Block : Block + } + interface CatchClause extends Declaration { +>CatchClause : CatchClause +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + block: Block; +>block : Block +>Block : Block + } + interface ModuleElement extends Node { +>ModuleElement : ModuleElement +>Node : Node + + _moduleElementBrand: any; +>_moduleElementBrand : any + } + interface ClassDeclaration extends Declaration, ModuleElement { +>ClassDeclaration : ClassDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>ClassElement : ClassElement + } + interface ClassElement extends Declaration { +>ClassElement : ClassElement +>Declaration : Declaration + + _classElementBrand: any; +>_classElementBrand : any + } + interface InterfaceDeclaration extends Declaration, ModuleElement { +>InterfaceDeclaration : InterfaceDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Declaration : Declaration + } + interface HeritageClause extends Node { +>HeritageClause : HeritageClause +>Node : Node + + token: SyntaxKind; +>token : SyntaxKind +>SyntaxKind : SyntaxKind + + types?: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeReferenceNode : TypeReferenceNode + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { +>TypeAliasDeclaration : TypeAliasDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface EnumMember extends Declaration { +>EnumMember : EnumMember +>Declaration : Declaration + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface EnumDeclaration extends Declaration, ModuleElement { +>EnumDeclaration : EnumDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>EnumMember : EnumMember + } + interface ModuleDeclaration extends Declaration, ModuleElement { +>ModuleDeclaration : ModuleDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier | LiteralExpression; +>name : Identifier | LiteralExpression +>Identifier : Identifier +>LiteralExpression : LiteralExpression + + body: ModuleBlock | ModuleDeclaration; +>body : ModuleDeclaration | ModuleBlock +>ModuleBlock : ModuleBlock +>ModuleDeclaration : ModuleDeclaration + } + interface ModuleBlock extends Node, ModuleElement { +>ModuleBlock : ModuleBlock +>Node : Node +>ModuleElement : ModuleElement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + } + interface ImportDeclaration extends Declaration, ModuleElement { +>ImportDeclaration : ImportDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + moduleReference: EntityName | ExternalModuleReference; +>moduleReference : Identifier | QualifiedName | ExternalModuleReference +>EntityName : Identifier | QualifiedName +>ExternalModuleReference : ExternalModuleReference + } + interface ExternalModuleReference extends Node { +>ExternalModuleReference : ExternalModuleReference +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface ExportAssignment extends Statement, ModuleElement { +>ExportAssignment : ExportAssignment +>Statement : Statement +>ModuleElement : ModuleElement + + exportName: Identifier; +>exportName : Identifier +>Identifier : Identifier + } + interface FileReference extends TextRange { +>FileReference : FileReference +>TextRange : TextRange + + filename: string; +>filename : string + } + interface CommentRange extends TextRange { +>CommentRange : CommentRange +>TextRange : TextRange + + hasTrailingNewLine?: boolean; +>hasTrailingNewLine : boolean + } + interface SourceFile extends Declaration { +>SourceFile : SourceFile +>Declaration : Declaration + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + + endOfFileToken: Node; +>endOfFileToken : Node +>Node : Node + + filename: string; +>filename : string + + text: string; +>text : string + + getLineAndCharacterFromPosition(position: number): LineAndCharacter; +>getLineAndCharacterFromPosition : (position: number) => LineAndCharacter +>position : number +>LineAndCharacter : LineAndCharacter + + getPositionFromLineAndCharacter(line: number, character: number): number; +>getPositionFromLineAndCharacter : (line: number, character: number) => number +>line : number +>character : number + + getLineStarts(): number[]; +>getLineStarts : () => number[] + + update(newText: string, textChangeRange: TextChangeRange): SourceFile; +>update : (newText: string, textChangeRange: TextChangeRange) => SourceFile +>newText : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + amdDependencies: string[]; +>amdDependencies : string[] + + amdModuleName: string; +>amdModuleName : string + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + referenceDiagnostics: Diagnostic[]; +>referenceDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + parseDiagnostics: Diagnostic[]; +>parseDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticDiagnostics(): Diagnostic[]; +>getSyntacticDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + semanticDiagnostics: Diagnostic[]; +>semanticDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + hasNoDefaultLib: boolean; +>hasNoDefaultLib : boolean + + externalModuleIndicator: Node; +>externalModuleIndicator : Node +>Node : Node + + nodeCount: number; +>nodeCount : number + + identifierCount: number; +>identifierCount : number + + symbolCount: number; +>symbolCount : number + + languageVersion: ScriptTarget; +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + identifiers: Map; +>identifiers : Map +>Map : Map + } + interface ScriptReferenceHost { +>ScriptReferenceHost : ScriptReferenceHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + } + interface Program extends ScriptReferenceHost { +>Program : Program +>ScriptReferenceHost : ScriptReferenceHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; +>getDeclarationDiagnostics : (sourceFile: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getTypeChecker(produceDiagnostics: boolean): TypeChecker; +>getTypeChecker : (produceDiagnostics: boolean) => TypeChecker +>produceDiagnostics : boolean +>TypeChecker : TypeChecker + + getCommonSourceDirectory(): string; +>getCommonSourceDirectory : () => string + + emitFiles(targetSourceFile?: SourceFile): EmitResult; +>emitFiles : (targetSourceFile?: SourceFile) => EmitResult +>targetSourceFile : SourceFile +>SourceFile : SourceFile +>EmitResult : EmitResult + + isEmitBlocked(sourceFile?: SourceFile): boolean; +>isEmitBlocked : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + } + interface SourceMapSpan { +>SourceMapSpan : SourceMapSpan + + emittedLine: number; +>emittedLine : number + + emittedColumn: number; +>emittedColumn : number + + sourceLine: number; +>sourceLine : number + + sourceColumn: number; +>sourceColumn : number + + nameIndex?: number; +>nameIndex : number + + sourceIndex: number; +>sourceIndex : number + } + interface SourceMapData { +>SourceMapData : SourceMapData + + sourceMapFilePath: string; +>sourceMapFilePath : string + + jsSourceMappingURL: string; +>jsSourceMappingURL : string + + sourceMapFile: string; +>sourceMapFile : string + + sourceMapSourceRoot: string; +>sourceMapSourceRoot : string + + sourceMapSources: string[]; +>sourceMapSources : string[] + + inputSourceFileNames: string[]; +>inputSourceFileNames : string[] + + sourceMapNames?: string[]; +>sourceMapNames : string[] + + sourceMapMappings: string; +>sourceMapMappings : string + + sourceMapDecodedMappings: SourceMapSpan[]; +>sourceMapDecodedMappings : SourceMapSpan[] +>SourceMapSpan : SourceMapSpan + } + enum EmitReturnStatus { +>EmitReturnStatus : EmitReturnStatus + + Succeeded = 0, +>Succeeded : EmitReturnStatus + + AllOutputGenerationSkipped = 1, +>AllOutputGenerationSkipped : EmitReturnStatus + + JSGeneratedWithSemanticErrors = 2, +>JSGeneratedWithSemanticErrors : EmitReturnStatus + + DeclarationGenerationSkipped = 3, +>DeclarationGenerationSkipped : EmitReturnStatus + + EmitErrorsEncountered = 4, +>EmitErrorsEncountered : EmitReturnStatus + + CompilerOptionsErrors = 5, +>CompilerOptionsErrors : EmitReturnStatus + } + interface EmitResult { +>EmitResult : EmitResult + + emitResultStatus: EmitReturnStatus; +>emitResultStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + + diagnostics: Diagnostic[]; +>diagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + sourceMaps: SourceMapData[]; +>sourceMaps : SourceMapData[] +>SourceMapData : SourceMapData + } + interface TypeCheckerHost { +>TypeCheckerHost : TypeCheckerHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + } + interface TypeChecker { +>TypeChecker : TypeChecker + + getEmitResolver(): EmitResolver; +>getEmitResolver : () => EmitResolver +>EmitResolver : EmitResolver + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getNodeCount(): number; +>getNodeCount : () => number + + getIdentifierCount(): number; +>getIdentifierCount : () => number + + getSymbolCount(): number; +>getSymbolCount : () => number + + getTypeCount(): number; +>getTypeCount : () => number + + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; +>getTypeOfSymbolAtLocation : (symbol: Symbol, node: Node) => Type +>symbol : Symbol +>Symbol : Symbol +>node : Node +>Node : Node +>Type : Type + + getDeclaredTypeOfSymbol(symbol: Symbol): Type; +>getDeclaredTypeOfSymbol : (symbol: Symbol) => Type +>symbol : Symbol +>Symbol : Symbol +>Type : Type + + getPropertiesOfType(type: Type): Symbol[]; +>getPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getPropertyOfType(type: Type, propertyName: string): Symbol; +>getPropertyOfType : (type: Type, propertyName: string) => Symbol +>type : Type +>Type : Type +>propertyName : string +>Symbol : Symbol + + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; +>getSignaturesOfType : (type: Type, kind: SignatureKind) => Signature[] +>type : Type +>Type : Type +>kind : SignatureKind +>SignatureKind : SignatureKind +>Signature : Signature + + getIndexTypeOfType(type: Type, kind: IndexKind): Type; +>getIndexTypeOfType : (type: Type, kind: IndexKind) => Type +>type : Type +>Type : Type +>kind : IndexKind +>IndexKind : IndexKind +>Type : Type + + getReturnTypeOfSignature(signature: Signature): Type; +>getReturnTypeOfSignature : (signature: Signature) => Type +>signature : Signature +>Signature : Signature +>Type : Type + + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; +>getSymbolsInScope : (location: Node, meaning: SymbolFlags) => Symbol[] +>location : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>Symbol : Symbol + + getSymbolAtLocation(node: Node): Symbol; +>getSymbolAtLocation : (node: Node) => Symbol +>node : Node +>Node : Node +>Symbol : Symbol + + getShorthandAssignmentValueSymbol(location: Node): Symbol; +>getShorthandAssignmentValueSymbol : (location: Node) => Symbol +>location : Node +>Node : Node +>Symbol : Symbol + + getTypeAtLocation(node: Node): Type; +>getTypeAtLocation : (node: Node) => Type +>node : Node +>Node : Node +>Type : Type + + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; +>typeToString : (type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => string +>type : Type +>Type : Type +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; +>symbolToString : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => string +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + + getSymbolDisplayBuilder(): SymbolDisplayBuilder; +>getSymbolDisplayBuilder : () => SymbolDisplayBuilder +>SymbolDisplayBuilder : SymbolDisplayBuilder + + getFullyQualifiedName(symbol: Symbol): string; +>getFullyQualifiedName : (symbol: Symbol) => string +>symbol : Symbol +>Symbol : Symbol + + getAugmentedPropertiesOfType(type: Type): Symbol[]; +>getAugmentedPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getRootSymbols(symbol: Symbol): Symbol[]; +>getRootSymbols : (symbol: Symbol) => Symbol[] +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + + getContextualType(node: Expression): Type; +>getContextualType : (node: Expression) => Type +>node : Expression +>Expression : Expression +>Type : Type + + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; +>getResolvedSignature : (node: CallExpression | NewExpression | TaggedTemplateExpression, candidatesOutArray?: Signature[]) => Signature +>node : CallExpression | NewExpression | TaggedTemplateExpression +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>candidatesOutArray : Signature[] +>Signature : Signature +>Signature : Signature + + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; +>getSignatureFromDeclaration : (declaration: SignatureDeclaration) => Signature +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>Signature : Signature + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + isUndefinedSymbol(symbol: Symbol): boolean; +>isUndefinedSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + isArgumentsSymbol(symbol: Symbol): boolean; +>isArgumentsSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; +>isValidPropertyAccess : (node: QualifiedName | PropertyAccessExpression, propertyName: string) => boolean +>node : QualifiedName | PropertyAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>QualifiedName : QualifiedName +>propertyName : string + + getAliasedSymbol(symbol: Symbol): Symbol; +>getAliasedSymbol : (symbol: Symbol) => Symbol +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + } + interface SymbolDisplayBuilder { +>SymbolDisplayBuilder : SymbolDisplayBuilder + + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeDisplay : (type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>type : Type +>Type : Type +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; +>buildSymbolDisplay : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>flags : SymbolFormatFlags +>SymbolFormatFlags : SymbolFormatFlags + + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildSignatureDisplay : (signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signatures : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildParameterDisplay : (parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameter : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplay : (tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>tp : TypeParameter +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplayFromSymbol : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaraiton : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForParametersAndDelimiters : (parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameters : Symbol[] +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForTypeParametersAndDelimiters : (typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildReturnTypeDisplay : (signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signature : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + } + interface SymbolWriter { +>SymbolWriter : SymbolWriter + + writeKeyword(text: string): void; +>writeKeyword : (text: string) => void +>text : string + + writeOperator(text: string): void; +>writeOperator : (text: string) => void +>text : string + + writePunctuation(text: string): void; +>writePunctuation : (text: string) => void +>text : string + + writeSpace(text: string): void; +>writeSpace : (text: string) => void +>text : string + + writeStringLiteral(text: string): void; +>writeStringLiteral : (text: string) => void +>text : string + + writeParameter(text: string): void; +>writeParameter : (text: string) => void +>text : string + + writeSymbol(text: string, symbol: Symbol): void; +>writeSymbol : (text: string, symbol: Symbol) => void +>text : string +>symbol : Symbol +>Symbol : Symbol + + writeLine(): void; +>writeLine : () => void + + increaseIndent(): void; +>increaseIndent : () => void + + decreaseIndent(): void; +>decreaseIndent : () => void + + clear(): void; +>clear : () => void + + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; +>trackSymbol : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => void +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + } + const enum TypeFormatFlags { +>TypeFormatFlags : TypeFormatFlags + + None = 0, +>None : TypeFormatFlags + + WriteArrayAsGenericType = 1, +>WriteArrayAsGenericType : TypeFormatFlags + + UseTypeOfFunction = 2, +>UseTypeOfFunction : TypeFormatFlags + + NoTruncation = 4, +>NoTruncation : TypeFormatFlags + + WriteArrowStyleSignature = 8, +>WriteArrowStyleSignature : TypeFormatFlags + + WriteOwnNameForAnyLike = 16, +>WriteOwnNameForAnyLike : TypeFormatFlags + + WriteTypeArgumentsOfSignature = 32, +>WriteTypeArgumentsOfSignature : TypeFormatFlags + + InElementType = 64, +>InElementType : TypeFormatFlags + } + const enum SymbolFormatFlags { +>SymbolFormatFlags : SymbolFormatFlags + + None = 0, +>None : SymbolFormatFlags + + WriteTypeParametersOrArguments = 1, +>WriteTypeParametersOrArguments : SymbolFormatFlags + + UseOnlyExternalAliasing = 2, +>UseOnlyExternalAliasing : SymbolFormatFlags + } + const enum SymbolAccessibility { +>SymbolAccessibility : SymbolAccessibility + + Accessible = 0, +>Accessible : SymbolAccessibility + + NotAccessible = 1, +>NotAccessible : SymbolAccessibility + + CannotBeNamed = 2, +>CannotBeNamed : SymbolAccessibility + } + interface SymbolVisibilityResult { +>SymbolVisibilityResult : SymbolVisibilityResult + + accessibility: SymbolAccessibility; +>accessibility : SymbolAccessibility +>SymbolAccessibility : SymbolAccessibility + + aliasesToMakeVisible?: ImportDeclaration[]; +>aliasesToMakeVisible : ImportDeclaration[] +>ImportDeclaration : ImportDeclaration + + errorSymbolName?: string; +>errorSymbolName : string + + errorNode?: Node; +>errorNode : Node +>Node : Node + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { +>SymbolAccessiblityResult : SymbolAccessiblityResult +>SymbolVisibilityResult : SymbolVisibilityResult + + errorModuleName?: string; +>errorModuleName : string + } + interface EmitResolver { +>EmitResolver : EmitResolver + + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; +>getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string +>container : EnumDeclaration | ModuleDeclaration +>ModuleDeclaration : ModuleDeclaration +>EnumDeclaration : EnumDeclaration + + getExpressionNamePrefix(node: Identifier): string; +>getExpressionNamePrefix : (node: Identifier) => string +>node : Identifier +>Identifier : Identifier + + getExportAssignmentName(node: SourceFile): string; +>getExportAssignmentName : (node: SourceFile) => string +>node : SourceFile +>SourceFile : SourceFile + + isReferencedImportDeclaration(node: ImportDeclaration): boolean; +>isReferencedImportDeclaration : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; +>isTopLevelValueImportWithEntityName : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + getNodeCheckFlags(node: Node): NodeCheckFlags; +>getNodeCheckFlags : (node: Node) => NodeCheckFlags +>node : Node +>Node : Node +>NodeCheckFlags : NodeCheckFlags + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + hasSemanticErrors(sourceFile?: SourceFile): boolean; +>hasSemanticErrors : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + + isDeclarationVisible(node: Declaration): boolean; +>isDeclarationVisible : (node: Declaration) => boolean +>node : Declaration +>Declaration : Declaration + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeTypeOfDeclaration : (declaration: VariableLikeDeclaration | AccessorDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>declaration : VariableLikeDeclaration | AccessorDeclaration +>AccessorDeclaration : AccessorDeclaration +>VariableLikeDeclaration : VariableLikeDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeReturnTypeOfSignatureDeclaration : (signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>signatureDeclaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; +>isSymbolAccessible : (symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) => SymbolAccessiblityResult +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>SymbolAccessiblityResult : SymbolAccessiblityResult + + isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; +>isEntityNameVisible : (entityName: Identifier | QualifiedName, enclosingDeclaration: Node) => SymbolVisibilityResult +>entityName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName +>enclosingDeclaration : Node +>Node : Node +>SymbolVisibilityResult : SymbolVisibilityResult + + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; +>getConstantValue : (node: PropertyAccessExpression | ElementAccessExpression) => number +>node : PropertyAccessExpression | ElementAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>ElementAccessExpression : ElementAccessExpression + + isUnknownIdentifier(location: Node, name: string): boolean; +>isUnknownIdentifier : (location: Node, name: string) => boolean +>location : Node +>Node : Node +>name : string + } + const enum SymbolFlags { +>SymbolFlags : SymbolFlags + + FunctionScopedVariable = 1, +>FunctionScopedVariable : SymbolFlags + + BlockScopedVariable = 2, +>BlockScopedVariable : SymbolFlags + + Property = 4, +>Property : SymbolFlags + + EnumMember = 8, +>EnumMember : SymbolFlags + + Function = 16, +>Function : SymbolFlags + + Class = 32, +>Class : SymbolFlags + + Interface = 64, +>Interface : SymbolFlags + + ConstEnum = 128, +>ConstEnum : SymbolFlags + + RegularEnum = 256, +>RegularEnum : SymbolFlags + + ValueModule = 512, +>ValueModule : SymbolFlags + + NamespaceModule = 1024, +>NamespaceModule : SymbolFlags + + TypeLiteral = 2048, +>TypeLiteral : SymbolFlags + + ObjectLiteral = 4096, +>ObjectLiteral : SymbolFlags + + Method = 8192, +>Method : SymbolFlags + + Constructor = 16384, +>Constructor : SymbolFlags + + GetAccessor = 32768, +>GetAccessor : SymbolFlags + + SetAccessor = 65536, +>SetAccessor : SymbolFlags + + Signature = 131072, +>Signature : SymbolFlags + + TypeParameter = 262144, +>TypeParameter : SymbolFlags + + TypeAlias = 524288, +>TypeAlias : SymbolFlags + + ExportValue = 1048576, +>ExportValue : SymbolFlags + + ExportType = 2097152, +>ExportType : SymbolFlags + + ExportNamespace = 4194304, +>ExportNamespace : SymbolFlags + + Import = 8388608, +>Import : SymbolFlags + + Instantiated = 16777216, +>Instantiated : SymbolFlags + + Merged = 33554432, +>Merged : SymbolFlags + + Transient = 67108864, +>Transient : SymbolFlags + + Prototype = 134217728, +>Prototype : SymbolFlags + + UnionProperty = 268435456, +>UnionProperty : SymbolFlags + + Optional = 536870912, +>Optional : SymbolFlags + + Enum = 384, +>Enum : SymbolFlags + + Variable = 3, +>Variable : SymbolFlags + + Value = 107455, +>Value : SymbolFlags + + Type = 793056, +>Type : SymbolFlags + + Namespace = 1536, +>Namespace : SymbolFlags + + Module = 1536, +>Module : SymbolFlags + + Accessor = 98304, +>Accessor : SymbolFlags + + FunctionScopedVariableExcludes = 107454, +>FunctionScopedVariableExcludes : SymbolFlags + + BlockScopedVariableExcludes = 107455, +>BlockScopedVariableExcludes : SymbolFlags + + ParameterExcludes = 107455, +>ParameterExcludes : SymbolFlags + + PropertyExcludes = 107455, +>PropertyExcludes : SymbolFlags + + EnumMemberExcludes = 107455, +>EnumMemberExcludes : SymbolFlags + + FunctionExcludes = 106927, +>FunctionExcludes : SymbolFlags + + ClassExcludes = 899583, +>ClassExcludes : SymbolFlags + + InterfaceExcludes = 792992, +>InterfaceExcludes : SymbolFlags + + RegularEnumExcludes = 899327, +>RegularEnumExcludes : SymbolFlags + + ConstEnumExcludes = 899967, +>ConstEnumExcludes : SymbolFlags + + ValueModuleExcludes = 106639, +>ValueModuleExcludes : SymbolFlags + + NamespaceModuleExcludes = 0, +>NamespaceModuleExcludes : SymbolFlags + + MethodExcludes = 99263, +>MethodExcludes : SymbolFlags + + GetAccessorExcludes = 41919, +>GetAccessorExcludes : SymbolFlags + + SetAccessorExcludes = 74687, +>SetAccessorExcludes : SymbolFlags + + TypeParameterExcludes = 530912, +>TypeParameterExcludes : SymbolFlags + + TypeAliasExcludes = 793056, +>TypeAliasExcludes : SymbolFlags + + ImportExcludes = 8388608, +>ImportExcludes : SymbolFlags + + ModuleMember = 8914931, +>ModuleMember : SymbolFlags + + ExportHasLocal = 944, +>ExportHasLocal : SymbolFlags + + HasLocals = 255504, +>HasLocals : SymbolFlags + + HasExports = 1952, +>HasExports : SymbolFlags + + HasMembers = 6240, +>HasMembers : SymbolFlags + + IsContainer = 262128, +>IsContainer : SymbolFlags + + PropertyOrAccessor = 98308, +>PropertyOrAccessor : SymbolFlags + + Export = 7340032, +>Export : SymbolFlags + } + interface Symbol { +>Symbol : Symbol + + flags: SymbolFlags; +>flags : SymbolFlags +>SymbolFlags : SymbolFlags + + name: string; +>name : string + + id?: number; +>id : number + + mergeId?: number; +>mergeId : number + + declarations?: Declaration[]; +>declarations : Declaration[] +>Declaration : Declaration + + parent?: Symbol; +>parent : Symbol +>Symbol : Symbol + + members?: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + exports?: SymbolTable; +>exports : SymbolTable +>SymbolTable : SymbolTable + + exportSymbol?: Symbol; +>exportSymbol : Symbol +>Symbol : Symbol + + valueDeclaration?: Declaration; +>valueDeclaration : Declaration +>Declaration : Declaration + + constEnumOnlyModule?: boolean; +>constEnumOnlyModule : boolean + } + interface SymbolLinks { +>SymbolLinks : SymbolLinks + + target?: Symbol; +>target : Symbol +>Symbol : Symbol + + type?: Type; +>type : Type +>Type : Type + + declaredType?: Type; +>declaredType : Type +>Type : Type + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + referenced?: boolean; +>referenced : boolean + + exportAssignSymbol?: Symbol; +>exportAssignSymbol : Symbol +>Symbol : Symbol + + unionType?: UnionType; +>unionType : UnionType +>UnionType : UnionType + } + interface TransientSymbol extends Symbol, SymbolLinks { +>TransientSymbol : TransientSymbol +>Symbol : Symbol +>SymbolLinks : SymbolLinks + } + interface SymbolTable { +>SymbolTable : SymbolTable + + [index: string]: Symbol; +>index : string +>Symbol : Symbol + } + const enum NodeCheckFlags { +>NodeCheckFlags : NodeCheckFlags + + TypeChecked = 1, +>TypeChecked : NodeCheckFlags + + LexicalThis = 2, +>LexicalThis : NodeCheckFlags + + CaptureThis = 4, +>CaptureThis : NodeCheckFlags + + EmitExtends = 8, +>EmitExtends : NodeCheckFlags + + SuperInstance = 16, +>SuperInstance : NodeCheckFlags + + SuperStatic = 32, +>SuperStatic : NodeCheckFlags + + ContextChecked = 64, +>ContextChecked : NodeCheckFlags + + EnumValuesComputed = 128, +>EnumValuesComputed : NodeCheckFlags + } + interface NodeLinks { +>NodeLinks : NodeLinks + + resolvedType?: Type; +>resolvedType : Type +>Type : Type + + resolvedSignature?: Signature; +>resolvedSignature : Signature +>Signature : Signature + + resolvedSymbol?: Symbol; +>resolvedSymbol : Symbol +>Symbol : Symbol + + flags?: NodeCheckFlags; +>flags : NodeCheckFlags +>NodeCheckFlags : NodeCheckFlags + + enumMemberValue?: number; +>enumMemberValue : number + + isIllegalTypeReferenceInConstraint?: boolean; +>isIllegalTypeReferenceInConstraint : boolean + + isVisible?: boolean; +>isVisible : boolean + + localModuleName?: string; +>localModuleName : string + + assignmentChecks?: Map; +>assignmentChecks : Map +>Map : Map + + hasReportedStatementInAmbientContext?: boolean; +>hasReportedStatementInAmbientContext : boolean + + importOnRightSide?: Symbol; +>importOnRightSide : Symbol +>Symbol : Symbol + } + const enum TypeFlags { +>TypeFlags : TypeFlags + + Any = 1, +>Any : TypeFlags + + String = 2, +>String : TypeFlags + + Number = 4, +>Number : TypeFlags + + Boolean = 8, +>Boolean : TypeFlags + + Void = 16, +>Void : TypeFlags + + Undefined = 32, +>Undefined : TypeFlags + + Null = 64, +>Null : TypeFlags + + Enum = 128, +>Enum : TypeFlags + + StringLiteral = 256, +>StringLiteral : TypeFlags + + TypeParameter = 512, +>TypeParameter : TypeFlags + + Class = 1024, +>Class : TypeFlags + + Interface = 2048, +>Interface : TypeFlags + + Reference = 4096, +>Reference : TypeFlags + + Tuple = 8192, +>Tuple : TypeFlags + + Union = 16384, +>Union : TypeFlags + + Anonymous = 32768, +>Anonymous : TypeFlags + + FromSignature = 65536, +>FromSignature : TypeFlags + + ObjectLiteral = 131072, +>ObjectLiteral : TypeFlags + + ContainsUndefinedOrNull = 262144, +>ContainsUndefinedOrNull : TypeFlags + + ContainsObjectLiteral = 524288, +>ContainsObjectLiteral : TypeFlags + + Intrinsic = 127, +>Intrinsic : TypeFlags + + Primitive = 510, +>Primitive : TypeFlags + + StringLike = 258, +>StringLike : TypeFlags + + NumberLike = 132, +>NumberLike : TypeFlags + + ObjectType = 48128, +>ObjectType : TypeFlags + + RequiresWidening = 786432, +>RequiresWidening : TypeFlags + } + interface Type { +>Type : Type + + flags: TypeFlags; +>flags : TypeFlags +>TypeFlags : TypeFlags + + id: number; +>id : number + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + } + interface IntrinsicType extends Type { +>IntrinsicType : IntrinsicType +>Type : Type + + intrinsicName: string; +>intrinsicName : string + } + interface StringLiteralType extends Type { +>StringLiteralType : StringLiteralType +>Type : Type + + text: string; +>text : string + } + interface ObjectType extends Type { +>ObjectType : ObjectType +>Type : Type + } + interface InterfaceType extends ObjectType { +>InterfaceType : InterfaceType +>ObjectType : ObjectType + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + baseTypes: ObjectType[]; +>baseTypes : ObjectType[] +>ObjectType : ObjectType + + declaredProperties: Symbol[]; +>declaredProperties : Symbol[] +>Symbol : Symbol + + declaredCallSignatures: Signature[]; +>declaredCallSignatures : Signature[] +>Signature : Signature + + declaredConstructSignatures: Signature[]; +>declaredConstructSignatures : Signature[] +>Signature : Signature + + declaredStringIndexType: Type; +>declaredStringIndexType : Type +>Type : Type + + declaredNumberIndexType: Type; +>declaredNumberIndexType : Type +>Type : Type + } + interface TypeReference extends ObjectType { +>TypeReference : TypeReference +>ObjectType : ObjectType + + target: GenericType; +>target : GenericType +>GenericType : GenericType + + typeArguments: Type[]; +>typeArguments : Type[] +>Type : Type + } + interface GenericType extends InterfaceType, TypeReference { +>GenericType : GenericType +>InterfaceType : InterfaceType +>TypeReference : TypeReference + + instantiations: Map; +>instantiations : Map +>Map : Map +>TypeReference : TypeReference + } + interface TupleType extends ObjectType { +>TupleType : TupleType +>ObjectType : ObjectType + + elementTypes: Type[]; +>elementTypes : Type[] +>Type : Type + + baseArrayType: TypeReference; +>baseArrayType : TypeReference +>TypeReference : TypeReference + } + interface UnionType extends Type { +>UnionType : UnionType +>Type : Type + + types: Type[]; +>types : Type[] +>Type : Type + + resolvedProperties: SymbolTable; +>resolvedProperties : SymbolTable +>SymbolTable : SymbolTable + } + interface ResolvedType extends ObjectType, UnionType { +>ResolvedType : ResolvedType +>ObjectType : ObjectType +>UnionType : UnionType + + members: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + properties: Symbol[]; +>properties : Symbol[] +>Symbol : Symbol + + callSignatures: Signature[]; +>callSignatures : Signature[] +>Signature : Signature + + constructSignatures: Signature[]; +>constructSignatures : Signature[] +>Signature : Signature + + stringIndexType: Type; +>stringIndexType : Type +>Type : Type + + numberIndexType: Type; +>numberIndexType : Type +>Type : Type + } + interface TypeParameter extends Type { +>TypeParameter : TypeParameter +>Type : Type + + constraint: Type; +>constraint : Type +>Type : Type + + target?: TypeParameter; +>target : TypeParameter +>TypeParameter : TypeParameter + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + } + const enum SignatureKind { +>SignatureKind : SignatureKind + + Call = 0, +>Call : SignatureKind + + Construct = 1, +>Construct : SignatureKind + } + interface Signature { +>Signature : Signature + + declaration: SignatureDeclaration; +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + parameters: Symbol[]; +>parameters : Symbol[] +>Symbol : Symbol + + resolvedReturnType: Type; +>resolvedReturnType : Type +>Type : Type + + minArgumentCount: number; +>minArgumentCount : number + + hasRestParameter: boolean; +>hasRestParameter : boolean + + hasStringLiterals: boolean; +>hasStringLiterals : boolean + + target?: Signature; +>target : Signature +>Signature : Signature + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + unionSignatures?: Signature[]; +>unionSignatures : Signature[] +>Signature : Signature + + erasedSignatureCache?: Signature; +>erasedSignatureCache : Signature +>Signature : Signature + + isolatedSignatureType?: ObjectType; +>isolatedSignatureType : ObjectType +>ObjectType : ObjectType + } + const enum IndexKind { +>IndexKind : IndexKind + + String = 0, +>String : IndexKind + + Number = 1, +>Number : IndexKind + } + interface TypeMapper { +>TypeMapper : TypeMapper + + (t: Type): Type; +>t : Type +>Type : Type +>Type : Type + } + interface TypeInferences { +>TypeInferences : TypeInferences + + primary: Type[]; +>primary : Type[] +>Type : Type + + secondary: Type[]; +>secondary : Type[] +>Type : Type + } + interface InferenceContext { +>InferenceContext : InferenceContext + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + inferUnionTypes: boolean; +>inferUnionTypes : boolean + + inferences: TypeInferences[]; +>inferences : TypeInferences[] +>TypeInferences : TypeInferences + + inferredTypes: Type[]; +>inferredTypes : Type[] +>Type : Type + + failedTypeParameterIndex?: number; +>failedTypeParameterIndex : number + } + interface DiagnosticMessage { +>DiagnosticMessage : DiagnosticMessage + + key: string; +>key : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + isEarly?: boolean; +>isEarly : boolean + } + interface DiagnosticMessageChain { +>DiagnosticMessageChain : DiagnosticMessageChain + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + next?: DiagnosticMessageChain; +>next : DiagnosticMessageChain +>DiagnosticMessageChain : DiagnosticMessageChain + } + interface Diagnostic { +>Diagnostic : Diagnostic + + file: SourceFile; +>file : SourceFile +>SourceFile : SourceFile + + start: number; +>start : number + + length: number; +>length : number + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; +>isEarly : boolean + } + enum DiagnosticCategory { +>DiagnosticCategory : DiagnosticCategory + + Warning = 0, +>Warning : DiagnosticCategory + + Error = 1, +>Error : DiagnosticCategory + + Message = 2, +>Message : DiagnosticCategory + } + interface CompilerOptions { +>CompilerOptions : CompilerOptions + + allowNonTsExtensions?: boolean; +>allowNonTsExtensions : boolean + + charset?: string; +>charset : string + + codepage?: number; +>codepage : number + + declaration?: boolean; +>declaration : boolean + + diagnostics?: boolean; +>diagnostics : boolean + + emitBOM?: boolean; +>emitBOM : boolean + + help?: boolean; +>help : boolean + + listFiles?: boolean; +>listFiles : boolean + + locale?: string; +>locale : string + + mapRoot?: string; +>mapRoot : string + + module?: ModuleKind; +>module : ModuleKind +>ModuleKind : ModuleKind + + noEmit?: boolean; +>noEmit : boolean + + noEmitOnError?: boolean; +>noEmitOnError : boolean + + noErrorTruncation?: boolean; +>noErrorTruncation : boolean + + noImplicitAny?: boolean; +>noImplicitAny : boolean + + noLib?: boolean; +>noLib : boolean + + noLibCheck?: boolean; +>noLibCheck : boolean + + noResolve?: boolean; +>noResolve : boolean + + out?: string; +>out : string + + outDir?: string; +>outDir : string + + preserveConstEnums?: boolean; +>preserveConstEnums : boolean + + project?: string; +>project : string + + removeComments?: boolean; +>removeComments : boolean + + sourceMap?: boolean; +>sourceMap : boolean + + sourceRoot?: string; +>sourceRoot : string + + suppressImplicitAnyIndexErrors?: boolean; +>suppressImplicitAnyIndexErrors : boolean + + target?: ScriptTarget; +>target : ScriptTarget +>ScriptTarget : ScriptTarget + + version?: boolean; +>version : boolean + + watch?: boolean; +>watch : boolean + + [option: string]: string | number | boolean; +>option : string + } + const enum ModuleKind { +>ModuleKind : ModuleKind + + None = 0, +>None : ModuleKind + + CommonJS = 1, +>CommonJS : ModuleKind + + AMD = 2, +>AMD : ModuleKind + } + interface LineAndCharacter { +>LineAndCharacter : LineAndCharacter + + line: number; +>line : number + + character: number; +>character : number + } + const enum ScriptTarget { +>ScriptTarget : ScriptTarget + + ES3 = 0, +>ES3 : ScriptTarget + + ES5 = 1, +>ES5 : ScriptTarget + + ES6 = 2, +>ES6 : ScriptTarget + + Latest = 2, +>Latest : ScriptTarget + } + interface ParsedCommandLine { +>ParsedCommandLine : ParsedCommandLine + + options: CompilerOptions; +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + filenames: string[]; +>filenames : string[] + + errors: Diagnostic[]; +>errors : Diagnostic[] +>Diagnostic : Diagnostic + } + interface CommandLineOption { +>CommandLineOption : CommandLineOption + + name: string; +>name : string + + type: string | Map; +>type : string | Map +>Map : Map + + isFilePath?: boolean; +>isFilePath : boolean + + shortName?: string; +>shortName : string + + description?: DiagnosticMessage; +>description : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + paramType?: DiagnosticMessage; +>paramType : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + error?: DiagnosticMessage; +>error : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + } + const enum CharacterCodes { +>CharacterCodes : CharacterCodes + + nullCharacter = 0, +>nullCharacter : CharacterCodes + + maxAsciiCharacter = 127, +>maxAsciiCharacter : CharacterCodes + + lineFeed = 10, +>lineFeed : CharacterCodes + + carriageReturn = 13, +>carriageReturn : CharacterCodes + + lineSeparator = 8232, +>lineSeparator : CharacterCodes + + paragraphSeparator = 8233, +>paragraphSeparator : CharacterCodes + + nextLine = 133, +>nextLine : CharacterCodes + + space = 32, +>space : CharacterCodes + + nonBreakingSpace = 160, +>nonBreakingSpace : CharacterCodes + + enQuad = 8192, +>enQuad : CharacterCodes + + emQuad = 8193, +>emQuad : CharacterCodes + + enSpace = 8194, +>enSpace : CharacterCodes + + emSpace = 8195, +>emSpace : CharacterCodes + + threePerEmSpace = 8196, +>threePerEmSpace : CharacterCodes + + fourPerEmSpace = 8197, +>fourPerEmSpace : CharacterCodes + + sixPerEmSpace = 8198, +>sixPerEmSpace : CharacterCodes + + figureSpace = 8199, +>figureSpace : CharacterCodes + + punctuationSpace = 8200, +>punctuationSpace : CharacterCodes + + thinSpace = 8201, +>thinSpace : CharacterCodes + + hairSpace = 8202, +>hairSpace : CharacterCodes + + zeroWidthSpace = 8203, +>zeroWidthSpace : CharacterCodes + + narrowNoBreakSpace = 8239, +>narrowNoBreakSpace : CharacterCodes + + ideographicSpace = 12288, +>ideographicSpace : CharacterCodes + + mathematicalSpace = 8287, +>mathematicalSpace : CharacterCodes + + ogham = 5760, +>ogham : CharacterCodes + + _ = 95, +>_ : CharacterCodes + + $ = 36, +>$ : CharacterCodes + + _0 = 48, +>_0 : CharacterCodes + + _1 = 49, +>_1 : CharacterCodes + + _2 = 50, +>_2 : CharacterCodes + + _3 = 51, +>_3 : CharacterCodes + + _4 = 52, +>_4 : CharacterCodes + + _5 = 53, +>_5 : CharacterCodes + + _6 = 54, +>_6 : CharacterCodes + + _7 = 55, +>_7 : CharacterCodes + + _8 = 56, +>_8 : CharacterCodes + + _9 = 57, +>_9 : CharacterCodes + + a = 97, +>a : CharacterCodes + + b = 98, +>b : CharacterCodes + + c = 99, +>c : CharacterCodes + + d = 100, +>d : CharacterCodes + + e = 101, +>e : CharacterCodes + + f = 102, +>f : CharacterCodes + + g = 103, +>g : CharacterCodes + + h = 104, +>h : CharacterCodes + + i = 105, +>i : CharacterCodes + + j = 106, +>j : CharacterCodes + + k = 107, +>k : CharacterCodes + + l = 108, +>l : CharacterCodes + + m = 109, +>m : CharacterCodes + + n = 110, +>n : CharacterCodes + + o = 111, +>o : CharacterCodes + + p = 112, +>p : CharacterCodes + + q = 113, +>q : CharacterCodes + + r = 114, +>r : CharacterCodes + + s = 115, +>s : CharacterCodes + + t = 116, +>t : CharacterCodes + + u = 117, +>u : CharacterCodes + + v = 118, +>v : CharacterCodes + + w = 119, +>w : CharacterCodes + + x = 120, +>x : CharacterCodes + + y = 121, +>y : CharacterCodes + + z = 122, +>z : CharacterCodes + + A = 65, +>A : CharacterCodes + + B = 66, +>B : CharacterCodes + + C = 67, +>C : CharacterCodes + + D = 68, +>D : CharacterCodes + + E = 69, +>E : CharacterCodes + + F = 70, +>F : CharacterCodes + + G = 71, +>G : CharacterCodes + + H = 72, +>H : CharacterCodes + + I = 73, +>I : CharacterCodes + + J = 74, +>J : CharacterCodes + + K = 75, +>K : CharacterCodes + + L = 76, +>L : CharacterCodes + + M = 77, +>M : CharacterCodes + + N = 78, +>N : CharacterCodes + + O = 79, +>O : CharacterCodes + + P = 80, +>P : CharacterCodes + + Q = 81, +>Q : CharacterCodes + + R = 82, +>R : CharacterCodes + + S = 83, +>S : CharacterCodes + + T = 84, +>T : CharacterCodes + + U = 85, +>U : CharacterCodes + + V = 86, +>V : CharacterCodes + + W = 87, +>W : CharacterCodes + + X = 88, +>X : CharacterCodes + + Y = 89, +>Y : CharacterCodes + + Z = 90, +>Z : CharacterCodes + + ampersand = 38, +>ampersand : CharacterCodes + + asterisk = 42, +>asterisk : CharacterCodes + + at = 64, +>at : CharacterCodes + + backslash = 92, +>backslash : CharacterCodes + + backtick = 96, +>backtick : CharacterCodes + + bar = 124, +>bar : CharacterCodes + + caret = 94, +>caret : CharacterCodes + + closeBrace = 125, +>closeBrace : CharacterCodes + + closeBracket = 93, +>closeBracket : CharacterCodes + + closeParen = 41, +>closeParen : CharacterCodes + + colon = 58, +>colon : CharacterCodes + + comma = 44, +>comma : CharacterCodes + + dot = 46, +>dot : CharacterCodes + + doubleQuote = 34, +>doubleQuote : CharacterCodes + + equals = 61, +>equals : CharacterCodes + + exclamation = 33, +>exclamation : CharacterCodes + + greaterThan = 62, +>greaterThan : CharacterCodes + + lessThan = 60, +>lessThan : CharacterCodes + + minus = 45, +>minus : CharacterCodes + + openBrace = 123, +>openBrace : CharacterCodes + + openBracket = 91, +>openBracket : CharacterCodes + + openParen = 40, +>openParen : CharacterCodes + + percent = 37, +>percent : CharacterCodes + + plus = 43, +>plus : CharacterCodes + + question = 63, +>question : CharacterCodes + + semicolon = 59, +>semicolon : CharacterCodes + + singleQuote = 39, +>singleQuote : CharacterCodes + + slash = 47, +>slash : CharacterCodes + + tilde = 126, +>tilde : CharacterCodes + + backspace = 8, +>backspace : CharacterCodes + + formFeed = 12, +>formFeed : CharacterCodes + + byteOrderMark = 65279, +>byteOrderMark : CharacterCodes + + tab = 9, +>tab : CharacterCodes + + verticalTab = 11, +>verticalTab : CharacterCodes + } + interface CancellationToken { +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + } + interface CompilerHost { +>CompilerHost : CompilerHost + + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; +>getSourceFile : (filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void) => SourceFile +>filename : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>onError : (message: string) => void +>message : string +>SourceFile : SourceFile + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; +>writeFile : (filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void) => void +>filename : string +>data : string +>writeByteOrderMark : boolean +>onError : (message: string) => void +>message : string + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getCanonicalFileName(fileName: string): string; +>getCanonicalFileName : (fileName: string) => string +>fileName : string + + useCaseSensitiveFileNames(): boolean; +>useCaseSensitiveFileNames : () => boolean + + getNewLine(): string; +>getNewLine : () => string + } + interface TextSpan { +>TextSpan : TextSpan + + start: number; +>start : number + + length: number; +>length : number + } + interface TextChangeRange { +>TextChangeRange : TextChangeRange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newLength: number; +>newLength : number + } +} +declare module "typescript" { + interface ErrorCallback { +>ErrorCallback : ErrorCallback + + (message: DiagnosticMessage, length: number): void; +>message : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage +>length : number + } + interface Scanner { +>Scanner : Scanner + + getStartPos(): number; +>getStartPos : () => number + + getToken(): SyntaxKind; +>getToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + getTextPos(): number; +>getTextPos : () => number + + getTokenPos(): number; +>getTokenPos : () => number + + getTokenText(): string; +>getTokenText : () => string + + getTokenValue(): string; +>getTokenValue : () => string + + hasPrecedingLineBreak(): boolean; +>hasPrecedingLineBreak : () => boolean + + isIdentifier(): boolean; +>isIdentifier : () => boolean + + isReservedWord(): boolean; +>isReservedWord : () => boolean + + isUnterminated(): boolean; +>isUnterminated : () => boolean + + reScanGreaterToken(): SyntaxKind; +>reScanGreaterToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanSlashToken(): SyntaxKind; +>reScanSlashToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanTemplateToken(): SyntaxKind; +>reScanTemplateToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + scan(): SyntaxKind; +>scan : () => SyntaxKind +>SyntaxKind : SyntaxKind + + setText(text: string): void; +>setText : (text: string) => void +>text : string + + setTextPos(textPos: number): void; +>setTextPos : (textPos: number) => void +>textPos : number + + lookAhead(callback: () => T): T; +>lookAhead : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + + tryScan(callback: () => T): T; +>tryScan : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + } + function tokenToString(t: SyntaxKind): string; +>tokenToString : (t: SyntaxKind) => string +>t : SyntaxKind +>SyntaxKind : SyntaxKind + + function computeLineStarts(text: string): number[]; +>computeLineStarts : (text: string) => number[] +>text : string + + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; +>getPositionFromLineAndCharacter : (lineStarts: number[], line: number, character: number) => number +>lineStarts : number[] +>line : number +>character : number + + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { +>getLineAndCharacterOfPosition : (lineStarts: number[], position: number) => { line: number; character: number; } +>lineStarts : number[] +>position : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function positionToLineAndCharacter(text: string, pos: number): { +>positionToLineAndCharacter : (text: string, pos: number) => { line: number; character: number; } +>text : string +>pos : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function isWhiteSpace(ch: number): boolean; +>isWhiteSpace : (ch: number) => boolean +>ch : number + + function isLineBreak(ch: number): boolean; +>isLineBreak : (ch: number) => boolean +>ch : number + + function isOctalDigit(ch: number): boolean; +>isOctalDigit : (ch: number) => boolean +>ch : number + + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; +>skipTrivia : (text: string, pos: number, stopAfterLineBreak?: boolean) => number +>text : string +>pos : number +>stopAfterLineBreak : boolean + + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; +>getLeadingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; +>getTrailingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierStart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierPart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +>createScanner : (languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback) => Scanner +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>skipTrivia : boolean +>text : string +>onError : ErrorCallback +>ErrorCallback : ErrorCallback +>Scanner : Scanner +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; +>getNodeConstructor : (kind: SyntaxKind) => new () => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function createNode(kind: SyntaxKind): Node; +>createNode : (kind: SyntaxKind) => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; +>forEachChild : (node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T) => T +>T : T +>node : Node +>Node : Node +>cbNode : (node: Node) => T +>node : Node +>Node : Node +>T : T +>cbNodeArray : (nodes: Node[]) => T +>nodes : Node[] +>Node : Node +>T : T +>T : T + + function modifierToFlag(token: SyntaxKind): NodeFlags; +>modifierToFlag : (token: SyntaxKind) => NodeFlags +>token : SyntaxKind +>SyntaxKind : SyntaxKind +>NodeFlags : NodeFlags + + function isEvalOrArgumentsIdentifier(node: Node): boolean; +>isEvalOrArgumentsIdentifier : (node: Node) => boolean +>node : Node +>Node : Node + + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; +>createSourceFile : (filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean) => SourceFile +>filename : string +>sourceText : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>setParentNodes : boolean +>SourceFile : SourceFile + + function isLeftHandSideExpression(expr: Expression): boolean; +>isLeftHandSideExpression : (expr: Expression) => boolean +>expr : Expression +>Expression : Expression + + function isAssignmentOperator(token: SyntaxKind): boolean; +>isAssignmentOperator : (token: SyntaxKind) => boolean +>token : SyntaxKind +>SyntaxKind : SyntaxKind +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +>createTypeChecker : (host: TypeCheckerHost, produceDiagnostics: boolean) => TypeChecker +>host : TypeCheckerHost +>TypeCheckerHost : TypeCheckerHost +>produceDiagnostics : boolean +>TypeChecker : TypeChecker +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; +>createCompilerHost : (options: CompilerOptions) => CompilerHost +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>CompilerHost : CompilerHost + + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +>createProgram : (rootNames: string[], options: CompilerOptions, host: CompilerHost) => Program +>rootNames : string[] +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>host : CompilerHost +>CompilerHost : CompilerHost +>Program : Program +} +declare module "typescript" { + var servicesVersion: string; +>servicesVersion : string + + interface Node { +>Node : Node + + getSourceFile(): SourceFile; +>getSourceFile : () => SourceFile +>SourceFile : SourceFile + + getChildCount(sourceFile?: SourceFile): number; +>getChildCount : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getChildAt(index: number, sourceFile?: SourceFile): Node; +>getChildAt : (index: number, sourceFile?: SourceFile) => Node +>index : number +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getChildren(sourceFile?: SourceFile): Node[]; +>getChildren : (sourceFile?: SourceFile) => Node[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getStart(sourceFile?: SourceFile): number; +>getStart : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullStart(): number; +>getFullStart : () => number + + getEnd(): number; +>getEnd : () => number + + getWidth(sourceFile?: SourceFile): number; +>getWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullWidth(): number; +>getFullWidth : () => number + + getLeadingTriviaWidth(sourceFile?: SourceFile): number; +>getLeadingTriviaWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullText(sourceFile?: SourceFile): string; +>getFullText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getText(sourceFile?: SourceFile): string; +>getText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFirstToken(sourceFile?: SourceFile): Node; +>getFirstToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getLastToken(sourceFile?: SourceFile): Node; +>getLastToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + } + interface Symbol { +>Symbol : Symbol + + getFlags(): SymbolFlags; +>getFlags : () => SymbolFlags +>SymbolFlags : SymbolFlags + + getName(): string; +>getName : () => string + + getDeclarations(): Declaration[]; +>getDeclarations : () => Declaration[] +>Declaration : Declaration + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface Type { +>Type : Type + + getFlags(): TypeFlags; +>getFlags : () => TypeFlags +>TypeFlags : TypeFlags + + getSymbol(): Symbol; +>getSymbol : () => Symbol +>Symbol : Symbol + + getProperties(): Symbol[]; +>getProperties : () => Symbol[] +>Symbol : Symbol + + getProperty(propertyName: string): Symbol; +>getProperty : (propertyName: string) => Symbol +>propertyName : string +>Symbol : Symbol + + getApparentProperties(): Symbol[]; +>getApparentProperties : () => Symbol[] +>Symbol : Symbol + + getCallSignatures(): Signature[]; +>getCallSignatures : () => Signature[] +>Signature : Signature + + getConstructSignatures(): Signature[]; +>getConstructSignatures : () => Signature[] +>Signature : Signature + + getStringIndexType(): Type; +>getStringIndexType : () => Type +>Type : Type + + getNumberIndexType(): Type; +>getNumberIndexType : () => Type +>Type : Type + } + interface Signature { +>Signature : Signature + + getDeclaration(): SignatureDeclaration; +>getDeclaration : () => SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + getTypeParameters(): Type[]; +>getTypeParameters : () => Type[] +>Type : Type + + getParameters(): Symbol[]; +>getParameters : () => Symbol[] +>Symbol : Symbol + + getReturnType(): Type; +>getReturnType : () => Type +>Type : Type + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface SourceFile { +>SourceFile : SourceFile + + version: string; +>version : string + + scriptSnapshot: IScriptSnapshot; +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot + + nameTable: Map; +>nameTable : Map +>Map : Map + + getNamedDeclarations(): Declaration[]; +>getNamedDeclarations : () => Declaration[] +>Declaration : Declaration + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { +>IScriptSnapshot : IScriptSnapshot + + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; +>getText : (start: number, end: number) => string +>start : number +>end : number + + /** Gets the length of this script snapshot. */ + getLength(): number; +>getLength : () => number + + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; +>getChangeRange : (oldSnapshot: IScriptSnapshot) => TextChangeRange +>oldSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>TextChangeRange : TextChangeRange + } + module ScriptSnapshot { +>ScriptSnapshot : typeof ScriptSnapshot + + function fromString(text: string): IScriptSnapshot; +>fromString : (text: string) => IScriptSnapshot +>text : string +>IScriptSnapshot : IScriptSnapshot + } + interface PreProcessedFileInfo { +>PreProcessedFileInfo : PreProcessedFileInfo + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + importedFiles: FileReference[]; +>importedFiles : FileReference[] +>FileReference : FileReference + + isLibFile: boolean; +>isLibFile : boolean + } + interface LanguageServiceHost { +>LanguageServiceHost : LanguageServiceHost + + getCompilationSettings(): CompilerOptions; +>getCompilationSettings : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getNewLine?(): string; +>getNewLine : () => string + + getScriptFileNames(): string[]; +>getScriptFileNames : () => string[] + + getScriptVersion(fileName: string): string; +>getScriptVersion : (fileName: string) => string +>fileName : string + + getScriptSnapshot(fileName: string): IScriptSnapshot; +>getScriptSnapshot : (fileName: string) => IScriptSnapshot +>fileName : string +>IScriptSnapshot : IScriptSnapshot + + getLocalizedDiagnosticMessages?(): any; +>getLocalizedDiagnosticMessages : () => any + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + log?(s: string): void; +>log : (s: string) => void +>s : string + + trace?(s: string): void; +>trace : (s: string) => void +>s : string + + error?(s: string): void; +>error : (s: string) => void +>s : string + } + interface LanguageService { +>LanguageService : LanguageService + + cleanupSemanticCache(): void; +>cleanupSemanticCache : () => void + + getSyntacticDiagnostics(fileName: string): Diagnostic[]; +>getSyntacticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getSemanticDiagnostics(fileName: string): Diagnostic[]; +>getSemanticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getCompilerOptionsDiagnostics(): Diagnostic[]; +>getCompilerOptionsDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSyntacticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSemanticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; +>getCompletionsAtPosition : (fileName: string, position: number) => CompletionInfo +>fileName : string +>position : number +>CompletionInfo : CompletionInfo + + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; +>getCompletionEntryDetails : (fileName: string, position: number, entryName: string) => CompletionEntryDetails +>fileName : string +>position : number +>entryName : string +>CompletionEntryDetails : CompletionEntryDetails + + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; +>getQuickInfoAtPosition : (fileName: string, position: number) => QuickInfo +>fileName : string +>position : number +>QuickInfo : QuickInfo + + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; +>getNameOrDottedNameSpan : (fileName: string, startPos: number, endPos: number) => TextSpan +>fileName : string +>startPos : number +>endPos : number +>TextSpan : TextSpan + + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; +>getBreakpointStatementAtPosition : (fileName: string, position: number) => TextSpan +>fileName : string +>position : number +>TextSpan : TextSpan + + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; +>getSignatureHelpItems : (fileName: string, position: number) => SignatureHelpItems +>fileName : string +>position : number +>SignatureHelpItems : SignatureHelpItems + + getRenameInfo(fileName: string, position: number): RenameInfo; +>getRenameInfo : (fileName: string, position: number) => RenameInfo +>fileName : string +>position : number +>RenameInfo : RenameInfo + + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; +>findRenameLocations : (fileName: string, position: number, findInStrings: boolean, findInComments: boolean) => RenameLocation[] +>fileName : string +>position : number +>findInStrings : boolean +>findInComments : boolean +>RenameLocation : RenameLocation + + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; +>getDefinitionAtPosition : (fileName: string, position: number) => DefinitionInfo[] +>fileName : string +>position : number +>DefinitionInfo : DefinitionInfo + + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getReferencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getOccurrencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getNavigateToItems(searchValue: string): NavigateToItem[]; +>getNavigateToItems : (searchValue: string) => NavigateToItem[] +>searchValue : string +>NavigateToItem : NavigateToItem + + getNavigationBarItems(fileName: string): NavigationBarItem[]; +>getNavigationBarItems : (fileName: string) => NavigationBarItem[] +>fileName : string +>NavigationBarItem : NavigationBarItem + + getOutliningSpans(fileName: string): OutliningSpan[]; +>getOutliningSpans : (fileName: string) => OutliningSpan[] +>fileName : string +>OutliningSpan : OutliningSpan + + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; +>getTodoComments : (fileName: string, descriptors: TodoCommentDescriptor[]) => TodoComment[] +>fileName : string +>descriptors : TodoCommentDescriptor[] +>TodoCommentDescriptor : TodoCommentDescriptor +>TodoComment : TodoComment + + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; +>getBraceMatchingAtPosition : (fileName: string, position: number) => TextSpan[] +>fileName : string +>position : number +>TextSpan : TextSpan + + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; +>getIndentationAtPosition : (fileName: string, position: number, options: EditorOptions) => number +>fileName : string +>position : number +>options : EditorOptions +>EditorOptions : EditorOptions + + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForRange : (fileName: string, start: number, end: number, options: FormatCodeOptions) => TextChange[] +>fileName : string +>start : number +>end : number +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForDocument : (fileName: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsAfterKeystroke : (fileName: string, position: number, key: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>position : number +>key : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getEmitOutput(fileName: string): EmitOutput; +>getEmitOutput : (fileName: string) => EmitOutput +>fileName : string +>EmitOutput : EmitOutput + + getProgram(): Program; +>getProgram : () => Program +>Program : Program + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + dispose(): void; +>dispose : () => void + } + interface ClassifiedSpan { +>ClassifiedSpan : ClassifiedSpan + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + classificationType: string; +>classificationType : string + } + interface NavigationBarItem { +>NavigationBarItem : NavigationBarItem + + text: string; +>text : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + spans: TextSpan[]; +>spans : TextSpan[] +>TextSpan : TextSpan + + childItems: NavigationBarItem[]; +>childItems : NavigationBarItem[] +>NavigationBarItem : NavigationBarItem + + indent: number; +>indent : number + + bolded: boolean; +>bolded : boolean + + grayed: boolean; +>grayed : boolean + } + interface TodoCommentDescriptor { +>TodoCommentDescriptor : TodoCommentDescriptor + + text: string; +>text : string + + priority: number; +>priority : number + } + interface TodoComment { +>TodoComment : TodoComment + + descriptor: TodoCommentDescriptor; +>descriptor : TodoCommentDescriptor +>TodoCommentDescriptor : TodoCommentDescriptor + + message: string; +>message : string + + position: number; +>position : number + } + class TextChange { +>TextChange : TextChange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newText: string; +>newText : string + } + interface RenameLocation { +>RenameLocation : RenameLocation + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + } + interface ReferenceEntry { +>ReferenceEntry : ReferenceEntry + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + + isWriteAccess: boolean; +>isWriteAccess : boolean + } + interface NavigateToItem { +>NavigateToItem : NavigateToItem + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + matchKind: string; +>matchKind : string + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + containerName: string; +>containerName : string + + containerKind: string; +>containerKind : string + } + interface EditorOptions { +>EditorOptions : EditorOptions + + IndentSize: number; +>IndentSize : number + + TabSize: number; +>TabSize : number + + NewLineCharacter: string; +>NewLineCharacter : string + + ConvertTabsToSpaces: boolean; +>ConvertTabsToSpaces : boolean + } + interface FormatCodeOptions extends EditorOptions { +>FormatCodeOptions : FormatCodeOptions +>EditorOptions : EditorOptions + + InsertSpaceAfterCommaDelimiter: boolean; +>InsertSpaceAfterCommaDelimiter : boolean + + InsertSpaceAfterSemicolonInForStatements: boolean; +>InsertSpaceAfterSemicolonInForStatements : boolean + + InsertSpaceBeforeAndAfterBinaryOperators: boolean; +>InsertSpaceBeforeAndAfterBinaryOperators : boolean + + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; +>InsertSpaceAfterKeywordsInControlFlowStatements : boolean + + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; +>InsertSpaceAfterFunctionKeywordForAnonymousFunctions : boolean + + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; +>InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis : boolean + + PlaceOpenBraceOnNewLineForFunctions: boolean; +>PlaceOpenBraceOnNewLineForFunctions : boolean + + PlaceOpenBraceOnNewLineForControlBlocks: boolean; +>PlaceOpenBraceOnNewLineForControlBlocks : boolean + } + interface DefinitionInfo { +>DefinitionInfo : DefinitionInfo + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + kind: string; +>kind : string + + name: string; +>name : string + + containerKind: string; +>containerKind : string + + containerName: string; +>containerName : string + } + enum SymbolDisplayPartKind { +>SymbolDisplayPartKind : SymbolDisplayPartKind + + aliasName = 0, +>aliasName : SymbolDisplayPartKind + + className = 1, +>className : SymbolDisplayPartKind + + enumName = 2, +>enumName : SymbolDisplayPartKind + + fieldName = 3, +>fieldName : SymbolDisplayPartKind + + interfaceName = 4, +>interfaceName : SymbolDisplayPartKind + + keyword = 5, +>keyword : SymbolDisplayPartKind + + lineBreak = 6, +>lineBreak : SymbolDisplayPartKind + + numericLiteral = 7, +>numericLiteral : SymbolDisplayPartKind + + stringLiteral = 8, +>stringLiteral : SymbolDisplayPartKind + + localName = 9, +>localName : SymbolDisplayPartKind + + methodName = 10, +>methodName : SymbolDisplayPartKind + + moduleName = 11, +>moduleName : SymbolDisplayPartKind + + operator = 12, +>operator : SymbolDisplayPartKind + + parameterName = 13, +>parameterName : SymbolDisplayPartKind + + propertyName = 14, +>propertyName : SymbolDisplayPartKind + + punctuation = 15, +>punctuation : SymbolDisplayPartKind + + space = 16, +>space : SymbolDisplayPartKind + + text = 17, +>text : SymbolDisplayPartKind + + typeParameterName = 18, +>typeParameterName : SymbolDisplayPartKind + + enumMemberName = 19, +>enumMemberName : SymbolDisplayPartKind + + functionName = 20, +>functionName : SymbolDisplayPartKind + + regularExpressionLiteral = 21, +>regularExpressionLiteral : SymbolDisplayPartKind + } + interface SymbolDisplayPart { +>SymbolDisplayPart : SymbolDisplayPart + + text: string; +>text : string + + kind: string; +>kind : string + } + interface QuickInfo { +>QuickInfo : QuickInfo + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface RenameInfo { +>RenameInfo : RenameInfo + + canRename: boolean; +>canRename : boolean + + localizedErrorMessage: string; +>localizedErrorMessage : string + + displayName: string; +>displayName : string + + fullDisplayName: string; +>fullDisplayName : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + triggerSpan: TextSpan; +>triggerSpan : TextSpan +>TextSpan : TextSpan + } + interface SignatureHelpParameter { +>SignatureHelpParameter : SignatureHelpParameter + + name: string; +>name : string + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + isOptional: boolean; +>isOptional : boolean + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { +>SignatureHelpItem : SignatureHelpItem + + isVariadic: boolean; +>isVariadic : boolean + + prefixDisplayParts: SymbolDisplayPart[]; +>prefixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + suffixDisplayParts: SymbolDisplayPart[]; +>suffixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + separatorDisplayParts: SymbolDisplayPart[]; +>separatorDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + parameters: SignatureHelpParameter[]; +>parameters : SignatureHelpParameter[] +>SignatureHelpParameter : SignatureHelpParameter + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { +>SignatureHelpItems : SignatureHelpItems + + items: SignatureHelpItem[]; +>items : SignatureHelpItem[] +>SignatureHelpItem : SignatureHelpItem + + applicableSpan: TextSpan; +>applicableSpan : TextSpan +>TextSpan : TextSpan + + selectedItemIndex: number; +>selectedItemIndex : number + + argumentIndex: number; +>argumentIndex : number + + argumentCount: number; +>argumentCount : number + } + interface CompletionInfo { +>CompletionInfo : CompletionInfo + + isMemberCompletion: boolean; +>isMemberCompletion : boolean + + entries: CompletionEntry[]; +>entries : CompletionEntry[] +>CompletionEntry : CompletionEntry + } + interface CompletionEntry { +>CompletionEntry : CompletionEntry + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + } + interface CompletionEntryDetails { +>CompletionEntryDetails : CompletionEntryDetails + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface OutliningSpan { +>OutliningSpan : OutliningSpan + + /** The span of the document to actually collapse. */ + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; +>hintSpan : TextSpan +>TextSpan : TextSpan + + /** The text to display in the editor for the collapsed region. */ + bannerText: string; +>bannerText : string + + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; +>autoCollapse : boolean + } + interface EmitOutput { +>EmitOutput : EmitOutput + + outputFiles: OutputFile[]; +>outputFiles : OutputFile[] +>OutputFile : OutputFile + + emitOutputStatus: EmitReturnStatus; +>emitOutputStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + } + const enum OutputFileType { +>OutputFileType : OutputFileType + + JavaScript = 0, +>JavaScript : OutputFileType + + SourceMap = 1, +>SourceMap : OutputFileType + + Declaration = 2, +>Declaration : OutputFileType + } + interface OutputFile { +>OutputFile : OutputFile + + name: string; +>name : string + + writeByteOrderMark: boolean; +>writeByteOrderMark : boolean + + text: string; +>text : string + } + const enum EndOfLineState { +>EndOfLineState : EndOfLineState + + Start = 0, +>Start : EndOfLineState + + InMultiLineCommentTrivia = 1, +>InMultiLineCommentTrivia : EndOfLineState + + InSingleQuoteStringLiteral = 2, +>InSingleQuoteStringLiteral : EndOfLineState + + InDoubleQuoteStringLiteral = 3, +>InDoubleQuoteStringLiteral : EndOfLineState + } + enum TokenClass { +>TokenClass : TokenClass + + Punctuation = 0, +>Punctuation : TokenClass + + Keyword = 1, +>Keyword : TokenClass + + Operator = 2, +>Operator : TokenClass + + Comment = 3, +>Comment : TokenClass + + Whitespace = 4, +>Whitespace : TokenClass + + Identifier = 5, +>Identifier : TokenClass + + NumberLiteral = 6, +>NumberLiteral : TokenClass + + StringLiteral = 7, +>StringLiteral : TokenClass + + RegExpLiteral = 8, +>RegExpLiteral : TokenClass + } + interface ClassificationResult { +>ClassificationResult : ClassificationResult + + finalLexState: EndOfLineState; +>finalLexState : EndOfLineState +>EndOfLineState : EndOfLineState + + entries: ClassificationInfo[]; +>entries : ClassificationInfo[] +>ClassificationInfo : ClassificationInfo + } + interface ClassificationInfo { +>ClassificationInfo : ClassificationInfo + + length: number; +>length : number + + classification: TokenClass; +>classification : TokenClass +>TokenClass : TokenClass + } + interface Classifier { +>Classifier : Classifier + + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; +>getClassificationsForLine : (text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean) => ClassificationResult +>text : string +>lexState : EndOfLineState +>EndOfLineState : EndOfLineState +>classifyKeywordsInGenerics : boolean +>ClassificationResult : ClassificationResult + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { +>DocumentRegistry : DocumentRegistry + + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; +>acquireDocument : (filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string) => SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>SourceFile : SourceFile + + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateDocument : (sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; +>releaseDocument : (filename: string, compilationSettings: CompilerOptions) => void +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions + } + class ScriptElementKind { +>ScriptElementKind : ScriptElementKind + + static unknown: string; +>unknown : string + + static keyword: string; +>keyword : string + + static scriptElement: string; +>scriptElement : string + + static moduleElement: string; +>moduleElement : string + + static classElement: string; +>classElement : string + + static interfaceElement: string; +>interfaceElement : string + + static typeElement: string; +>typeElement : string + + static enumElement: string; +>enumElement : string + + static variableElement: string; +>variableElement : string + + static localVariableElement: string; +>localVariableElement : string + + static functionElement: string; +>functionElement : string + + static localFunctionElement: string; +>localFunctionElement : string + + static memberFunctionElement: string; +>memberFunctionElement : string + + static memberGetAccessorElement: string; +>memberGetAccessorElement : string + + static memberSetAccessorElement: string; +>memberSetAccessorElement : string + + static memberVariableElement: string; +>memberVariableElement : string + + static constructorImplementationElement: string; +>constructorImplementationElement : string + + static callSignatureElement: string; +>callSignatureElement : string + + static indexSignatureElement: string; +>indexSignatureElement : string + + static constructSignatureElement: string; +>constructSignatureElement : string + + static parameterElement: string; +>parameterElement : string + + static typeParameterElement: string; +>typeParameterElement : string + + static primitiveType: string; +>primitiveType : string + + static label: string; +>label : string + + static alias: string; +>alias : string + + static constElement: string; +>constElement : string + + static letElement: string; +>letElement : string + } + class ScriptElementKindModifier { +>ScriptElementKindModifier : ScriptElementKindModifier + + static none: string; +>none : string + + static publicMemberModifier: string; +>publicMemberModifier : string + + static privateMemberModifier: string; +>privateMemberModifier : string + + static protectedMemberModifier: string; +>protectedMemberModifier : string + + static exportedModifier: string; +>exportedModifier : string + + static ambientModifier: string; +>ambientModifier : string + + static staticModifier: string; +>staticModifier : string + } + class ClassificationTypeNames { +>ClassificationTypeNames : ClassificationTypeNames + + static comment: string; +>comment : string + + static identifier: string; +>identifier : string + + static keyword: string; +>keyword : string + + static numericLiteral: string; +>numericLiteral : string + + static operator: string; +>operator : string + + static stringLiteral: string; +>stringLiteral : string + + static whiteSpace: string; +>whiteSpace : string + + static text: string; +>text : string + + static punctuation: string; +>punctuation : string + + static className: string; +>className : string + + static enumName: string; +>enumName : string + + static interfaceName: string; +>interfaceName : string + + static moduleName: string; +>moduleName : string + + static typeParameterName: string; +>typeParameterName : string + + static typeAlias: string; +>typeAlias : string + } + interface DisplayPartsSymbolWriter extends SymbolWriter { +>DisplayPartsSymbolWriter : DisplayPartsSymbolWriter +>SymbolWriter : SymbolWriter + + displayParts(): SymbolDisplayPart[]; +>displayParts : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; +>displayPartsToString : (displayParts: SymbolDisplayPart[]) => string +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + function getDefaultCompilerOptions(): CompilerOptions; +>getDefaultCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + class OperationCanceledException { +>OperationCanceledException : OperationCanceledException + } + class CancellationTokenObject { +>CancellationTokenObject : CancellationTokenObject + + private cancellationToken; +>cancellationToken : any + + static None: CancellationTokenObject; +>None : CancellationTokenObject +>CancellationTokenObject : CancellationTokenObject + + constructor(cancellationToken: CancellationToken); +>cancellationToken : CancellationToken +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + + throwIfCancellationRequested(): void; +>throwIfCancellationRequested : () => void + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; +>createLanguageServiceSourceFile : (filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean) => SourceFile +>filename : string +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>scriptTarget : ScriptTarget +>ScriptTarget : ScriptTarget +>version : string +>setNodeParents : boolean +>SourceFile : SourceFile + + var disableIncrementalParsing: boolean; +>disableIncrementalParsing : boolean + + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + function createDocumentRegistry(): DocumentRegistry; +>createDocumentRegistry : () => DocumentRegistry +>DocumentRegistry : DocumentRegistry + + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; +>preProcessFile : (sourceText: string, readImportFiles?: boolean) => PreProcessedFileInfo +>sourceText : string +>readImportFiles : boolean +>PreProcessedFileInfo : PreProcessedFileInfo + + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; +>createLanguageService : (host: LanguageServiceHost, documentRegistry?: DocumentRegistry) => LanguageService +>host : LanguageServiceHost +>LanguageServiceHost : LanguageServiceHost +>documentRegistry : DocumentRegistry +>DocumentRegistry : DocumentRegistry +>LanguageService : LanguageService + + function createClassifier(): Classifier; +>createClassifier : () => Classifier +>Classifier : Classifier + + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +>getDefaultLibFilePath : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions +} + diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js new file mode 100644 index 00000000000..49fb3604028 --- /dev/null +++ b/tests/baselines/reference/APISample_linter.js @@ -0,0 +1,1994 @@ +//// [tests/cases/compiler/APISample_linter.ts] //// + +//// [APISample_linter.ts] + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; + +import ts = require("typescript"); + +export function delint(sourceFile: ts.SourceFile) { + delintNode(sourceFile); + + function delintNode(node: ts.Node) { + switch (node.kind) { + case ts.SyntaxKind.ForStatement: + case ts.SyntaxKind.ForInStatement: + case ts.SyntaxKind.WhileStatement: + case ts.SyntaxKind.DoStatement: + if ((node).statement.kind !== ts.SyntaxKind.Block) { + report(node, "A looping statement's contents should be wrapped in a block body."); + } + break; + case ts.SyntaxKind.IfStatement: + var ifStatement = (node); + if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { + report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); + } + if (ifStatement.elseStatement && + ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement) { + report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); + } + break; + + case ts.SyntaxKind.BinaryExpression: + var op = (node).operator; + + if (op === ts.SyntaxKind.EqualsEqualsToken || op === ts.SyntaxKind.ExclamationEqualsToken) { + report(node, "Use '===' and '!=='.") + } + break; + } + + ts.forEachChild(node, delintNode); + } + + function report(node: ts.Node, message: string) { + var lineChar = sourceFile.getLineAndCharacterFromPosition(node.getStart()); + console.log(`${sourceFile.filename} (${lineChar.line},${lineChar.character}): ${message}`) + } +} + +var filenames = process.argv.slice(2); +filenames.forEach(filename => { + // Parse a file + var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); + + // delint it + delint(sourceFile); +}); + +//// [typescript.d.ts] +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { + [index: string]: T; + } + interface TextRange { + pos: number; + end: number; + } + const enum SyntaxKind { + Unknown = 0, + EndOfFileToken = 1, + SingleLineCommentTrivia = 2, + MultiLineCommentTrivia = 3, + NewLineTrivia = 4, + WhitespaceTrivia = 5, + ConflictMarkerTrivia = 6, + NumericLiteral = 7, + StringLiteral = 8, + RegularExpressionLiteral = 9, + NoSubstitutionTemplateLiteral = 10, + TemplateHead = 11, + TemplateMiddle = 12, + TemplateTail = 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 = 63, + Identifier = 64, + BreakKeyword = 65, + CaseKeyword = 66, + CatchKeyword = 67, + ClassKeyword = 68, + ConstKeyword = 69, + ContinueKeyword = 70, + DebuggerKeyword = 71, + DefaultKeyword = 72, + DeleteKeyword = 73, + DoKeyword = 74, + ElseKeyword = 75, + EnumKeyword = 76, + ExportKeyword = 77, + ExtendsKeyword = 78, + FalseKeyword = 79, + FinallyKeyword = 80, + ForKeyword = 81, + FunctionKeyword = 82, + IfKeyword = 83, + ImportKeyword = 84, + InKeyword = 85, + InstanceOfKeyword = 86, + NewKeyword = 87, + NullKeyword = 88, + ReturnKeyword = 89, + SuperKeyword = 90, + SwitchKeyword = 91, + ThisKeyword = 92, + ThrowKeyword = 93, + TrueKeyword = 94, + TryKeyword = 95, + TypeOfKeyword = 96, + VarKeyword = 97, + VoidKeyword = 98, + WhileKeyword = 99, + WithKeyword = 100, + ImplementsKeyword = 101, + InterfaceKeyword = 102, + LetKeyword = 103, + PackageKeyword = 104, + PrivateKeyword = 105, + ProtectedKeyword = 106, + PublicKeyword = 107, + StaticKeyword = 108, + YieldKeyword = 109, + AnyKeyword = 110, + BooleanKeyword = 111, + ConstructorKeyword = 112, + DeclareKeyword = 113, + GetKeyword = 114, + ModuleKeyword = 115, + RequireKeyword = 116, + NumberKeyword = 117, + SetKeyword = 118, + StringKeyword = 119, + TypeKeyword = 120, + QualifiedName = 121, + ComputedPropertyName = 122, + TypeParameter = 123, + Parameter = 124, + PropertySignature = 125, + PropertyDeclaration = 126, + MethodSignature = 127, + MethodDeclaration = 128, + Constructor = 129, + GetAccessor = 130, + SetAccessor = 131, + CallSignature = 132, + ConstructSignature = 133, + IndexSignature = 134, + TypeReference = 135, + FunctionType = 136, + ConstructorType = 137, + TypeQuery = 138, + TypeLiteral = 139, + ArrayType = 140, + TupleType = 141, + UnionType = 142, + ParenthesizedType = 143, + ObjectBindingPattern = 144, + ArrayBindingPattern = 145, + BindingElement = 146, + ArrayLiteralExpression = 147, + ObjectLiteralExpression = 148, + PropertyAccessExpression = 149, + ElementAccessExpression = 150, + CallExpression = 151, + NewExpression = 152, + TaggedTemplateExpression = 153, + TypeAssertionExpression = 154, + ParenthesizedExpression = 155, + FunctionExpression = 156, + ArrowFunction = 157, + DeleteExpression = 158, + TypeOfExpression = 159, + VoidExpression = 160, + PrefixUnaryExpression = 161, + PostfixUnaryExpression = 162, + BinaryExpression = 163, + ConditionalExpression = 164, + TemplateExpression = 165, + YieldExpression = 166, + SpreadElementExpression = 167, + OmittedExpression = 168, + TemplateSpan = 169, + Block = 170, + VariableStatement = 171, + EmptyStatement = 172, + ExpressionStatement = 173, + IfStatement = 174, + DoStatement = 175, + WhileStatement = 176, + ForStatement = 177, + ForInStatement = 178, + ContinueStatement = 179, + BreakStatement = 180, + ReturnStatement = 181, + WithStatement = 182, + SwitchStatement = 183, + LabeledStatement = 184, + ThrowStatement = 185, + TryStatement = 186, + DebuggerStatement = 187, + VariableDeclaration = 188, + VariableDeclarationList = 189, + FunctionDeclaration = 190, + ClassDeclaration = 191, + InterfaceDeclaration = 192, + TypeAliasDeclaration = 193, + EnumDeclaration = 194, + ModuleDeclaration = 195, + ModuleBlock = 196, + ImportDeclaration = 197, + ExportAssignment = 198, + ExternalModuleReference = 199, + CaseClause = 200, + DefaultClause = 201, + HeritageClause = 202, + CatchClause = 203, + PropertyAssignment = 204, + ShorthandPropertyAssignment = 205, + EnumMember = 206, + SourceFile = 207, + SyntaxList = 208, + Count = 209, + FirstAssignment = 52, + LastAssignment = 63, + FirstReservedWord = 65, + LastReservedWord = 100, + FirstKeyword = 65, + LastKeyword = 120, + FirstFutureReservedWord = 101, + LastFutureReservedWord = 109, + FirstTypeNode = 135, + LastTypeNode = 143, + FirstPunctuation = 14, + LastPunctuation = 63, + FirstToken = 0, + LastToken = 120, + FirstTriviaToken = 2, + LastTriviaToken = 6, + FirstLiteralToken = 7, + LastLiteralToken = 10, + FirstTemplateToken = 10, + LastTemplateToken = 13, + FirstBinaryOperator = 24, + LastBinaryOperator = 63, + FirstNode = 121, + } + const enum NodeFlags { + Export = 1, + Ambient = 2, + Public = 16, + Private = 32, + Protected = 64, + Static = 128, + MultiLine = 256, + Synthetic = 512, + DeclarationFile = 1024, + Let = 2048, + Const = 4096, + OctalLiteral = 8192, + Modifier = 243, + AccessibilityModifier = 112, + BlockScoped = 6144, + } + const enum ParserContextFlags { + StrictMode = 1, + DisallowIn = 2, + Yield = 4, + GeneratorParameter = 8, + ThisNodeHasError = 16, + ParserGeneratedFlags = 31, + ThisNodeOrAnySubNodesHasError = 32, + HasAggregatedChildData = 64, + } + interface Node extends TextRange { + kind: SyntaxKind; + flags: NodeFlags; + parserContextFlags?: ParserContextFlags; + id?: number; + parent?: Node; + symbol?: Symbol; + locals?: SymbolTable; + nextContainer?: Node; + localSymbol?: Symbol; + modifiers?: ModifiersArray; + } + interface NodeArray extends Array, TextRange { + hasTrailingComma?: boolean; + } + interface ModifiersArray extends NodeArray { + flags: number; + } + interface Identifier extends PrimaryExpression { + text: string; + } + interface QualifiedName extends Node { + left: EntityName; + right: Identifier; + } + type EntityName = Identifier | QualifiedName; + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; + interface Declaration extends Node { + _declarationBrand: any; + name?: DeclarationName; + } + interface ComputedPropertyName extends Node { + expression: Expression; + } + interface TypeParameterDeclaration extends Declaration { + name: Identifier; + constraint?: TypeNode; + expression?: Expression; + } + interface SignatureDeclaration extends Declaration { + typeParameters?: NodeArray; + parameters: NodeArray; + type?: TypeNode; + } + interface VariableDeclaration extends Declaration { + parent?: VariableDeclarationList; + name: Identifier | BindingPattern; + type?: TypeNode; + initializer?: Expression; + } + interface VariableDeclarationList extends Node { + declarations: NodeArray; + } + interface ParameterDeclaration extends Declaration { + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingElement extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + initializer?: Expression; + } + interface PropertyDeclaration extends Declaration, ClassElement { + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface ObjectLiteralElement extends Declaration { + _objectLiteralBrandBrand: any; + } + interface PropertyAssignment extends ObjectLiteralElement { + _propertyAssignmentBrand: any; + name: DeclarationName; + questionToken?: Node; + initializer: Expression; + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { + name: Identifier; + questionToken?: Node; + } + interface VariableLikeDeclaration extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingPattern extends Node { + elements: NodeArray; + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { + _functionLikeDeclarationBrand: any; + asteriskToken?: Node; + questionToken?: Node; + body?: Block | Expression; + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { + name: Identifier; + body?: Block; + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + body?: Block; + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { + body?: Block; + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + _accessorDeclarationBrand: any; + body: Block; + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { + _indexSignatureDeclarationBrand: any; + } + interface TypeNode extends Node { + _typeNodeBrand: any; + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { + _functionOrConstructorTypeNodeBrand: any; + } + interface TypeReferenceNode extends TypeNode { + typeName: EntityName; + typeArguments?: NodeArray; + } + interface TypeQueryNode extends TypeNode { + exprName: EntityName; + } + interface TypeLiteralNode extends TypeNode, Declaration { + members: NodeArray; + } + interface ArrayTypeNode extends TypeNode { + elementType: TypeNode; + } + interface TupleTypeNode extends TypeNode { + elementTypes: NodeArray; + } + interface UnionTypeNode extends TypeNode { + types: NodeArray; + } + interface ParenthesizedTypeNode extends TypeNode { + type: TypeNode; + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { + } + interface Expression extends Node { + _expressionBrand: any; + contextualType?: Type; + } + interface UnaryExpression extends Expression { + _unaryExpressionBrand: any; + } + interface PrefixUnaryExpression extends UnaryExpression { + operator: SyntaxKind; + operand: UnaryExpression; + } + interface PostfixUnaryExpression extends PostfixExpression { + operand: LeftHandSideExpression; + operator: SyntaxKind; + } + interface PostfixExpression extends UnaryExpression { + _postfixExpressionBrand: any; + } + interface LeftHandSideExpression extends PostfixExpression { + _leftHandSideExpressionBrand: any; + } + interface MemberExpression extends LeftHandSideExpression { + _memberExpressionBrand: any; + } + interface PrimaryExpression extends MemberExpression { + _primaryExpressionBrand: any; + } + interface DeleteExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface TypeOfExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface VoidExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface YieldExpression extends Expression { + asteriskToken?: Node; + expression: Expression; + } + interface BinaryExpression extends Expression { + left: Expression; + operator: SyntaxKind; + right: Expression; + } + interface ConditionalExpression extends Expression { + condition: Expression; + whenTrue: Expression; + whenFalse: Expression; + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { + name?: Identifier; + body: Block | Expression; + } + interface LiteralExpression extends PrimaryExpression { + text: string; + isUnterminated?: boolean; + } + interface StringLiteralExpression extends LiteralExpression { + _stringLiteralExpressionBrand: any; + } + interface TemplateExpression extends PrimaryExpression { + head: LiteralExpression; + templateSpans: NodeArray; + } + interface TemplateSpan extends Node { + expression: Expression; + literal: LiteralExpression; + } + interface ParenthesizedExpression extends PrimaryExpression { + expression: Expression; + } + interface ArrayLiteralExpression extends PrimaryExpression { + elements: NodeArray; + } + interface SpreadElementExpression extends Expression { + expression: Expression; + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { + properties: NodeArray; + } + interface PropertyAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + name: Identifier; + } + interface ElementAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + argumentExpression?: Expression; + } + interface CallExpression extends LeftHandSideExpression { + expression: LeftHandSideExpression; + typeArguments?: NodeArray; + arguments: NodeArray; + } + interface NewExpression extends CallExpression, PrimaryExpression { + } + interface TaggedTemplateExpression extends MemberExpression { + tag: LeftHandSideExpression; + template: LiteralExpression | TemplateExpression; + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; + interface TypeAssertion extends UnaryExpression { + type: TypeNode; + expression: UnaryExpression; + } + interface Statement extends Node, ModuleElement { + _statementBrand: any; + } + interface Block extends Statement { + statements: NodeArray; + } + interface VariableStatement extends Statement { + declarationList: VariableDeclarationList; + } + interface ExpressionStatement extends Statement { + expression: Expression; + } + interface IfStatement extends Statement { + expression: Expression; + thenStatement: Statement; + elseStatement?: Statement; + } + interface IterationStatement extends Statement { + statement: Statement; + } + interface DoStatement extends IterationStatement { + expression: Expression; + } + interface WhileStatement extends IterationStatement { + expression: Expression; + } + interface ForStatement extends IterationStatement { + initializer?: VariableDeclarationList | Expression; + condition?: Expression; + iterator?: Expression; + } + interface ForInStatement extends IterationStatement { + initializer: VariableDeclarationList | Expression; + expression: Expression; + } + interface BreakOrContinueStatement extends Statement { + label?: Identifier; + } + interface ReturnStatement extends Statement { + expression?: Expression; + } + interface WithStatement extends Statement { + expression: Expression; + statement: Statement; + } + interface SwitchStatement extends Statement { + expression: Expression; + clauses: NodeArray; + } + interface CaseClause extends Node { + expression?: Expression; + statements: NodeArray; + } + interface DefaultClause extends Node { + statements: NodeArray; + } + type CaseOrDefaultClause = CaseClause | DefaultClause; + interface LabeledStatement extends Statement { + label: Identifier; + statement: Statement; + } + interface ThrowStatement extends Statement { + expression: Expression; + } + interface TryStatement extends Statement { + tryBlock: Block; + catchClause?: CatchClause; + finallyBlock?: Block; + } + interface CatchClause extends Declaration { + name: Identifier; + type?: TypeNode; + block: Block; + } + interface ModuleElement extends Node { + _moduleElementBrand: any; + } + interface ClassDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface ClassElement extends Declaration { + _classElementBrand: any; + } + interface InterfaceDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface HeritageClause extends Node { + token: SyntaxKind; + types?: NodeArray; + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { + name: Identifier; + type: TypeNode; + } + interface EnumMember extends Declaration { + name: DeclarationName; + initializer?: Expression; + } + interface EnumDeclaration extends Declaration, ModuleElement { + name: Identifier; + members: NodeArray; + } + interface ModuleDeclaration extends Declaration, ModuleElement { + name: Identifier | LiteralExpression; + body: ModuleBlock | ModuleDeclaration; + } + interface ModuleBlock extends Node, ModuleElement { + statements: NodeArray; + } + interface ImportDeclaration extends Declaration, ModuleElement { + name: Identifier; + moduleReference: EntityName | ExternalModuleReference; + } + interface ExternalModuleReference extends Node { + expression?: Expression; + } + interface ExportAssignment extends Statement, ModuleElement { + exportName: Identifier; + } + interface FileReference extends TextRange { + filename: string; + } + interface CommentRange extends TextRange { + hasTrailingNewLine?: boolean; + } + interface SourceFile extends Declaration { + statements: NodeArray; + endOfFileToken: Node; + filename: string; + text: string; + getLineAndCharacterFromPosition(position: number): LineAndCharacter; + getPositionFromLineAndCharacter(line: number, character: number): number; + getLineStarts(): number[]; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; + amdDependencies: string[]; + amdModuleName: string; + referencedFiles: FileReference[]; + referenceDiagnostics: Diagnostic[]; + parseDiagnostics: Diagnostic[]; + getSyntacticDiagnostics(): Diagnostic[]; + semanticDiagnostics: Diagnostic[]; + hasNoDefaultLib: boolean; + externalModuleIndicator: Node; + nodeCount: number; + identifierCount: number; + symbolCount: number; + languageVersion: ScriptTarget; + identifiers: Map; + } + interface ScriptReferenceHost { + getCompilerOptions(): CompilerOptions; + getSourceFile(filename: string): SourceFile; + getCurrentDirectory(): string; + } + interface Program extends ScriptReferenceHost { + getSourceFiles(): SourceFile[]; + getCompilerHost(): CompilerHost; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; + getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getCommonSourceDirectory(): string; + emitFiles(targetSourceFile?: SourceFile): EmitResult; + isEmitBlocked(sourceFile?: SourceFile): boolean; + } + interface SourceMapSpan { + emittedLine: number; + emittedColumn: number; + sourceLine: number; + sourceColumn: number; + nameIndex?: number; + sourceIndex: number; + } + interface SourceMapData { + sourceMapFilePath: string; + jsSourceMappingURL: string; + sourceMapFile: string; + sourceMapSourceRoot: string; + sourceMapSources: string[]; + inputSourceFileNames: string[]; + sourceMapNames?: string[]; + sourceMapMappings: string; + sourceMapDecodedMappings: SourceMapSpan[]; + } + enum EmitReturnStatus { + Succeeded = 0, + AllOutputGenerationSkipped = 1, + JSGeneratedWithSemanticErrors = 2, + DeclarationGenerationSkipped = 3, + EmitErrorsEncountered = 4, + CompilerOptionsErrors = 5, + } + interface EmitResult { + emitResultStatus: EmitReturnStatus; + diagnostics: Diagnostic[]; + sourceMaps: SourceMapData[]; + } + interface TypeCheckerHost { + getCompilerOptions(): CompilerOptions; + getCompilerHost(): CompilerHost; + getSourceFiles(): SourceFile[]; + getSourceFile(filename: string): SourceFile; + } + interface TypeChecker { + getEmitResolver(): EmitResolver; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getNodeCount(): number; + getIdentifierCount(): number; + getSymbolCount(): number; + getTypeCount(): number; + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; + getDeclaredTypeOfSymbol(symbol: Symbol): Type; + getPropertiesOfType(type: Type): Symbol[]; + getPropertyOfType(type: Type, propertyName: string): Symbol; + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; + getIndexTypeOfType(type: Type, kind: IndexKind): Type; + getReturnTypeOfSignature(signature: Signature): Type; + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; + getSymbolAtLocation(node: Node): Symbol; + getShorthandAssignmentValueSymbol(location: Node): Symbol; + getTypeAtLocation(node: Node): Type; + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; + getSymbolDisplayBuilder(): SymbolDisplayBuilder; + getFullyQualifiedName(symbol: Symbol): string; + getAugmentedPropertiesOfType(type: Type): Symbol[]; + getRootSymbols(symbol: Symbol): Symbol[]; + getContextualType(node: Expression): Type; + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + isUndefinedSymbol(symbol: Symbol): boolean; + isArgumentsSymbol(symbol: Symbol): boolean; + getEnumMemberValue(node: EnumMember): number; + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; + getAliasedSymbol(symbol: Symbol): Symbol; + } + interface SymbolDisplayBuilder { + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + } + interface SymbolWriter { + writeKeyword(text: string): void; + writeOperator(text: string): void; + writePunctuation(text: string): void; + writeSpace(text: string): void; + writeStringLiteral(text: string): void; + writeParameter(text: string): void; + writeSymbol(text: string, symbol: Symbol): void; + writeLine(): void; + increaseIndent(): void; + decreaseIndent(): void; + clear(): void; + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; + } + const enum TypeFormatFlags { + None = 0, + WriteArrayAsGenericType = 1, + UseTypeOfFunction = 2, + NoTruncation = 4, + WriteArrowStyleSignature = 8, + WriteOwnNameForAnyLike = 16, + WriteTypeArgumentsOfSignature = 32, + InElementType = 64, + } + const enum SymbolFormatFlags { + None = 0, + WriteTypeParametersOrArguments = 1, + UseOnlyExternalAliasing = 2, + } + const enum SymbolAccessibility { + Accessible = 0, + NotAccessible = 1, + CannotBeNamed = 2, + } + interface SymbolVisibilityResult { + accessibility: SymbolAccessibility; + aliasesToMakeVisible?: ImportDeclaration[]; + errorSymbolName?: string; + errorNode?: Node; + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { + errorModuleName?: string; + } + interface EmitResolver { + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; + getExpressionNamePrefix(node: Identifier): string; + getExportAssignmentName(node: SourceFile): string; + isReferencedImportDeclaration(node: ImportDeclaration): boolean; + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; + getNodeCheckFlags(node: Node): NodeCheckFlags; + getEnumMemberValue(node: EnumMember): number; + hasSemanticErrors(sourceFile?: SourceFile): boolean; + isDeclarationVisible(node: Declaration): boolean; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, 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; + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + isUnknownIdentifier(location: Node, name: string): boolean; + } + const enum SymbolFlags { + FunctionScopedVariable = 1, + BlockScopedVariable = 2, + Property = 4, + EnumMember = 8, + Function = 16, + Class = 32, + Interface = 64, + ConstEnum = 128, + RegularEnum = 256, + ValueModule = 512, + NamespaceModule = 1024, + TypeLiteral = 2048, + ObjectLiteral = 4096, + Method = 8192, + Constructor = 16384, + GetAccessor = 32768, + SetAccessor = 65536, + Signature = 131072, + TypeParameter = 262144, + TypeAlias = 524288, + ExportValue = 1048576, + ExportType = 2097152, + ExportNamespace = 4194304, + Import = 8388608, + Instantiated = 16777216, + Merged = 33554432, + Transient = 67108864, + Prototype = 134217728, + UnionProperty = 268435456, + Optional = 536870912, + Enum = 384, + Variable = 3, + Value = 107455, + Type = 793056, + Namespace = 1536, + Module = 1536, + Accessor = 98304, + FunctionScopedVariableExcludes = 107454, + BlockScopedVariableExcludes = 107455, + ParameterExcludes = 107455, + PropertyExcludes = 107455, + EnumMemberExcludes = 107455, + FunctionExcludes = 106927, + ClassExcludes = 899583, + InterfaceExcludes = 792992, + RegularEnumExcludes = 899327, + ConstEnumExcludes = 899967, + ValueModuleExcludes = 106639, + NamespaceModuleExcludes = 0, + MethodExcludes = 99263, + GetAccessorExcludes = 41919, + SetAccessorExcludes = 74687, + TypeParameterExcludes = 530912, + TypeAliasExcludes = 793056, + ImportExcludes = 8388608, + ModuleMember = 8914931, + ExportHasLocal = 944, + HasLocals = 255504, + HasExports = 1952, + HasMembers = 6240, + IsContainer = 262128, + PropertyOrAccessor = 98308, + Export = 7340032, + } + interface Symbol { + flags: SymbolFlags; + name: string; + id?: number; + mergeId?: number; + declarations?: Declaration[]; + parent?: Symbol; + members?: SymbolTable; + exports?: SymbolTable; + exportSymbol?: Symbol; + valueDeclaration?: Declaration; + constEnumOnlyModule?: boolean; + } + interface SymbolLinks { + target?: Symbol; + type?: Type; + declaredType?: Type; + mapper?: TypeMapper; + referenced?: boolean; + exportAssignSymbol?: Symbol; + unionType?: UnionType; + } + interface TransientSymbol extends Symbol, SymbolLinks { + } + interface SymbolTable { + [index: string]: Symbol; + } + const enum NodeCheckFlags { + TypeChecked = 1, + LexicalThis = 2, + CaptureThis = 4, + EmitExtends = 8, + SuperInstance = 16, + SuperStatic = 32, + ContextChecked = 64, + EnumValuesComputed = 128, + } + interface NodeLinks { + resolvedType?: Type; + resolvedSignature?: Signature; + resolvedSymbol?: Symbol; + flags?: NodeCheckFlags; + enumMemberValue?: number; + isIllegalTypeReferenceInConstraint?: boolean; + isVisible?: boolean; + localModuleName?: string; + assignmentChecks?: Map; + hasReportedStatementInAmbientContext?: boolean; + importOnRightSide?: Symbol; + } + const enum TypeFlags { + Any = 1, + String = 2, + Number = 4, + Boolean = 8, + Void = 16, + Undefined = 32, + Null = 64, + Enum = 128, + StringLiteral = 256, + TypeParameter = 512, + Class = 1024, + Interface = 2048, + Reference = 4096, + Tuple = 8192, + Union = 16384, + Anonymous = 32768, + FromSignature = 65536, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, + Intrinsic = 127, + Primitive = 510, + StringLike = 258, + NumberLike = 132, + ObjectType = 48128, + RequiresWidening = 786432, + } + interface Type { + flags: TypeFlags; + id: number; + symbol?: Symbol; + } + interface IntrinsicType extends Type { + intrinsicName: string; + } + interface StringLiteralType extends Type { + text: string; + } + interface ObjectType extends Type { + } + interface InterfaceType extends ObjectType { + typeParameters: TypeParameter[]; + baseTypes: ObjectType[]; + declaredProperties: Symbol[]; + declaredCallSignatures: Signature[]; + declaredConstructSignatures: Signature[]; + declaredStringIndexType: Type; + declaredNumberIndexType: Type; + } + interface TypeReference extends ObjectType { + target: GenericType; + typeArguments: Type[]; + } + interface GenericType extends InterfaceType, TypeReference { + instantiations: Map; + } + interface TupleType extends ObjectType { + elementTypes: Type[]; + baseArrayType: TypeReference; + } + interface UnionType extends Type { + types: Type[]; + resolvedProperties: SymbolTable; + } + interface ResolvedType extends ObjectType, UnionType { + members: SymbolTable; + properties: Symbol[]; + callSignatures: Signature[]; + constructSignatures: Signature[]; + stringIndexType: Type; + numberIndexType: Type; + } + interface TypeParameter extends Type { + constraint: Type; + target?: TypeParameter; + mapper?: TypeMapper; + } + const enum SignatureKind { + Call = 0, + Construct = 1, + } + interface Signature { + declaration: SignatureDeclaration; + typeParameters: TypeParameter[]; + parameters: Symbol[]; + resolvedReturnType: Type; + minArgumentCount: number; + hasRestParameter: boolean; + hasStringLiterals: boolean; + target?: Signature; + mapper?: TypeMapper; + unionSignatures?: Signature[]; + erasedSignatureCache?: Signature; + isolatedSignatureType?: ObjectType; + } + const enum IndexKind { + String = 0, + Number = 1, + } + interface TypeMapper { + (t: Type): Type; + } + interface TypeInferences { + primary: Type[]; + secondary: Type[]; + } + interface InferenceContext { + typeParameters: TypeParameter[]; + inferUnionTypes: boolean; + inferences: TypeInferences[]; + inferredTypes: Type[]; + failedTypeParameterIndex?: number; + } + interface DiagnosticMessage { + key: string; + category: DiagnosticCategory; + code: number; + isEarly?: boolean; + } + interface DiagnosticMessageChain { + messageText: string; + category: DiagnosticCategory; + code: number; + next?: DiagnosticMessageChain; + } + interface Diagnostic { + file: SourceFile; + start: number; + length: number; + messageText: string; + category: DiagnosticCategory; + code: number; + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; + } + enum DiagnosticCategory { + Warning = 0, + Error = 1, + Message = 2, + } + interface CompilerOptions { + allowNonTsExtensions?: boolean; + charset?: string; + codepage?: number; + declaration?: boolean; + diagnostics?: boolean; + emitBOM?: boolean; + help?: boolean; + listFiles?: boolean; + locale?: string; + mapRoot?: string; + module?: ModuleKind; + noEmit?: boolean; + noEmitOnError?: boolean; + noErrorTruncation?: boolean; + noImplicitAny?: boolean; + noLib?: boolean; + noLibCheck?: boolean; + noResolve?: boolean; + out?: string; + outDir?: string; + preserveConstEnums?: boolean; + project?: string; + removeComments?: boolean; + sourceMap?: boolean; + sourceRoot?: string; + suppressImplicitAnyIndexErrors?: boolean; + target?: ScriptTarget; + version?: boolean; + watch?: boolean; + [option: string]: string | number | boolean; + } + const enum ModuleKind { + None = 0, + CommonJS = 1, + AMD = 2, + } + interface LineAndCharacter { + line: number; + character: number; + } + const enum ScriptTarget { + ES3 = 0, + ES5 = 1, + ES6 = 2, + Latest = 2, + } + interface ParsedCommandLine { + options: CompilerOptions; + filenames: string[]; + errors: Diagnostic[]; + } + interface CommandLineOption { + name: string; + type: string | Map; + isFilePath?: boolean; + shortName?: string; + description?: DiagnosticMessage; + paramType?: DiagnosticMessage; + error?: DiagnosticMessage; + } + const enum CharacterCodes { + nullCharacter = 0, + maxAsciiCharacter = 127, + lineFeed = 10, + carriageReturn = 13, + lineSeparator = 8232, + paragraphSeparator = 8233, + nextLine = 133, + space = 32, + nonBreakingSpace = 160, + enQuad = 8192, + emQuad = 8193, + enSpace = 8194, + emSpace = 8195, + threePerEmSpace = 8196, + fourPerEmSpace = 8197, + sixPerEmSpace = 8198, + figureSpace = 8199, + punctuationSpace = 8200, + thinSpace = 8201, + hairSpace = 8202, + zeroWidthSpace = 8203, + narrowNoBreakSpace = 8239, + ideographicSpace = 12288, + mathematicalSpace = 8287, + ogham = 5760, + _ = 95, + $ = 36, + _0 = 48, + _1 = 49, + _2 = 50, + _3 = 51, + _4 = 52, + _5 = 53, + _6 = 54, + _7 = 55, + _8 = 56, + _9 = 57, + a = 97, + b = 98, + c = 99, + d = 100, + e = 101, + f = 102, + g = 103, + h = 104, + i = 105, + j = 106, + k = 107, + l = 108, + m = 109, + n = 110, + o = 111, + p = 112, + q = 113, + r = 114, + s = 115, + t = 116, + u = 117, + v = 118, + w = 119, + x = 120, + y = 121, + z = 122, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + ampersand = 38, + asterisk = 42, + at = 64, + backslash = 92, + backtick = 96, + bar = 124, + caret = 94, + closeBrace = 125, + closeBracket = 93, + closeParen = 41, + colon = 58, + comma = 44, + dot = 46, + doubleQuote = 34, + equals = 61, + exclamation = 33, + greaterThan = 62, + lessThan = 60, + minus = 45, + openBrace = 123, + openBracket = 91, + openParen = 40, + percent = 37, + plus = 43, + question = 63, + semicolon = 59, + singleQuote = 39, + slash = 47, + tilde = 126, + backspace = 8, + formFeed = 12, + byteOrderMark = 65279, + tab = 9, + verticalTab = 11, + } + interface CancellationToken { + isCancellationRequested(): boolean; + } + interface CompilerHost { + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFilename(options: CompilerOptions): string; + getCancellationToken?(): CancellationToken; + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + getCurrentDirectory(): string; + getCanonicalFileName(fileName: string): string; + useCaseSensitiveFileNames(): boolean; + getNewLine(): string; + } + interface TextSpan { + start: number; + length: number; + } + interface TextChangeRange { + span: TextSpan; + newLength: number; + } +} +declare module "typescript" { + interface ErrorCallback { + (message: DiagnosticMessage, length: number): void; + } + interface Scanner { + getStartPos(): number; + getToken(): SyntaxKind; + getTextPos(): number; + getTokenPos(): number; + getTokenText(): string; + getTokenValue(): string; + hasPrecedingLineBreak(): boolean; + isIdentifier(): boolean; + isReservedWord(): boolean; + isUnterminated(): boolean; + reScanGreaterToken(): SyntaxKind; + reScanSlashToken(): SyntaxKind; + reScanTemplateToken(): SyntaxKind; + scan(): SyntaxKind; + setText(text: string): void; + setTextPos(textPos: number): void; + lookAhead(callback: () => T): T; + tryScan(callback: () => T): T; + } + function tokenToString(t: SyntaxKind): string; + function computeLineStarts(text: string): number[]; + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { + line: number; + character: number; + }; + function positionToLineAndCharacter(text: string, pos: number): { + line: number; + character: number; + }; + function isWhiteSpace(ch: number): boolean; + function isLineBreak(ch: number): boolean; + function isOctalDigit(ch: number): boolean; + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; + function createNode(kind: SyntaxKind): Node; + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; + function modifierToFlag(token: SyntaxKind): NodeFlags; + function isEvalOrArgumentsIdentifier(node: Node): boolean; + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function isLeftHandSideExpression(expr: Expression): boolean; + function isAssignmentOperator(token: SyntaxKind): boolean; +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +} +declare module "typescript" { + var servicesVersion: string; + interface Node { + getSourceFile(): SourceFile; + getChildCount(sourceFile?: SourceFile): number; + getChildAt(index: number, sourceFile?: SourceFile): Node; + getChildren(sourceFile?: SourceFile): Node[]; + getStart(sourceFile?: SourceFile): number; + getFullStart(): number; + getEnd(): number; + getWidth(sourceFile?: SourceFile): number; + getFullWidth(): number; + getLeadingTriviaWidth(sourceFile?: SourceFile): number; + getFullText(sourceFile?: SourceFile): string; + getText(sourceFile?: SourceFile): string; + getFirstToken(sourceFile?: SourceFile): Node; + getLastToken(sourceFile?: SourceFile): Node; + } + interface Symbol { + getFlags(): SymbolFlags; + getName(): string; + getDeclarations(): Declaration[]; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface Type { + getFlags(): TypeFlags; + getSymbol(): Symbol; + getProperties(): Symbol[]; + getProperty(propertyName: string): Symbol; + getApparentProperties(): Symbol[]; + getCallSignatures(): Signature[]; + getConstructSignatures(): Signature[]; + getStringIndexType(): Type; + getNumberIndexType(): Type; + } + interface Signature { + getDeclaration(): SignatureDeclaration; + getTypeParameters(): Type[]; + getParameters(): Symbol[]; + getReturnType(): Type; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface SourceFile { + version: string; + scriptSnapshot: IScriptSnapshot; + nameTable: Map; + getNamedDeclarations(): Declaration[]; + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; + /** Gets the length of this script snapshot. */ + getLength(): number; + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; + } + module ScriptSnapshot { + function fromString(text: string): IScriptSnapshot; + } + interface PreProcessedFileInfo { + referencedFiles: FileReference[]; + importedFiles: FileReference[]; + isLibFile: boolean; + } + interface LanguageServiceHost { + getCompilationSettings(): CompilerOptions; + getNewLine?(): string; + getScriptFileNames(): string[]; + getScriptVersion(fileName: string): string; + getScriptSnapshot(fileName: string): IScriptSnapshot; + getLocalizedDiagnosticMessages?(): any; + getCancellationToken?(): CancellationToken; + getCurrentDirectory(): string; + getDefaultLibFilename(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; + } + interface LanguageService { + cleanupSemanticCache(): void; + getSyntacticDiagnostics(fileName: string): Diagnostic[]; + getSemanticDiagnostics(fileName: string): Diagnostic[]; + getCompilerOptionsDiagnostics(): Diagnostic[]; + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; + getRenameInfo(fileName: string, position: number): RenameInfo; + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getNavigateToItems(searchValue: string): NavigateToItem[]; + getNavigationBarItems(fileName: string): NavigationBarItem[]; + getOutliningSpans(fileName: string): OutliningSpan[]; + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; + getEmitOutput(fileName: string): EmitOutput; + getProgram(): Program; + getSourceFile(filename: string): SourceFile; + dispose(): void; + } + interface ClassifiedSpan { + textSpan: TextSpan; + classificationType: string; + } + interface NavigationBarItem { + text: string; + kind: string; + kindModifiers: string; + spans: TextSpan[]; + childItems: NavigationBarItem[]; + indent: number; + bolded: boolean; + grayed: boolean; + } + interface TodoCommentDescriptor { + text: string; + priority: number; + } + interface TodoComment { + descriptor: TodoCommentDescriptor; + message: string; + position: number; + } + class TextChange { + span: TextSpan; + newText: string; + } + interface RenameLocation { + textSpan: TextSpan; + fileName: string; + } + interface ReferenceEntry { + textSpan: TextSpan; + fileName: string; + isWriteAccess: boolean; + } + interface NavigateToItem { + name: string; + kind: string; + kindModifiers: string; + matchKind: string; + fileName: string; + textSpan: TextSpan; + containerName: string; + containerKind: string; + } + interface EditorOptions { + IndentSize: number; + TabSize: number; + NewLineCharacter: string; + ConvertTabsToSpaces: boolean; + } + interface FormatCodeOptions extends EditorOptions { + InsertSpaceAfterCommaDelimiter: boolean; + InsertSpaceAfterSemicolonInForStatements: boolean; + InsertSpaceBeforeAndAfterBinaryOperators: boolean; + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; + PlaceOpenBraceOnNewLineForFunctions: boolean; + PlaceOpenBraceOnNewLineForControlBlocks: boolean; + } + interface DefinitionInfo { + fileName: string; + textSpan: TextSpan; + kind: string; + name: string; + containerKind: string; + containerName: string; + } + enum SymbolDisplayPartKind { + aliasName = 0, + className = 1, + enumName = 2, + fieldName = 3, + interfaceName = 4, + keyword = 5, + lineBreak = 6, + numericLiteral = 7, + stringLiteral = 8, + localName = 9, + methodName = 10, + moduleName = 11, + operator = 12, + parameterName = 13, + propertyName = 14, + punctuation = 15, + space = 16, + text = 17, + typeParameterName = 18, + enumMemberName = 19, + functionName = 20, + regularExpressionLiteral = 21, + } + interface SymbolDisplayPart { + text: string; + kind: string; + } + interface QuickInfo { + kind: string; + kindModifiers: string; + textSpan: TextSpan; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface RenameInfo { + canRename: boolean; + localizedErrorMessage: string; + displayName: string; + fullDisplayName: string; + kind: string; + kindModifiers: string; + triggerSpan: TextSpan; + } + interface SignatureHelpParameter { + name: string; + documentation: SymbolDisplayPart[]; + displayParts: SymbolDisplayPart[]; + isOptional: boolean; + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { + isVariadic: boolean; + prefixDisplayParts: SymbolDisplayPart[]; + suffixDisplayParts: SymbolDisplayPart[]; + separatorDisplayParts: SymbolDisplayPart[]; + parameters: SignatureHelpParameter[]; + documentation: SymbolDisplayPart[]; + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { + items: SignatureHelpItem[]; + applicableSpan: TextSpan; + selectedItemIndex: number; + argumentIndex: number; + argumentCount: number; + } + interface CompletionInfo { + isMemberCompletion: boolean; + entries: CompletionEntry[]; + } + interface CompletionEntry { + name: string; + kind: string; + kindModifiers: string; + } + interface CompletionEntryDetails { + name: string; + kind: string; + kindModifiers: string; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface OutliningSpan { + /** The span of the document to actually collapse. */ + textSpan: TextSpan; + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; + /** The text to display in the editor for the collapsed region. */ + bannerText: string; + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; + } + interface EmitOutput { + outputFiles: OutputFile[]; + emitOutputStatus: EmitReturnStatus; + } + const enum OutputFileType { + JavaScript = 0, + SourceMap = 1, + Declaration = 2, + } + interface OutputFile { + name: string; + writeByteOrderMark: boolean; + text: string; + } + const enum EndOfLineState { + Start = 0, + InMultiLineCommentTrivia = 1, + InSingleQuoteStringLiteral = 2, + InDoubleQuoteStringLiteral = 3, + } + enum TokenClass { + Punctuation = 0, + Keyword = 1, + Operator = 2, + Comment = 3, + Whitespace = 4, + Identifier = 5, + NumberLiteral = 6, + StringLiteral = 7, + RegExpLiteral = 8, + } + interface ClassificationResult { + finalLexState: EndOfLineState; + entries: ClassificationInfo[]; + } + interface ClassificationInfo { + length: number; + classification: TokenClass; + } + interface Classifier { + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + } + class ScriptElementKind { + static unknown: string; + static keyword: string; + static scriptElement: string; + static moduleElement: string; + static classElement: string; + static interfaceElement: string; + static typeElement: string; + static enumElement: string; + static variableElement: string; + static localVariableElement: string; + static functionElement: string; + static localFunctionElement: string; + static memberFunctionElement: string; + static memberGetAccessorElement: string; + static memberSetAccessorElement: string; + static memberVariableElement: string; + static constructorImplementationElement: string; + static callSignatureElement: string; + static indexSignatureElement: string; + static constructSignatureElement: string; + static parameterElement: string; + static typeParameterElement: string; + static primitiveType: string; + static label: string; + static alias: string; + static constElement: string; + static letElement: string; + } + class ScriptElementKindModifier { + static none: string; + static publicMemberModifier: string; + static privateMemberModifier: string; + static protectedMemberModifier: string; + static exportedModifier: string; + static ambientModifier: string; + static staticModifier: string; + } + class ClassificationTypeNames { + static comment: string; + static identifier: string; + static keyword: string; + static numericLiteral: string; + static operator: string; + static stringLiteral: string; + static whiteSpace: string; + static text: string; + static punctuation: string; + static className: string; + static enumName: string; + static interfaceName: string; + static moduleName: string; + static typeParameterName: string; + static typeAlias: string; + } + interface DisplayPartsSymbolWriter extends SymbolWriter { + displayParts(): SymbolDisplayPart[]; + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; + function getDefaultCompilerOptions(): CompilerOptions; + class OperationCanceledException { + } + class CancellationTokenObject { + private cancellationToken; + static None: CancellationTokenObject; + constructor(cancellationToken: CancellationToken); + isCancellationRequested(): boolean; + throwIfCancellationRequested(): void; + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; + var disableIncrementalParsing: boolean; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function createDocumentRegistry(): DocumentRegistry; + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +} + + +//// [APISample_linter.js] +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ +var ts = require("typescript"); +function delint(sourceFile) { + delintNode(sourceFile); + function delintNode(node) { + switch (node.kind) { + case 177 /* ForStatement */: + case 178 /* ForInStatement */: + case 176 /* WhileStatement */: + case 175 /* DoStatement */: + if (node.statement.kind !== 170 /* Block */) { + report(node, "A looping statement's contents should be wrapped in a block body."); + } + break; + case 174 /* IfStatement */: + var ifStatement = node; + if (ifStatement.thenStatement.kind !== 170 /* Block */) { + report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); + } + if (ifStatement.elseStatement && ifStatement.elseStatement.kind !== 170 /* Block */ && ifStatement.elseStatement.kind !== 174 /* IfStatement */) { + report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); + } + break; + case 163 /* BinaryExpression */: + var op = node.operator; + if (op === 28 /* EqualsEqualsToken */ || op === 29 /* ExclamationEqualsToken */) { + report(node, "Use '===' and '!=='."); + } + break; + } + ts.forEachChild(node, delintNode); + } + function report(node, message) { + var lineChar = sourceFile.getLineAndCharacterFromPosition(node.getStart()); + console.log(sourceFile.filename + " (" + lineChar.line + "," + lineChar.character + "): " + message); + } +} +exports.delint = delint; +var filenames = process.argv.slice(2); +filenames.forEach(function (filename) { + // Parse a file + var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), 2 /* ES6 */, true); + // delint it + delint(sourceFile); +}); diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types new file mode 100644 index 00000000000..e3eaecdc6de --- /dev/null +++ b/tests/baselines/reference/APISample_linter.types @@ -0,0 +1,6100 @@ +=== tests/cases/compiler/APISample_linter.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : any + +declare var console: any; +>console : any + +declare var fs: any; +>fs : any + +import ts = require("typescript"); +>ts : typeof ts + +export function delint(sourceFile: ts.SourceFile) { +>delint : (sourceFile: ts.SourceFile) => void +>sourceFile : ts.SourceFile +>ts : unknown +>SourceFile : ts.SourceFile + + delintNode(sourceFile); +>delintNode(sourceFile) : void +>delintNode : (node: ts.Node) => void +>sourceFile : ts.SourceFile + + function delintNode(node: ts.Node) { +>delintNode : (node: ts.Node) => void +>node : ts.Node +>ts : unknown +>Node : ts.Node + + switch (node.kind) { +>node.kind : ts.SyntaxKind +>node : ts.Node +>kind : ts.SyntaxKind + + case ts.SyntaxKind.ForStatement: +>ts.SyntaxKind.ForStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ForStatement : ts.SyntaxKind + + case ts.SyntaxKind.ForInStatement: +>ts.SyntaxKind.ForInStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ForInStatement : ts.SyntaxKind + + case ts.SyntaxKind.WhileStatement: +>ts.SyntaxKind.WhileStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>WhileStatement : ts.SyntaxKind + + case ts.SyntaxKind.DoStatement: +>ts.SyntaxKind.DoStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>DoStatement : ts.SyntaxKind + + if ((node).statement.kind !== ts.SyntaxKind.Block) { +>(node).statement.kind !== ts.SyntaxKind.Block : boolean +>(node).statement.kind : ts.SyntaxKind +>(node).statement : ts.Statement +>(node) : ts.IterationStatement +>node : ts.IterationStatement +>ts : unknown +>IterationStatement : ts.IterationStatement +>node : ts.Node +>statement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind + + report(node, "A looping statement's contents should be wrapped in a block body."); +>report(node, "A looping statement's contents should be wrapped in a block body.") : void +>report : (node: ts.Node, message: string) => void +>node : ts.Node + } + break; + case ts.SyntaxKind.IfStatement: +>ts.SyntaxKind.IfStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>IfStatement : ts.SyntaxKind + + var ifStatement = (node); +>ifStatement : ts.IfStatement +>(node) : ts.IfStatement +>node : ts.IfStatement +>ts : unknown +>IfStatement : ts.IfStatement +>node : ts.Node + + if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { +>ifStatement.thenStatement.kind !== ts.SyntaxKind.Block : boolean +>ifStatement.thenStatement.kind : ts.SyntaxKind +>ifStatement.thenStatement : ts.Statement +>ifStatement : ts.IfStatement +>thenStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind + + report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); +>report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body.") : void +>report : (node: ts.Node, message: string) => void +>ifStatement.thenStatement : ts.Statement +>ifStatement : ts.IfStatement +>thenStatement : ts.Statement + } + if (ifStatement.elseStatement && +>ifStatement.elseStatement && ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement : boolean +>ifStatement.elseStatement && ifStatement.elseStatement.kind !== ts.SyntaxKind.Block : boolean +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement + + ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement) { +>ifStatement.elseStatement.kind !== ts.SyntaxKind.Block : boolean +>ifStatement.elseStatement.kind : ts.SyntaxKind +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind +>ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement : boolean +>ifStatement.elseStatement.kind : ts.SyntaxKind +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.IfStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>IfStatement : ts.SyntaxKind + + report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); +>report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body.") : void +>report : (node: ts.Node, message: string) => void +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement + } + break; + + case ts.SyntaxKind.BinaryExpression: +>ts.SyntaxKind.BinaryExpression : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>BinaryExpression : ts.SyntaxKind + + var op = (node).operator; +>op : ts.SyntaxKind +>(node).operator : ts.SyntaxKind +>(node) : ts.BinaryExpression +>node : ts.BinaryExpression +>ts : unknown +>BinaryExpression : ts.BinaryExpression +>node : ts.Node +>operator : ts.SyntaxKind + + if (op === ts.SyntaxKind.EqualsEqualsToken || op === ts.SyntaxKind.ExclamationEqualsToken) { +>op === ts.SyntaxKind.EqualsEqualsToken || op === ts.SyntaxKind.ExclamationEqualsToken : boolean +>op === ts.SyntaxKind.EqualsEqualsToken : boolean +>op : ts.SyntaxKind +>ts.SyntaxKind.EqualsEqualsToken : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>EqualsEqualsToken : ts.SyntaxKind +>op === ts.SyntaxKind.ExclamationEqualsToken : boolean +>op : ts.SyntaxKind +>ts.SyntaxKind.ExclamationEqualsToken : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ExclamationEqualsToken : ts.SyntaxKind + + report(node, "Use '===' and '!=='.") +>report(node, "Use '===' and '!=='.") : void +>report : (node: ts.Node, message: string) => void +>node : ts.Node + } + break; + } + + ts.forEachChild(node, delintNode); +>ts.forEachChild(node, delintNode) : void +>ts.forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T +>ts : typeof ts +>forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T +>node : ts.Node +>delintNode : (node: ts.Node) => void + } + + function report(node: ts.Node, message: string) { +>report : (node: ts.Node, message: string) => void +>node : ts.Node +>ts : unknown +>Node : ts.Node +>message : string + + var lineChar = sourceFile.getLineAndCharacterFromPosition(node.getStart()); +>lineChar : ts.LineAndCharacter +>sourceFile.getLineAndCharacterFromPosition(node.getStart()) : ts.LineAndCharacter +>sourceFile.getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>sourceFile : ts.SourceFile +>getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>node.getStart() : number +>node.getStart : (sourceFile?: ts.SourceFile) => number +>node : ts.Node +>getStart : (sourceFile?: ts.SourceFile) => number + + console.log(`${sourceFile.filename} (${lineChar.line},${lineChar.character}): ${message}`) +>console.log(`${sourceFile.filename} (${lineChar.line},${lineChar.character}): ${message}`) : any +>console.log : any +>console : any +>log : any +>sourceFile.filename : string +>sourceFile : ts.SourceFile +>filename : string +>lineChar.line : number +>lineChar : ts.LineAndCharacter +>line : number +>lineChar.character : number +>lineChar : ts.LineAndCharacter +>character : number +>message : string + } +} + +var filenames = process.argv.slice(2); +>filenames : any +>process.argv.slice(2) : any +>process.argv.slice : any +>process.argv : any +>process : any +>argv : any +>slice : any + +filenames.forEach(filename => { +>filenames.forEach(filename => { // Parse a file var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); // delint it delint(sourceFile);}) : any +>filenames.forEach : any +>filenames : any +>forEach : any +>filename => { // Parse a file var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); // delint it delint(sourceFile);} : (filename: any) => void +>filename : any + + // Parse a file + var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); +>sourceFile : ts.SourceFile +>ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true) : ts.SourceFile +>ts.createSourceFile : (filename: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>ts : typeof ts +>createSourceFile : (filename: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>filename : any +>fs.readFileSync(filename).toString() : any +>fs.readFileSync(filename).toString : any +>fs.readFileSync(filename) : any +>fs.readFileSync : any +>fs : any +>readFileSync : any +>filename : any +>toString : any +>ts.ScriptTarget.ES6 : ts.ScriptTarget +>ts.ScriptTarget : typeof ts.ScriptTarget +>ts : typeof ts +>ScriptTarget : typeof ts.ScriptTarget +>ES6 : ts.ScriptTarget + + // delint it + delint(sourceFile); +>delint(sourceFile) : void +>delint : (sourceFile: ts.SourceFile) => void +>sourceFile : ts.SourceFile + +}); + +=== typescript.d.ts === +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { +>Map : Map +>T : T + + [index: string]: T; +>index : string +>T : T + } + interface TextRange { +>TextRange : TextRange + + pos: number; +>pos : number + + end: number; +>end : number + } + const enum SyntaxKind { +>SyntaxKind : SyntaxKind + + Unknown = 0, +>Unknown : SyntaxKind + + EndOfFileToken = 1, +>EndOfFileToken : SyntaxKind + + SingleLineCommentTrivia = 2, +>SingleLineCommentTrivia : SyntaxKind + + MultiLineCommentTrivia = 3, +>MultiLineCommentTrivia : SyntaxKind + + NewLineTrivia = 4, +>NewLineTrivia : SyntaxKind + + WhitespaceTrivia = 5, +>WhitespaceTrivia : SyntaxKind + + ConflictMarkerTrivia = 6, +>ConflictMarkerTrivia : SyntaxKind + + NumericLiteral = 7, +>NumericLiteral : SyntaxKind + + StringLiteral = 8, +>StringLiteral : SyntaxKind + + RegularExpressionLiteral = 9, +>RegularExpressionLiteral : SyntaxKind + + NoSubstitutionTemplateLiteral = 10, +>NoSubstitutionTemplateLiteral : SyntaxKind + + TemplateHead = 11, +>TemplateHead : SyntaxKind + + TemplateMiddle = 12, +>TemplateMiddle : SyntaxKind + + TemplateTail = 13, +>TemplateTail : SyntaxKind + + OpenBraceToken = 14, +>OpenBraceToken : SyntaxKind + + CloseBraceToken = 15, +>CloseBraceToken : SyntaxKind + + OpenParenToken = 16, +>OpenParenToken : SyntaxKind + + CloseParenToken = 17, +>CloseParenToken : SyntaxKind + + OpenBracketToken = 18, +>OpenBracketToken : SyntaxKind + + CloseBracketToken = 19, +>CloseBracketToken : SyntaxKind + + DotToken = 20, +>DotToken : SyntaxKind + + DotDotDotToken = 21, +>DotDotDotToken : SyntaxKind + + SemicolonToken = 22, +>SemicolonToken : SyntaxKind + + CommaToken = 23, +>CommaToken : SyntaxKind + + LessThanToken = 24, +>LessThanToken : SyntaxKind + + GreaterThanToken = 25, +>GreaterThanToken : SyntaxKind + + LessThanEqualsToken = 26, +>LessThanEqualsToken : SyntaxKind + + GreaterThanEqualsToken = 27, +>GreaterThanEqualsToken : SyntaxKind + + EqualsEqualsToken = 28, +>EqualsEqualsToken : SyntaxKind + + ExclamationEqualsToken = 29, +>ExclamationEqualsToken : SyntaxKind + + EqualsEqualsEqualsToken = 30, +>EqualsEqualsEqualsToken : SyntaxKind + + ExclamationEqualsEqualsToken = 31, +>ExclamationEqualsEqualsToken : SyntaxKind + + EqualsGreaterThanToken = 32, +>EqualsGreaterThanToken : SyntaxKind + + PlusToken = 33, +>PlusToken : SyntaxKind + + MinusToken = 34, +>MinusToken : SyntaxKind + + AsteriskToken = 35, +>AsteriskToken : SyntaxKind + + SlashToken = 36, +>SlashToken : SyntaxKind + + PercentToken = 37, +>PercentToken : SyntaxKind + + PlusPlusToken = 38, +>PlusPlusToken : SyntaxKind + + MinusMinusToken = 39, +>MinusMinusToken : SyntaxKind + + LessThanLessThanToken = 40, +>LessThanLessThanToken : SyntaxKind + + GreaterThanGreaterThanToken = 41, +>GreaterThanGreaterThanToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanToken = 42, +>GreaterThanGreaterThanGreaterThanToken : SyntaxKind + + AmpersandToken = 43, +>AmpersandToken : SyntaxKind + + BarToken = 44, +>BarToken : SyntaxKind + + CaretToken = 45, +>CaretToken : SyntaxKind + + ExclamationToken = 46, +>ExclamationToken : SyntaxKind + + TildeToken = 47, +>TildeToken : SyntaxKind + + AmpersandAmpersandToken = 48, +>AmpersandAmpersandToken : SyntaxKind + + BarBarToken = 49, +>BarBarToken : SyntaxKind + + QuestionToken = 50, +>QuestionToken : SyntaxKind + + ColonToken = 51, +>ColonToken : SyntaxKind + + EqualsToken = 52, +>EqualsToken : SyntaxKind + + PlusEqualsToken = 53, +>PlusEqualsToken : SyntaxKind + + MinusEqualsToken = 54, +>MinusEqualsToken : SyntaxKind + + AsteriskEqualsToken = 55, +>AsteriskEqualsToken : SyntaxKind + + SlashEqualsToken = 56, +>SlashEqualsToken : SyntaxKind + + PercentEqualsToken = 57, +>PercentEqualsToken : SyntaxKind + + LessThanLessThanEqualsToken = 58, +>LessThanLessThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanEqualsToken = 59, +>GreaterThanGreaterThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanEqualsToken = 60, +>GreaterThanGreaterThanGreaterThanEqualsToken : SyntaxKind + + AmpersandEqualsToken = 61, +>AmpersandEqualsToken : SyntaxKind + + BarEqualsToken = 62, +>BarEqualsToken : SyntaxKind + + CaretEqualsToken = 63, +>CaretEqualsToken : SyntaxKind + + Identifier = 64, +>Identifier : SyntaxKind + + BreakKeyword = 65, +>BreakKeyword : SyntaxKind + + CaseKeyword = 66, +>CaseKeyword : SyntaxKind + + CatchKeyword = 67, +>CatchKeyword : SyntaxKind + + ClassKeyword = 68, +>ClassKeyword : SyntaxKind + + ConstKeyword = 69, +>ConstKeyword : SyntaxKind + + ContinueKeyword = 70, +>ContinueKeyword : SyntaxKind + + DebuggerKeyword = 71, +>DebuggerKeyword : SyntaxKind + + DefaultKeyword = 72, +>DefaultKeyword : SyntaxKind + + DeleteKeyword = 73, +>DeleteKeyword : SyntaxKind + + DoKeyword = 74, +>DoKeyword : SyntaxKind + + ElseKeyword = 75, +>ElseKeyword : SyntaxKind + + EnumKeyword = 76, +>EnumKeyword : SyntaxKind + + ExportKeyword = 77, +>ExportKeyword : SyntaxKind + + ExtendsKeyword = 78, +>ExtendsKeyword : SyntaxKind + + FalseKeyword = 79, +>FalseKeyword : SyntaxKind + + FinallyKeyword = 80, +>FinallyKeyword : SyntaxKind + + ForKeyword = 81, +>ForKeyword : SyntaxKind + + FunctionKeyword = 82, +>FunctionKeyword : SyntaxKind + + IfKeyword = 83, +>IfKeyword : SyntaxKind + + ImportKeyword = 84, +>ImportKeyword : SyntaxKind + + InKeyword = 85, +>InKeyword : SyntaxKind + + InstanceOfKeyword = 86, +>InstanceOfKeyword : SyntaxKind + + NewKeyword = 87, +>NewKeyword : SyntaxKind + + NullKeyword = 88, +>NullKeyword : SyntaxKind + + ReturnKeyword = 89, +>ReturnKeyword : SyntaxKind + + SuperKeyword = 90, +>SuperKeyword : SyntaxKind + + SwitchKeyword = 91, +>SwitchKeyword : SyntaxKind + + ThisKeyword = 92, +>ThisKeyword : SyntaxKind + + ThrowKeyword = 93, +>ThrowKeyword : SyntaxKind + + TrueKeyword = 94, +>TrueKeyword : SyntaxKind + + TryKeyword = 95, +>TryKeyword : SyntaxKind + + TypeOfKeyword = 96, +>TypeOfKeyword : SyntaxKind + + VarKeyword = 97, +>VarKeyword : SyntaxKind + + VoidKeyword = 98, +>VoidKeyword : SyntaxKind + + WhileKeyword = 99, +>WhileKeyword : SyntaxKind + + WithKeyword = 100, +>WithKeyword : SyntaxKind + + ImplementsKeyword = 101, +>ImplementsKeyword : SyntaxKind + + InterfaceKeyword = 102, +>InterfaceKeyword : SyntaxKind + + LetKeyword = 103, +>LetKeyword : SyntaxKind + + PackageKeyword = 104, +>PackageKeyword : SyntaxKind + + PrivateKeyword = 105, +>PrivateKeyword : SyntaxKind + + ProtectedKeyword = 106, +>ProtectedKeyword : SyntaxKind + + PublicKeyword = 107, +>PublicKeyword : SyntaxKind + + StaticKeyword = 108, +>StaticKeyword : SyntaxKind + + YieldKeyword = 109, +>YieldKeyword : SyntaxKind + + AnyKeyword = 110, +>AnyKeyword : SyntaxKind + + BooleanKeyword = 111, +>BooleanKeyword : SyntaxKind + + ConstructorKeyword = 112, +>ConstructorKeyword : SyntaxKind + + DeclareKeyword = 113, +>DeclareKeyword : SyntaxKind + + GetKeyword = 114, +>GetKeyword : SyntaxKind + + ModuleKeyword = 115, +>ModuleKeyword : SyntaxKind + + RequireKeyword = 116, +>RequireKeyword : SyntaxKind + + NumberKeyword = 117, +>NumberKeyword : SyntaxKind + + SetKeyword = 118, +>SetKeyword : SyntaxKind + + StringKeyword = 119, +>StringKeyword : SyntaxKind + + TypeKeyword = 120, +>TypeKeyword : SyntaxKind + + QualifiedName = 121, +>QualifiedName : SyntaxKind + + ComputedPropertyName = 122, +>ComputedPropertyName : SyntaxKind + + TypeParameter = 123, +>TypeParameter : SyntaxKind + + Parameter = 124, +>Parameter : SyntaxKind + + PropertySignature = 125, +>PropertySignature : SyntaxKind + + PropertyDeclaration = 126, +>PropertyDeclaration : SyntaxKind + + MethodSignature = 127, +>MethodSignature : SyntaxKind + + MethodDeclaration = 128, +>MethodDeclaration : SyntaxKind + + Constructor = 129, +>Constructor : SyntaxKind + + GetAccessor = 130, +>GetAccessor : SyntaxKind + + SetAccessor = 131, +>SetAccessor : SyntaxKind + + CallSignature = 132, +>CallSignature : SyntaxKind + + ConstructSignature = 133, +>ConstructSignature : SyntaxKind + + IndexSignature = 134, +>IndexSignature : SyntaxKind + + TypeReference = 135, +>TypeReference : SyntaxKind + + FunctionType = 136, +>FunctionType : SyntaxKind + + ConstructorType = 137, +>ConstructorType : SyntaxKind + + TypeQuery = 138, +>TypeQuery : SyntaxKind + + TypeLiteral = 139, +>TypeLiteral : SyntaxKind + + ArrayType = 140, +>ArrayType : SyntaxKind + + TupleType = 141, +>TupleType : SyntaxKind + + UnionType = 142, +>UnionType : SyntaxKind + + ParenthesizedType = 143, +>ParenthesizedType : SyntaxKind + + ObjectBindingPattern = 144, +>ObjectBindingPattern : SyntaxKind + + ArrayBindingPattern = 145, +>ArrayBindingPattern : SyntaxKind + + BindingElement = 146, +>BindingElement : SyntaxKind + + ArrayLiteralExpression = 147, +>ArrayLiteralExpression : SyntaxKind + + ObjectLiteralExpression = 148, +>ObjectLiteralExpression : SyntaxKind + + PropertyAccessExpression = 149, +>PropertyAccessExpression : SyntaxKind + + ElementAccessExpression = 150, +>ElementAccessExpression : SyntaxKind + + CallExpression = 151, +>CallExpression : SyntaxKind + + NewExpression = 152, +>NewExpression : SyntaxKind + + TaggedTemplateExpression = 153, +>TaggedTemplateExpression : SyntaxKind + + TypeAssertionExpression = 154, +>TypeAssertionExpression : SyntaxKind + + ParenthesizedExpression = 155, +>ParenthesizedExpression : SyntaxKind + + FunctionExpression = 156, +>FunctionExpression : SyntaxKind + + ArrowFunction = 157, +>ArrowFunction : SyntaxKind + + DeleteExpression = 158, +>DeleteExpression : SyntaxKind + + TypeOfExpression = 159, +>TypeOfExpression : SyntaxKind + + VoidExpression = 160, +>VoidExpression : SyntaxKind + + PrefixUnaryExpression = 161, +>PrefixUnaryExpression : SyntaxKind + + PostfixUnaryExpression = 162, +>PostfixUnaryExpression : SyntaxKind + + BinaryExpression = 163, +>BinaryExpression : SyntaxKind + + ConditionalExpression = 164, +>ConditionalExpression : SyntaxKind + + TemplateExpression = 165, +>TemplateExpression : SyntaxKind + + YieldExpression = 166, +>YieldExpression : SyntaxKind + + SpreadElementExpression = 167, +>SpreadElementExpression : SyntaxKind + + OmittedExpression = 168, +>OmittedExpression : SyntaxKind + + TemplateSpan = 169, +>TemplateSpan : SyntaxKind + + Block = 170, +>Block : SyntaxKind + + VariableStatement = 171, +>VariableStatement : SyntaxKind + + EmptyStatement = 172, +>EmptyStatement : SyntaxKind + + ExpressionStatement = 173, +>ExpressionStatement : SyntaxKind + + IfStatement = 174, +>IfStatement : SyntaxKind + + DoStatement = 175, +>DoStatement : SyntaxKind + + WhileStatement = 176, +>WhileStatement : SyntaxKind + + ForStatement = 177, +>ForStatement : SyntaxKind + + ForInStatement = 178, +>ForInStatement : SyntaxKind + + ContinueStatement = 179, +>ContinueStatement : SyntaxKind + + BreakStatement = 180, +>BreakStatement : SyntaxKind + + ReturnStatement = 181, +>ReturnStatement : SyntaxKind + + WithStatement = 182, +>WithStatement : SyntaxKind + + SwitchStatement = 183, +>SwitchStatement : SyntaxKind + + LabeledStatement = 184, +>LabeledStatement : SyntaxKind + + ThrowStatement = 185, +>ThrowStatement : SyntaxKind + + TryStatement = 186, +>TryStatement : SyntaxKind + + DebuggerStatement = 187, +>DebuggerStatement : SyntaxKind + + VariableDeclaration = 188, +>VariableDeclaration : SyntaxKind + + VariableDeclarationList = 189, +>VariableDeclarationList : SyntaxKind + + FunctionDeclaration = 190, +>FunctionDeclaration : SyntaxKind + + ClassDeclaration = 191, +>ClassDeclaration : SyntaxKind + + InterfaceDeclaration = 192, +>InterfaceDeclaration : SyntaxKind + + TypeAliasDeclaration = 193, +>TypeAliasDeclaration : SyntaxKind + + EnumDeclaration = 194, +>EnumDeclaration : SyntaxKind + + ModuleDeclaration = 195, +>ModuleDeclaration : SyntaxKind + + ModuleBlock = 196, +>ModuleBlock : SyntaxKind + + ImportDeclaration = 197, +>ImportDeclaration : SyntaxKind + + ExportAssignment = 198, +>ExportAssignment : SyntaxKind + + ExternalModuleReference = 199, +>ExternalModuleReference : SyntaxKind + + CaseClause = 200, +>CaseClause : SyntaxKind + + DefaultClause = 201, +>DefaultClause : SyntaxKind + + HeritageClause = 202, +>HeritageClause : SyntaxKind + + CatchClause = 203, +>CatchClause : SyntaxKind + + PropertyAssignment = 204, +>PropertyAssignment : SyntaxKind + + ShorthandPropertyAssignment = 205, +>ShorthandPropertyAssignment : SyntaxKind + + EnumMember = 206, +>EnumMember : SyntaxKind + + SourceFile = 207, +>SourceFile : SyntaxKind + + SyntaxList = 208, +>SyntaxList : SyntaxKind + + Count = 209, +>Count : SyntaxKind + + FirstAssignment = 52, +>FirstAssignment : SyntaxKind + + LastAssignment = 63, +>LastAssignment : SyntaxKind + + FirstReservedWord = 65, +>FirstReservedWord : SyntaxKind + + LastReservedWord = 100, +>LastReservedWord : SyntaxKind + + FirstKeyword = 65, +>FirstKeyword : SyntaxKind + + LastKeyword = 120, +>LastKeyword : SyntaxKind + + FirstFutureReservedWord = 101, +>FirstFutureReservedWord : SyntaxKind + + LastFutureReservedWord = 109, +>LastFutureReservedWord : SyntaxKind + + FirstTypeNode = 135, +>FirstTypeNode : SyntaxKind + + LastTypeNode = 143, +>LastTypeNode : SyntaxKind + + FirstPunctuation = 14, +>FirstPunctuation : SyntaxKind + + LastPunctuation = 63, +>LastPunctuation : SyntaxKind + + FirstToken = 0, +>FirstToken : SyntaxKind + + LastToken = 120, +>LastToken : SyntaxKind + + FirstTriviaToken = 2, +>FirstTriviaToken : SyntaxKind + + LastTriviaToken = 6, +>LastTriviaToken : SyntaxKind + + FirstLiteralToken = 7, +>FirstLiteralToken : SyntaxKind + + LastLiteralToken = 10, +>LastLiteralToken : SyntaxKind + + FirstTemplateToken = 10, +>FirstTemplateToken : SyntaxKind + + LastTemplateToken = 13, +>LastTemplateToken : SyntaxKind + + FirstBinaryOperator = 24, +>FirstBinaryOperator : SyntaxKind + + LastBinaryOperator = 63, +>LastBinaryOperator : SyntaxKind + + FirstNode = 121, +>FirstNode : SyntaxKind + } + const enum NodeFlags { +>NodeFlags : NodeFlags + + Export = 1, +>Export : NodeFlags + + Ambient = 2, +>Ambient : NodeFlags + + Public = 16, +>Public : NodeFlags + + Private = 32, +>Private : NodeFlags + + Protected = 64, +>Protected : NodeFlags + + Static = 128, +>Static : NodeFlags + + MultiLine = 256, +>MultiLine : NodeFlags + + Synthetic = 512, +>Synthetic : NodeFlags + + DeclarationFile = 1024, +>DeclarationFile : NodeFlags + + Let = 2048, +>Let : NodeFlags + + Const = 4096, +>Const : NodeFlags + + OctalLiteral = 8192, +>OctalLiteral : NodeFlags + + Modifier = 243, +>Modifier : NodeFlags + + AccessibilityModifier = 112, +>AccessibilityModifier : NodeFlags + + BlockScoped = 6144, +>BlockScoped : NodeFlags + } + const enum ParserContextFlags { +>ParserContextFlags : ParserContextFlags + + StrictMode = 1, +>StrictMode : ParserContextFlags + + DisallowIn = 2, +>DisallowIn : ParserContextFlags + + Yield = 4, +>Yield : ParserContextFlags + + GeneratorParameter = 8, +>GeneratorParameter : ParserContextFlags + + ThisNodeHasError = 16, +>ThisNodeHasError : ParserContextFlags + + ParserGeneratedFlags = 31, +>ParserGeneratedFlags : ParserContextFlags + + ThisNodeOrAnySubNodesHasError = 32, +>ThisNodeOrAnySubNodesHasError : ParserContextFlags + + HasAggregatedChildData = 64, +>HasAggregatedChildData : ParserContextFlags + } + interface Node extends TextRange { +>Node : Node +>TextRange : TextRange + + kind: SyntaxKind; +>kind : SyntaxKind +>SyntaxKind : SyntaxKind + + flags: NodeFlags; +>flags : NodeFlags +>NodeFlags : NodeFlags + + parserContextFlags?: ParserContextFlags; +>parserContextFlags : ParserContextFlags +>ParserContextFlags : ParserContextFlags + + id?: number; +>id : number + + parent?: Node; +>parent : Node +>Node : Node + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + + locals?: SymbolTable; +>locals : SymbolTable +>SymbolTable : SymbolTable + + nextContainer?: Node; +>nextContainer : Node +>Node : Node + + localSymbol?: Symbol; +>localSymbol : Symbol +>Symbol : Symbol + + modifiers?: ModifiersArray; +>modifiers : ModifiersArray +>ModifiersArray : ModifiersArray + } + interface NodeArray extends Array, TextRange { +>NodeArray : NodeArray +>T : T +>Array : T[] +>T : T +>TextRange : TextRange + + hasTrailingComma?: boolean; +>hasTrailingComma : boolean + } + interface ModifiersArray extends NodeArray { +>ModifiersArray : ModifiersArray +>NodeArray : NodeArray +>Node : Node + + flags: number; +>flags : number + } + interface Identifier extends PrimaryExpression { +>Identifier : Identifier +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + } + interface QualifiedName extends Node { +>QualifiedName : QualifiedName +>Node : Node + + left: EntityName; +>left : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + right: Identifier; +>right : Identifier +>Identifier : Identifier + } + type EntityName = Identifier | QualifiedName; +>EntityName : Identifier | QualifiedName +>Identifier : Identifier +>QualifiedName : QualifiedName + + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>Identifier : Identifier +>LiteralExpression : LiteralExpression +>ComputedPropertyName : ComputedPropertyName +>BindingPattern : BindingPattern + + interface Declaration extends Node { +>Declaration : Declaration +>Node : Node + + _declarationBrand: any; +>_declarationBrand : any + + name?: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + } + interface ComputedPropertyName extends Node { +>ComputedPropertyName : ComputedPropertyName +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TypeParameterDeclaration extends Declaration { +>TypeParameterDeclaration : TypeParameterDeclaration +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + constraint?: TypeNode; +>constraint : TypeNode +>TypeNode : TypeNode + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface SignatureDeclaration extends Declaration { +>SignatureDeclaration : SignatureDeclaration +>Declaration : Declaration + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + parameters: NodeArray; +>parameters : NodeArray +>NodeArray : NodeArray +>ParameterDeclaration : ParameterDeclaration + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface VariableDeclaration extends Declaration { +>VariableDeclaration : VariableDeclaration +>Declaration : Declaration + + parent?: VariableDeclarationList; +>parent : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface VariableDeclarationList extends Node { +>VariableDeclarationList : VariableDeclarationList +>Node : Node + + declarations: NodeArray; +>declarations : NodeArray +>NodeArray : NodeArray +>VariableDeclaration : VariableDeclaration + } + interface ParameterDeclaration extends Declaration { +>ParameterDeclaration : ParameterDeclaration +>Declaration : Declaration + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingElement extends Declaration { +>BindingElement : BindingElement +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface PropertyDeclaration extends Declaration, ClassElement { +>PropertyDeclaration : PropertyDeclaration +>Declaration : Declaration +>ClassElement : ClassElement + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface ObjectLiteralElement extends Declaration { +>ObjectLiteralElement : ObjectLiteralElement +>Declaration : Declaration + + _objectLiteralBrandBrand: any; +>_objectLiteralBrandBrand : any + } + interface PropertyAssignment extends ObjectLiteralElement { +>PropertyAssignment : PropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + _propertyAssignmentBrand: any; +>_propertyAssignmentBrand : any + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + initializer: Expression; +>initializer : Expression +>Expression : Expression + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { +>ShorthandPropertyAssignment : ShorthandPropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + questionToken?: Node; +>questionToken : Node +>Node : Node + } + interface VariableLikeDeclaration extends Declaration { +>VariableLikeDeclaration : VariableLikeDeclaration +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingPattern extends Node { +>BindingPattern : BindingPattern +>Node : Node + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>BindingElement : BindingElement + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { +>FunctionLikeDeclaration : FunctionLikeDeclaration +>SignatureDeclaration : SignatureDeclaration + + _functionLikeDeclarationBrand: any; +>_functionLikeDeclarationBrand : any + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + questionToken?: Node; +>questionToken : Node +>Node : Node + + body?: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { +>FunctionDeclaration : FunctionDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>Statement : Statement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + body?: Block; +>body : Block +>Block : Block + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>MethodDeclaration : MethodDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + body?: Block; +>body : Block +>Block : Block + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { +>ConstructorDeclaration : ConstructorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement + + body?: Block; +>body : Block +>Block : Block + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>AccessorDeclaration : AccessorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + _accessorDeclarationBrand: any; +>_accessorDeclarationBrand : any + + body: Block; +>body : Block +>Block : Block + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { +>IndexSignatureDeclaration : IndexSignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>ClassElement : ClassElement + + _indexSignatureDeclarationBrand: any; +>_indexSignatureDeclarationBrand : any + } + interface TypeNode extends Node { +>TypeNode : TypeNode +>Node : Node + + _typeNodeBrand: any; +>_typeNodeBrand : any + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { +>FunctionOrConstructorTypeNode : FunctionOrConstructorTypeNode +>TypeNode : TypeNode +>SignatureDeclaration : SignatureDeclaration + + _functionOrConstructorTypeNodeBrand: any; +>_functionOrConstructorTypeNodeBrand : any + } + interface TypeReferenceNode extends TypeNode { +>TypeReferenceNode : TypeReferenceNode +>TypeNode : TypeNode + + typeName: EntityName; +>typeName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface TypeQueryNode extends TypeNode { +>TypeQueryNode : TypeQueryNode +>TypeNode : TypeNode + + exprName: EntityName; +>exprName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + } + interface TypeLiteralNode extends TypeNode, Declaration { +>TypeLiteralNode : TypeLiteralNode +>TypeNode : TypeNode +>Declaration : Declaration + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Node : Node + } + interface ArrayTypeNode extends TypeNode { +>ArrayTypeNode : ArrayTypeNode +>TypeNode : TypeNode + + elementType: TypeNode; +>elementType : TypeNode +>TypeNode : TypeNode + } + interface TupleTypeNode extends TypeNode { +>TupleTypeNode : TupleTypeNode +>TypeNode : TypeNode + + elementTypes: NodeArray; +>elementTypes : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface UnionTypeNode extends TypeNode { +>UnionTypeNode : UnionTypeNode +>TypeNode : TypeNode + + types: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface ParenthesizedTypeNode extends TypeNode { +>ParenthesizedTypeNode : ParenthesizedTypeNode +>TypeNode : TypeNode + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { +>StringLiteralTypeNode : StringLiteralTypeNode +>LiteralExpression : LiteralExpression +>TypeNode : TypeNode + } + interface Expression extends Node { +>Expression : Expression +>Node : Node + + _expressionBrand: any; +>_expressionBrand : any + + contextualType?: Type; +>contextualType : Type +>Type : Type + } + interface UnaryExpression extends Expression { +>UnaryExpression : UnaryExpression +>Expression : Expression + + _unaryExpressionBrand: any; +>_unaryExpressionBrand : any + } + interface PrefixUnaryExpression extends UnaryExpression { +>PrefixUnaryExpression : PrefixUnaryExpression +>UnaryExpression : UnaryExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + operand: UnaryExpression; +>operand : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface PostfixUnaryExpression extends PostfixExpression { +>PostfixUnaryExpression : PostfixUnaryExpression +>PostfixExpression : PostfixExpression + + operand: LeftHandSideExpression; +>operand : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + } + interface PostfixExpression extends UnaryExpression { +>PostfixExpression : PostfixExpression +>UnaryExpression : UnaryExpression + + _postfixExpressionBrand: any; +>_postfixExpressionBrand : any + } + interface LeftHandSideExpression extends PostfixExpression { +>LeftHandSideExpression : LeftHandSideExpression +>PostfixExpression : PostfixExpression + + _leftHandSideExpressionBrand: any; +>_leftHandSideExpressionBrand : any + } + interface MemberExpression extends LeftHandSideExpression { +>MemberExpression : MemberExpression +>LeftHandSideExpression : LeftHandSideExpression + + _memberExpressionBrand: any; +>_memberExpressionBrand : any + } + interface PrimaryExpression extends MemberExpression { +>PrimaryExpression : PrimaryExpression +>MemberExpression : MemberExpression + + _primaryExpressionBrand: any; +>_primaryExpressionBrand : any + } + interface DeleteExpression extends UnaryExpression { +>DeleteExpression : DeleteExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface TypeOfExpression extends UnaryExpression { +>TypeOfExpression : TypeOfExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface VoidExpression extends UnaryExpression { +>VoidExpression : VoidExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface YieldExpression extends Expression { +>YieldExpression : YieldExpression +>Expression : Expression + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BinaryExpression extends Expression { +>BinaryExpression : BinaryExpression +>Expression : Expression + + left: Expression; +>left : Expression +>Expression : Expression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + right: Expression; +>right : Expression +>Expression : Expression + } + interface ConditionalExpression extends Expression { +>ConditionalExpression : ConditionalExpression +>Expression : Expression + + condition: Expression; +>condition : Expression +>Expression : Expression + + whenTrue: Expression; +>whenTrue : Expression +>Expression : Expression + + whenFalse: Expression; +>whenFalse : Expression +>Expression : Expression + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { +>FunctionExpression : FunctionExpression +>PrimaryExpression : PrimaryExpression +>FunctionLikeDeclaration : FunctionLikeDeclaration + + name?: Identifier; +>name : Identifier +>Identifier : Identifier + + body: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface LiteralExpression extends PrimaryExpression { +>LiteralExpression : LiteralExpression +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + + isUnterminated?: boolean; +>isUnterminated : boolean + } + interface StringLiteralExpression extends LiteralExpression { +>StringLiteralExpression : StringLiteralExpression +>LiteralExpression : LiteralExpression + + _stringLiteralExpressionBrand: any; +>_stringLiteralExpressionBrand : any + } + interface TemplateExpression extends PrimaryExpression { +>TemplateExpression : TemplateExpression +>PrimaryExpression : PrimaryExpression + + head: LiteralExpression; +>head : LiteralExpression +>LiteralExpression : LiteralExpression + + templateSpans: NodeArray; +>templateSpans : NodeArray +>NodeArray : NodeArray +>TemplateSpan : TemplateSpan + } + interface TemplateSpan extends Node { +>TemplateSpan : TemplateSpan +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + + literal: LiteralExpression; +>literal : LiteralExpression +>LiteralExpression : LiteralExpression + } + interface ParenthesizedExpression extends PrimaryExpression { +>ParenthesizedExpression : ParenthesizedExpression +>PrimaryExpression : PrimaryExpression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ArrayLiteralExpression extends PrimaryExpression { +>ArrayLiteralExpression : ArrayLiteralExpression +>PrimaryExpression : PrimaryExpression + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface SpreadElementExpression extends Expression { +>SpreadElementExpression : SpreadElementExpression +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { +>ObjectLiteralExpression : ObjectLiteralExpression +>PrimaryExpression : PrimaryExpression +>Declaration : Declaration + + properties: NodeArray; +>properties : NodeArray +>NodeArray : NodeArray +>ObjectLiteralElement : ObjectLiteralElement + } + interface PropertyAccessExpression extends MemberExpression { +>PropertyAccessExpression : PropertyAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + name: Identifier; +>name : Identifier +>Identifier : Identifier + } + interface ElementAccessExpression extends MemberExpression { +>ElementAccessExpression : ElementAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + argumentExpression?: Expression; +>argumentExpression : Expression +>Expression : Expression + } + interface CallExpression extends LeftHandSideExpression { +>CallExpression : CallExpression +>LeftHandSideExpression : LeftHandSideExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + + arguments: NodeArray; +>arguments : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface NewExpression extends CallExpression, PrimaryExpression { +>NewExpression : NewExpression +>CallExpression : CallExpression +>PrimaryExpression : PrimaryExpression + } + interface TaggedTemplateExpression extends MemberExpression { +>TaggedTemplateExpression : TaggedTemplateExpression +>MemberExpression : MemberExpression + + tag: LeftHandSideExpression; +>tag : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + template: LiteralExpression | TemplateExpression; +>template : LiteralExpression | TemplateExpression +>LiteralExpression : LiteralExpression +>TemplateExpression : TemplateExpression + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>CallExpression : CallExpression +>NewExpression : NewExpression +>TaggedTemplateExpression : TaggedTemplateExpression + + interface TypeAssertion extends UnaryExpression { +>TypeAssertion : TypeAssertion +>UnaryExpression : UnaryExpression + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface Statement extends Node, ModuleElement { +>Statement : Statement +>Node : Node +>ModuleElement : ModuleElement + + _statementBrand: any; +>_statementBrand : any + } + interface Block extends Statement { +>Block : Block +>Statement : Statement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface VariableStatement extends Statement { +>VariableStatement : VariableStatement +>Statement : Statement + + declarationList: VariableDeclarationList; +>declarationList : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + } + interface ExpressionStatement extends Statement { +>ExpressionStatement : ExpressionStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface IfStatement extends Statement { +>IfStatement : IfStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + thenStatement: Statement; +>thenStatement : Statement +>Statement : Statement + + elseStatement?: Statement; +>elseStatement : Statement +>Statement : Statement + } + interface IterationStatement extends Statement { +>IterationStatement : IterationStatement +>Statement : Statement + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface DoStatement extends IterationStatement { +>DoStatement : DoStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface WhileStatement extends IterationStatement { +>WhileStatement : WhileStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ForStatement extends IterationStatement { +>ForStatement : ForStatement +>IterationStatement : IterationStatement + + initializer?: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + condition?: Expression; +>condition : Expression +>Expression : Expression + + iterator?: Expression; +>iterator : Expression +>Expression : Expression + } + interface ForInStatement extends IterationStatement { +>ForInStatement : ForInStatement +>IterationStatement : IterationStatement + + initializer: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BreakOrContinueStatement extends Statement { +>BreakOrContinueStatement : BreakOrContinueStatement +>Statement : Statement + + label?: Identifier; +>label : Identifier +>Identifier : Identifier + } + interface ReturnStatement extends Statement { +>ReturnStatement : ReturnStatement +>Statement : Statement + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface WithStatement extends Statement { +>WithStatement : WithStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface SwitchStatement extends Statement { +>SwitchStatement : SwitchStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + clauses: NodeArray; +>clauses : NodeArray +>NodeArray : NodeArray +>CaseOrDefaultClause : CaseClause | DefaultClause + } + interface CaseClause extends Node { +>CaseClause : CaseClause +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface DefaultClause extends Node { +>DefaultClause : DefaultClause +>Node : Node + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + type CaseOrDefaultClause = CaseClause | DefaultClause; +>CaseOrDefaultClause : CaseClause | DefaultClause +>CaseClause : CaseClause +>DefaultClause : DefaultClause + + interface LabeledStatement extends Statement { +>LabeledStatement : LabeledStatement +>Statement : Statement + + label: Identifier; +>label : Identifier +>Identifier : Identifier + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface ThrowStatement extends Statement { +>ThrowStatement : ThrowStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TryStatement extends Statement { +>TryStatement : TryStatement +>Statement : Statement + + tryBlock: Block; +>tryBlock : Block +>Block : Block + + catchClause?: CatchClause; +>catchClause : CatchClause +>CatchClause : CatchClause + + finallyBlock?: Block; +>finallyBlock : Block +>Block : Block + } + interface CatchClause extends Declaration { +>CatchClause : CatchClause +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + block: Block; +>block : Block +>Block : Block + } + interface ModuleElement extends Node { +>ModuleElement : ModuleElement +>Node : Node + + _moduleElementBrand: any; +>_moduleElementBrand : any + } + interface ClassDeclaration extends Declaration, ModuleElement { +>ClassDeclaration : ClassDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>ClassElement : ClassElement + } + interface ClassElement extends Declaration { +>ClassElement : ClassElement +>Declaration : Declaration + + _classElementBrand: any; +>_classElementBrand : any + } + interface InterfaceDeclaration extends Declaration, ModuleElement { +>InterfaceDeclaration : InterfaceDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Declaration : Declaration + } + interface HeritageClause extends Node { +>HeritageClause : HeritageClause +>Node : Node + + token: SyntaxKind; +>token : SyntaxKind +>SyntaxKind : SyntaxKind + + types?: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeReferenceNode : TypeReferenceNode + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { +>TypeAliasDeclaration : TypeAliasDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface EnumMember extends Declaration { +>EnumMember : EnumMember +>Declaration : Declaration + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface EnumDeclaration extends Declaration, ModuleElement { +>EnumDeclaration : EnumDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>EnumMember : EnumMember + } + interface ModuleDeclaration extends Declaration, ModuleElement { +>ModuleDeclaration : ModuleDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier | LiteralExpression; +>name : Identifier | LiteralExpression +>Identifier : Identifier +>LiteralExpression : LiteralExpression + + body: ModuleBlock | ModuleDeclaration; +>body : ModuleDeclaration | ModuleBlock +>ModuleBlock : ModuleBlock +>ModuleDeclaration : ModuleDeclaration + } + interface ModuleBlock extends Node, ModuleElement { +>ModuleBlock : ModuleBlock +>Node : Node +>ModuleElement : ModuleElement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + } + interface ImportDeclaration extends Declaration, ModuleElement { +>ImportDeclaration : ImportDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + moduleReference: EntityName | ExternalModuleReference; +>moduleReference : Identifier | QualifiedName | ExternalModuleReference +>EntityName : Identifier | QualifiedName +>ExternalModuleReference : ExternalModuleReference + } + interface ExternalModuleReference extends Node { +>ExternalModuleReference : ExternalModuleReference +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface ExportAssignment extends Statement, ModuleElement { +>ExportAssignment : ExportAssignment +>Statement : Statement +>ModuleElement : ModuleElement + + exportName: Identifier; +>exportName : Identifier +>Identifier : Identifier + } + interface FileReference extends TextRange { +>FileReference : FileReference +>TextRange : TextRange + + filename: string; +>filename : string + } + interface CommentRange extends TextRange { +>CommentRange : CommentRange +>TextRange : TextRange + + hasTrailingNewLine?: boolean; +>hasTrailingNewLine : boolean + } + interface SourceFile extends Declaration { +>SourceFile : SourceFile +>Declaration : Declaration + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + + endOfFileToken: Node; +>endOfFileToken : Node +>Node : Node + + filename: string; +>filename : string + + text: string; +>text : string + + getLineAndCharacterFromPosition(position: number): LineAndCharacter; +>getLineAndCharacterFromPosition : (position: number) => LineAndCharacter +>position : number +>LineAndCharacter : LineAndCharacter + + getPositionFromLineAndCharacter(line: number, character: number): number; +>getPositionFromLineAndCharacter : (line: number, character: number) => number +>line : number +>character : number + + getLineStarts(): number[]; +>getLineStarts : () => number[] + + update(newText: string, textChangeRange: TextChangeRange): SourceFile; +>update : (newText: string, textChangeRange: TextChangeRange) => SourceFile +>newText : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + amdDependencies: string[]; +>amdDependencies : string[] + + amdModuleName: string; +>amdModuleName : string + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + referenceDiagnostics: Diagnostic[]; +>referenceDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + parseDiagnostics: Diagnostic[]; +>parseDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticDiagnostics(): Diagnostic[]; +>getSyntacticDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + semanticDiagnostics: Diagnostic[]; +>semanticDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + hasNoDefaultLib: boolean; +>hasNoDefaultLib : boolean + + externalModuleIndicator: Node; +>externalModuleIndicator : Node +>Node : Node + + nodeCount: number; +>nodeCount : number + + identifierCount: number; +>identifierCount : number + + symbolCount: number; +>symbolCount : number + + languageVersion: ScriptTarget; +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + identifiers: Map; +>identifiers : Map +>Map : Map + } + interface ScriptReferenceHost { +>ScriptReferenceHost : ScriptReferenceHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + } + interface Program extends ScriptReferenceHost { +>Program : Program +>ScriptReferenceHost : ScriptReferenceHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; +>getDeclarationDiagnostics : (sourceFile: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getTypeChecker(produceDiagnostics: boolean): TypeChecker; +>getTypeChecker : (produceDiagnostics: boolean) => TypeChecker +>produceDiagnostics : boolean +>TypeChecker : TypeChecker + + getCommonSourceDirectory(): string; +>getCommonSourceDirectory : () => string + + emitFiles(targetSourceFile?: SourceFile): EmitResult; +>emitFiles : (targetSourceFile?: SourceFile) => EmitResult +>targetSourceFile : SourceFile +>SourceFile : SourceFile +>EmitResult : EmitResult + + isEmitBlocked(sourceFile?: SourceFile): boolean; +>isEmitBlocked : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + } + interface SourceMapSpan { +>SourceMapSpan : SourceMapSpan + + emittedLine: number; +>emittedLine : number + + emittedColumn: number; +>emittedColumn : number + + sourceLine: number; +>sourceLine : number + + sourceColumn: number; +>sourceColumn : number + + nameIndex?: number; +>nameIndex : number + + sourceIndex: number; +>sourceIndex : number + } + interface SourceMapData { +>SourceMapData : SourceMapData + + sourceMapFilePath: string; +>sourceMapFilePath : string + + jsSourceMappingURL: string; +>jsSourceMappingURL : string + + sourceMapFile: string; +>sourceMapFile : string + + sourceMapSourceRoot: string; +>sourceMapSourceRoot : string + + sourceMapSources: string[]; +>sourceMapSources : string[] + + inputSourceFileNames: string[]; +>inputSourceFileNames : string[] + + sourceMapNames?: string[]; +>sourceMapNames : string[] + + sourceMapMappings: string; +>sourceMapMappings : string + + sourceMapDecodedMappings: SourceMapSpan[]; +>sourceMapDecodedMappings : SourceMapSpan[] +>SourceMapSpan : SourceMapSpan + } + enum EmitReturnStatus { +>EmitReturnStatus : EmitReturnStatus + + Succeeded = 0, +>Succeeded : EmitReturnStatus + + AllOutputGenerationSkipped = 1, +>AllOutputGenerationSkipped : EmitReturnStatus + + JSGeneratedWithSemanticErrors = 2, +>JSGeneratedWithSemanticErrors : EmitReturnStatus + + DeclarationGenerationSkipped = 3, +>DeclarationGenerationSkipped : EmitReturnStatus + + EmitErrorsEncountered = 4, +>EmitErrorsEncountered : EmitReturnStatus + + CompilerOptionsErrors = 5, +>CompilerOptionsErrors : EmitReturnStatus + } + interface EmitResult { +>EmitResult : EmitResult + + emitResultStatus: EmitReturnStatus; +>emitResultStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + + diagnostics: Diagnostic[]; +>diagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + sourceMaps: SourceMapData[]; +>sourceMaps : SourceMapData[] +>SourceMapData : SourceMapData + } + interface TypeCheckerHost { +>TypeCheckerHost : TypeCheckerHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + } + interface TypeChecker { +>TypeChecker : TypeChecker + + getEmitResolver(): EmitResolver; +>getEmitResolver : () => EmitResolver +>EmitResolver : EmitResolver + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getNodeCount(): number; +>getNodeCount : () => number + + getIdentifierCount(): number; +>getIdentifierCount : () => number + + getSymbolCount(): number; +>getSymbolCount : () => number + + getTypeCount(): number; +>getTypeCount : () => number + + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; +>getTypeOfSymbolAtLocation : (symbol: Symbol, node: Node) => Type +>symbol : Symbol +>Symbol : Symbol +>node : Node +>Node : Node +>Type : Type + + getDeclaredTypeOfSymbol(symbol: Symbol): Type; +>getDeclaredTypeOfSymbol : (symbol: Symbol) => Type +>symbol : Symbol +>Symbol : Symbol +>Type : Type + + getPropertiesOfType(type: Type): Symbol[]; +>getPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getPropertyOfType(type: Type, propertyName: string): Symbol; +>getPropertyOfType : (type: Type, propertyName: string) => Symbol +>type : Type +>Type : Type +>propertyName : string +>Symbol : Symbol + + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; +>getSignaturesOfType : (type: Type, kind: SignatureKind) => Signature[] +>type : Type +>Type : Type +>kind : SignatureKind +>SignatureKind : SignatureKind +>Signature : Signature + + getIndexTypeOfType(type: Type, kind: IndexKind): Type; +>getIndexTypeOfType : (type: Type, kind: IndexKind) => Type +>type : Type +>Type : Type +>kind : IndexKind +>IndexKind : IndexKind +>Type : Type + + getReturnTypeOfSignature(signature: Signature): Type; +>getReturnTypeOfSignature : (signature: Signature) => Type +>signature : Signature +>Signature : Signature +>Type : Type + + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; +>getSymbolsInScope : (location: Node, meaning: SymbolFlags) => Symbol[] +>location : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>Symbol : Symbol + + getSymbolAtLocation(node: Node): Symbol; +>getSymbolAtLocation : (node: Node) => Symbol +>node : Node +>Node : Node +>Symbol : Symbol + + getShorthandAssignmentValueSymbol(location: Node): Symbol; +>getShorthandAssignmentValueSymbol : (location: Node) => Symbol +>location : Node +>Node : Node +>Symbol : Symbol + + getTypeAtLocation(node: Node): Type; +>getTypeAtLocation : (node: Node) => Type +>node : Node +>Node : Node +>Type : Type + + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; +>typeToString : (type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => string +>type : Type +>Type : Type +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; +>symbolToString : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => string +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + + getSymbolDisplayBuilder(): SymbolDisplayBuilder; +>getSymbolDisplayBuilder : () => SymbolDisplayBuilder +>SymbolDisplayBuilder : SymbolDisplayBuilder + + getFullyQualifiedName(symbol: Symbol): string; +>getFullyQualifiedName : (symbol: Symbol) => string +>symbol : Symbol +>Symbol : Symbol + + getAugmentedPropertiesOfType(type: Type): Symbol[]; +>getAugmentedPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getRootSymbols(symbol: Symbol): Symbol[]; +>getRootSymbols : (symbol: Symbol) => Symbol[] +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + + getContextualType(node: Expression): Type; +>getContextualType : (node: Expression) => Type +>node : Expression +>Expression : Expression +>Type : Type + + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; +>getResolvedSignature : (node: CallExpression | NewExpression | TaggedTemplateExpression, candidatesOutArray?: Signature[]) => Signature +>node : CallExpression | NewExpression | TaggedTemplateExpression +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>candidatesOutArray : Signature[] +>Signature : Signature +>Signature : Signature + + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; +>getSignatureFromDeclaration : (declaration: SignatureDeclaration) => Signature +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>Signature : Signature + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + isUndefinedSymbol(symbol: Symbol): boolean; +>isUndefinedSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + isArgumentsSymbol(symbol: Symbol): boolean; +>isArgumentsSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; +>isValidPropertyAccess : (node: QualifiedName | PropertyAccessExpression, propertyName: string) => boolean +>node : QualifiedName | PropertyAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>QualifiedName : QualifiedName +>propertyName : string + + getAliasedSymbol(symbol: Symbol): Symbol; +>getAliasedSymbol : (symbol: Symbol) => Symbol +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + } + interface SymbolDisplayBuilder { +>SymbolDisplayBuilder : SymbolDisplayBuilder + + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeDisplay : (type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>type : Type +>Type : Type +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; +>buildSymbolDisplay : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>flags : SymbolFormatFlags +>SymbolFormatFlags : SymbolFormatFlags + + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildSignatureDisplay : (signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signatures : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildParameterDisplay : (parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameter : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplay : (tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>tp : TypeParameter +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplayFromSymbol : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaraiton : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForParametersAndDelimiters : (parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameters : Symbol[] +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForTypeParametersAndDelimiters : (typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildReturnTypeDisplay : (signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signature : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + } + interface SymbolWriter { +>SymbolWriter : SymbolWriter + + writeKeyword(text: string): void; +>writeKeyword : (text: string) => void +>text : string + + writeOperator(text: string): void; +>writeOperator : (text: string) => void +>text : string + + writePunctuation(text: string): void; +>writePunctuation : (text: string) => void +>text : string + + writeSpace(text: string): void; +>writeSpace : (text: string) => void +>text : string + + writeStringLiteral(text: string): void; +>writeStringLiteral : (text: string) => void +>text : string + + writeParameter(text: string): void; +>writeParameter : (text: string) => void +>text : string + + writeSymbol(text: string, symbol: Symbol): void; +>writeSymbol : (text: string, symbol: Symbol) => void +>text : string +>symbol : Symbol +>Symbol : Symbol + + writeLine(): void; +>writeLine : () => void + + increaseIndent(): void; +>increaseIndent : () => void + + decreaseIndent(): void; +>decreaseIndent : () => void + + clear(): void; +>clear : () => void + + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; +>trackSymbol : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => void +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + } + const enum TypeFormatFlags { +>TypeFormatFlags : TypeFormatFlags + + None = 0, +>None : TypeFormatFlags + + WriteArrayAsGenericType = 1, +>WriteArrayAsGenericType : TypeFormatFlags + + UseTypeOfFunction = 2, +>UseTypeOfFunction : TypeFormatFlags + + NoTruncation = 4, +>NoTruncation : TypeFormatFlags + + WriteArrowStyleSignature = 8, +>WriteArrowStyleSignature : TypeFormatFlags + + WriteOwnNameForAnyLike = 16, +>WriteOwnNameForAnyLike : TypeFormatFlags + + WriteTypeArgumentsOfSignature = 32, +>WriteTypeArgumentsOfSignature : TypeFormatFlags + + InElementType = 64, +>InElementType : TypeFormatFlags + } + const enum SymbolFormatFlags { +>SymbolFormatFlags : SymbolFormatFlags + + None = 0, +>None : SymbolFormatFlags + + WriteTypeParametersOrArguments = 1, +>WriteTypeParametersOrArguments : SymbolFormatFlags + + UseOnlyExternalAliasing = 2, +>UseOnlyExternalAliasing : SymbolFormatFlags + } + const enum SymbolAccessibility { +>SymbolAccessibility : SymbolAccessibility + + Accessible = 0, +>Accessible : SymbolAccessibility + + NotAccessible = 1, +>NotAccessible : SymbolAccessibility + + CannotBeNamed = 2, +>CannotBeNamed : SymbolAccessibility + } + interface SymbolVisibilityResult { +>SymbolVisibilityResult : SymbolVisibilityResult + + accessibility: SymbolAccessibility; +>accessibility : SymbolAccessibility +>SymbolAccessibility : SymbolAccessibility + + aliasesToMakeVisible?: ImportDeclaration[]; +>aliasesToMakeVisible : ImportDeclaration[] +>ImportDeclaration : ImportDeclaration + + errorSymbolName?: string; +>errorSymbolName : string + + errorNode?: Node; +>errorNode : Node +>Node : Node + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { +>SymbolAccessiblityResult : SymbolAccessiblityResult +>SymbolVisibilityResult : SymbolVisibilityResult + + errorModuleName?: string; +>errorModuleName : string + } + interface EmitResolver { +>EmitResolver : EmitResolver + + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; +>getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string +>container : EnumDeclaration | ModuleDeclaration +>ModuleDeclaration : ModuleDeclaration +>EnumDeclaration : EnumDeclaration + + getExpressionNamePrefix(node: Identifier): string; +>getExpressionNamePrefix : (node: Identifier) => string +>node : Identifier +>Identifier : Identifier + + getExportAssignmentName(node: SourceFile): string; +>getExportAssignmentName : (node: SourceFile) => string +>node : SourceFile +>SourceFile : SourceFile + + isReferencedImportDeclaration(node: ImportDeclaration): boolean; +>isReferencedImportDeclaration : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; +>isTopLevelValueImportWithEntityName : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + getNodeCheckFlags(node: Node): NodeCheckFlags; +>getNodeCheckFlags : (node: Node) => NodeCheckFlags +>node : Node +>Node : Node +>NodeCheckFlags : NodeCheckFlags + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + hasSemanticErrors(sourceFile?: SourceFile): boolean; +>hasSemanticErrors : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + + isDeclarationVisible(node: Declaration): boolean; +>isDeclarationVisible : (node: Declaration) => boolean +>node : Declaration +>Declaration : Declaration + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeTypeOfDeclaration : (declaration: VariableLikeDeclaration | AccessorDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>declaration : VariableLikeDeclaration | AccessorDeclaration +>AccessorDeclaration : AccessorDeclaration +>VariableLikeDeclaration : VariableLikeDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeReturnTypeOfSignatureDeclaration : (signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>signatureDeclaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; +>isSymbolAccessible : (symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) => SymbolAccessiblityResult +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>SymbolAccessiblityResult : SymbolAccessiblityResult + + isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; +>isEntityNameVisible : (entityName: Identifier | QualifiedName, enclosingDeclaration: Node) => SymbolVisibilityResult +>entityName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName +>enclosingDeclaration : Node +>Node : Node +>SymbolVisibilityResult : SymbolVisibilityResult + + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; +>getConstantValue : (node: PropertyAccessExpression | ElementAccessExpression) => number +>node : PropertyAccessExpression | ElementAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>ElementAccessExpression : ElementAccessExpression + + isUnknownIdentifier(location: Node, name: string): boolean; +>isUnknownIdentifier : (location: Node, name: string) => boolean +>location : Node +>Node : Node +>name : string + } + const enum SymbolFlags { +>SymbolFlags : SymbolFlags + + FunctionScopedVariable = 1, +>FunctionScopedVariable : SymbolFlags + + BlockScopedVariable = 2, +>BlockScopedVariable : SymbolFlags + + Property = 4, +>Property : SymbolFlags + + EnumMember = 8, +>EnumMember : SymbolFlags + + Function = 16, +>Function : SymbolFlags + + Class = 32, +>Class : SymbolFlags + + Interface = 64, +>Interface : SymbolFlags + + ConstEnum = 128, +>ConstEnum : SymbolFlags + + RegularEnum = 256, +>RegularEnum : SymbolFlags + + ValueModule = 512, +>ValueModule : SymbolFlags + + NamespaceModule = 1024, +>NamespaceModule : SymbolFlags + + TypeLiteral = 2048, +>TypeLiteral : SymbolFlags + + ObjectLiteral = 4096, +>ObjectLiteral : SymbolFlags + + Method = 8192, +>Method : SymbolFlags + + Constructor = 16384, +>Constructor : SymbolFlags + + GetAccessor = 32768, +>GetAccessor : SymbolFlags + + SetAccessor = 65536, +>SetAccessor : SymbolFlags + + Signature = 131072, +>Signature : SymbolFlags + + TypeParameter = 262144, +>TypeParameter : SymbolFlags + + TypeAlias = 524288, +>TypeAlias : SymbolFlags + + ExportValue = 1048576, +>ExportValue : SymbolFlags + + ExportType = 2097152, +>ExportType : SymbolFlags + + ExportNamespace = 4194304, +>ExportNamespace : SymbolFlags + + Import = 8388608, +>Import : SymbolFlags + + Instantiated = 16777216, +>Instantiated : SymbolFlags + + Merged = 33554432, +>Merged : SymbolFlags + + Transient = 67108864, +>Transient : SymbolFlags + + Prototype = 134217728, +>Prototype : SymbolFlags + + UnionProperty = 268435456, +>UnionProperty : SymbolFlags + + Optional = 536870912, +>Optional : SymbolFlags + + Enum = 384, +>Enum : SymbolFlags + + Variable = 3, +>Variable : SymbolFlags + + Value = 107455, +>Value : SymbolFlags + + Type = 793056, +>Type : SymbolFlags + + Namespace = 1536, +>Namespace : SymbolFlags + + Module = 1536, +>Module : SymbolFlags + + Accessor = 98304, +>Accessor : SymbolFlags + + FunctionScopedVariableExcludes = 107454, +>FunctionScopedVariableExcludes : SymbolFlags + + BlockScopedVariableExcludes = 107455, +>BlockScopedVariableExcludes : SymbolFlags + + ParameterExcludes = 107455, +>ParameterExcludes : SymbolFlags + + PropertyExcludes = 107455, +>PropertyExcludes : SymbolFlags + + EnumMemberExcludes = 107455, +>EnumMemberExcludes : SymbolFlags + + FunctionExcludes = 106927, +>FunctionExcludes : SymbolFlags + + ClassExcludes = 899583, +>ClassExcludes : SymbolFlags + + InterfaceExcludes = 792992, +>InterfaceExcludes : SymbolFlags + + RegularEnumExcludes = 899327, +>RegularEnumExcludes : SymbolFlags + + ConstEnumExcludes = 899967, +>ConstEnumExcludes : SymbolFlags + + ValueModuleExcludes = 106639, +>ValueModuleExcludes : SymbolFlags + + NamespaceModuleExcludes = 0, +>NamespaceModuleExcludes : SymbolFlags + + MethodExcludes = 99263, +>MethodExcludes : SymbolFlags + + GetAccessorExcludes = 41919, +>GetAccessorExcludes : SymbolFlags + + SetAccessorExcludes = 74687, +>SetAccessorExcludes : SymbolFlags + + TypeParameterExcludes = 530912, +>TypeParameterExcludes : SymbolFlags + + TypeAliasExcludes = 793056, +>TypeAliasExcludes : SymbolFlags + + ImportExcludes = 8388608, +>ImportExcludes : SymbolFlags + + ModuleMember = 8914931, +>ModuleMember : SymbolFlags + + ExportHasLocal = 944, +>ExportHasLocal : SymbolFlags + + HasLocals = 255504, +>HasLocals : SymbolFlags + + HasExports = 1952, +>HasExports : SymbolFlags + + HasMembers = 6240, +>HasMembers : SymbolFlags + + IsContainer = 262128, +>IsContainer : SymbolFlags + + PropertyOrAccessor = 98308, +>PropertyOrAccessor : SymbolFlags + + Export = 7340032, +>Export : SymbolFlags + } + interface Symbol { +>Symbol : Symbol + + flags: SymbolFlags; +>flags : SymbolFlags +>SymbolFlags : SymbolFlags + + name: string; +>name : string + + id?: number; +>id : number + + mergeId?: number; +>mergeId : number + + declarations?: Declaration[]; +>declarations : Declaration[] +>Declaration : Declaration + + parent?: Symbol; +>parent : Symbol +>Symbol : Symbol + + members?: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + exports?: SymbolTable; +>exports : SymbolTable +>SymbolTable : SymbolTable + + exportSymbol?: Symbol; +>exportSymbol : Symbol +>Symbol : Symbol + + valueDeclaration?: Declaration; +>valueDeclaration : Declaration +>Declaration : Declaration + + constEnumOnlyModule?: boolean; +>constEnumOnlyModule : boolean + } + interface SymbolLinks { +>SymbolLinks : SymbolLinks + + target?: Symbol; +>target : Symbol +>Symbol : Symbol + + type?: Type; +>type : Type +>Type : Type + + declaredType?: Type; +>declaredType : Type +>Type : Type + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + referenced?: boolean; +>referenced : boolean + + exportAssignSymbol?: Symbol; +>exportAssignSymbol : Symbol +>Symbol : Symbol + + unionType?: UnionType; +>unionType : UnionType +>UnionType : UnionType + } + interface TransientSymbol extends Symbol, SymbolLinks { +>TransientSymbol : TransientSymbol +>Symbol : Symbol +>SymbolLinks : SymbolLinks + } + interface SymbolTable { +>SymbolTable : SymbolTable + + [index: string]: Symbol; +>index : string +>Symbol : Symbol + } + const enum NodeCheckFlags { +>NodeCheckFlags : NodeCheckFlags + + TypeChecked = 1, +>TypeChecked : NodeCheckFlags + + LexicalThis = 2, +>LexicalThis : NodeCheckFlags + + CaptureThis = 4, +>CaptureThis : NodeCheckFlags + + EmitExtends = 8, +>EmitExtends : NodeCheckFlags + + SuperInstance = 16, +>SuperInstance : NodeCheckFlags + + SuperStatic = 32, +>SuperStatic : NodeCheckFlags + + ContextChecked = 64, +>ContextChecked : NodeCheckFlags + + EnumValuesComputed = 128, +>EnumValuesComputed : NodeCheckFlags + } + interface NodeLinks { +>NodeLinks : NodeLinks + + resolvedType?: Type; +>resolvedType : Type +>Type : Type + + resolvedSignature?: Signature; +>resolvedSignature : Signature +>Signature : Signature + + resolvedSymbol?: Symbol; +>resolvedSymbol : Symbol +>Symbol : Symbol + + flags?: NodeCheckFlags; +>flags : NodeCheckFlags +>NodeCheckFlags : NodeCheckFlags + + enumMemberValue?: number; +>enumMemberValue : number + + isIllegalTypeReferenceInConstraint?: boolean; +>isIllegalTypeReferenceInConstraint : boolean + + isVisible?: boolean; +>isVisible : boolean + + localModuleName?: string; +>localModuleName : string + + assignmentChecks?: Map; +>assignmentChecks : Map +>Map : Map + + hasReportedStatementInAmbientContext?: boolean; +>hasReportedStatementInAmbientContext : boolean + + importOnRightSide?: Symbol; +>importOnRightSide : Symbol +>Symbol : Symbol + } + const enum TypeFlags { +>TypeFlags : TypeFlags + + Any = 1, +>Any : TypeFlags + + String = 2, +>String : TypeFlags + + Number = 4, +>Number : TypeFlags + + Boolean = 8, +>Boolean : TypeFlags + + Void = 16, +>Void : TypeFlags + + Undefined = 32, +>Undefined : TypeFlags + + Null = 64, +>Null : TypeFlags + + Enum = 128, +>Enum : TypeFlags + + StringLiteral = 256, +>StringLiteral : TypeFlags + + TypeParameter = 512, +>TypeParameter : TypeFlags + + Class = 1024, +>Class : TypeFlags + + Interface = 2048, +>Interface : TypeFlags + + Reference = 4096, +>Reference : TypeFlags + + Tuple = 8192, +>Tuple : TypeFlags + + Union = 16384, +>Union : TypeFlags + + Anonymous = 32768, +>Anonymous : TypeFlags + + FromSignature = 65536, +>FromSignature : TypeFlags + + ObjectLiteral = 131072, +>ObjectLiteral : TypeFlags + + ContainsUndefinedOrNull = 262144, +>ContainsUndefinedOrNull : TypeFlags + + ContainsObjectLiteral = 524288, +>ContainsObjectLiteral : TypeFlags + + Intrinsic = 127, +>Intrinsic : TypeFlags + + Primitive = 510, +>Primitive : TypeFlags + + StringLike = 258, +>StringLike : TypeFlags + + NumberLike = 132, +>NumberLike : TypeFlags + + ObjectType = 48128, +>ObjectType : TypeFlags + + RequiresWidening = 786432, +>RequiresWidening : TypeFlags + } + interface Type { +>Type : Type + + flags: TypeFlags; +>flags : TypeFlags +>TypeFlags : TypeFlags + + id: number; +>id : number + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + } + interface IntrinsicType extends Type { +>IntrinsicType : IntrinsicType +>Type : Type + + intrinsicName: string; +>intrinsicName : string + } + interface StringLiteralType extends Type { +>StringLiteralType : StringLiteralType +>Type : Type + + text: string; +>text : string + } + interface ObjectType extends Type { +>ObjectType : ObjectType +>Type : Type + } + interface InterfaceType extends ObjectType { +>InterfaceType : InterfaceType +>ObjectType : ObjectType + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + baseTypes: ObjectType[]; +>baseTypes : ObjectType[] +>ObjectType : ObjectType + + declaredProperties: Symbol[]; +>declaredProperties : Symbol[] +>Symbol : Symbol + + declaredCallSignatures: Signature[]; +>declaredCallSignatures : Signature[] +>Signature : Signature + + declaredConstructSignatures: Signature[]; +>declaredConstructSignatures : Signature[] +>Signature : Signature + + declaredStringIndexType: Type; +>declaredStringIndexType : Type +>Type : Type + + declaredNumberIndexType: Type; +>declaredNumberIndexType : Type +>Type : Type + } + interface TypeReference extends ObjectType { +>TypeReference : TypeReference +>ObjectType : ObjectType + + target: GenericType; +>target : GenericType +>GenericType : GenericType + + typeArguments: Type[]; +>typeArguments : Type[] +>Type : Type + } + interface GenericType extends InterfaceType, TypeReference { +>GenericType : GenericType +>InterfaceType : InterfaceType +>TypeReference : TypeReference + + instantiations: Map; +>instantiations : Map +>Map : Map +>TypeReference : TypeReference + } + interface TupleType extends ObjectType { +>TupleType : TupleType +>ObjectType : ObjectType + + elementTypes: Type[]; +>elementTypes : Type[] +>Type : Type + + baseArrayType: TypeReference; +>baseArrayType : TypeReference +>TypeReference : TypeReference + } + interface UnionType extends Type { +>UnionType : UnionType +>Type : Type + + types: Type[]; +>types : Type[] +>Type : Type + + resolvedProperties: SymbolTable; +>resolvedProperties : SymbolTable +>SymbolTable : SymbolTable + } + interface ResolvedType extends ObjectType, UnionType { +>ResolvedType : ResolvedType +>ObjectType : ObjectType +>UnionType : UnionType + + members: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + properties: Symbol[]; +>properties : Symbol[] +>Symbol : Symbol + + callSignatures: Signature[]; +>callSignatures : Signature[] +>Signature : Signature + + constructSignatures: Signature[]; +>constructSignatures : Signature[] +>Signature : Signature + + stringIndexType: Type; +>stringIndexType : Type +>Type : Type + + numberIndexType: Type; +>numberIndexType : Type +>Type : Type + } + interface TypeParameter extends Type { +>TypeParameter : TypeParameter +>Type : Type + + constraint: Type; +>constraint : Type +>Type : Type + + target?: TypeParameter; +>target : TypeParameter +>TypeParameter : TypeParameter + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + } + const enum SignatureKind { +>SignatureKind : SignatureKind + + Call = 0, +>Call : SignatureKind + + Construct = 1, +>Construct : SignatureKind + } + interface Signature { +>Signature : Signature + + declaration: SignatureDeclaration; +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + parameters: Symbol[]; +>parameters : Symbol[] +>Symbol : Symbol + + resolvedReturnType: Type; +>resolvedReturnType : Type +>Type : Type + + minArgumentCount: number; +>minArgumentCount : number + + hasRestParameter: boolean; +>hasRestParameter : boolean + + hasStringLiterals: boolean; +>hasStringLiterals : boolean + + target?: Signature; +>target : Signature +>Signature : Signature + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + unionSignatures?: Signature[]; +>unionSignatures : Signature[] +>Signature : Signature + + erasedSignatureCache?: Signature; +>erasedSignatureCache : Signature +>Signature : Signature + + isolatedSignatureType?: ObjectType; +>isolatedSignatureType : ObjectType +>ObjectType : ObjectType + } + const enum IndexKind { +>IndexKind : IndexKind + + String = 0, +>String : IndexKind + + Number = 1, +>Number : IndexKind + } + interface TypeMapper { +>TypeMapper : TypeMapper + + (t: Type): Type; +>t : Type +>Type : Type +>Type : Type + } + interface TypeInferences { +>TypeInferences : TypeInferences + + primary: Type[]; +>primary : Type[] +>Type : Type + + secondary: Type[]; +>secondary : Type[] +>Type : Type + } + interface InferenceContext { +>InferenceContext : InferenceContext + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + inferUnionTypes: boolean; +>inferUnionTypes : boolean + + inferences: TypeInferences[]; +>inferences : TypeInferences[] +>TypeInferences : TypeInferences + + inferredTypes: Type[]; +>inferredTypes : Type[] +>Type : Type + + failedTypeParameterIndex?: number; +>failedTypeParameterIndex : number + } + interface DiagnosticMessage { +>DiagnosticMessage : DiagnosticMessage + + key: string; +>key : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + isEarly?: boolean; +>isEarly : boolean + } + interface DiagnosticMessageChain { +>DiagnosticMessageChain : DiagnosticMessageChain + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + next?: DiagnosticMessageChain; +>next : DiagnosticMessageChain +>DiagnosticMessageChain : DiagnosticMessageChain + } + interface Diagnostic { +>Diagnostic : Diagnostic + + file: SourceFile; +>file : SourceFile +>SourceFile : SourceFile + + start: number; +>start : number + + length: number; +>length : number + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; +>isEarly : boolean + } + enum DiagnosticCategory { +>DiagnosticCategory : DiagnosticCategory + + Warning = 0, +>Warning : DiagnosticCategory + + Error = 1, +>Error : DiagnosticCategory + + Message = 2, +>Message : DiagnosticCategory + } + interface CompilerOptions { +>CompilerOptions : CompilerOptions + + allowNonTsExtensions?: boolean; +>allowNonTsExtensions : boolean + + charset?: string; +>charset : string + + codepage?: number; +>codepage : number + + declaration?: boolean; +>declaration : boolean + + diagnostics?: boolean; +>diagnostics : boolean + + emitBOM?: boolean; +>emitBOM : boolean + + help?: boolean; +>help : boolean + + listFiles?: boolean; +>listFiles : boolean + + locale?: string; +>locale : string + + mapRoot?: string; +>mapRoot : string + + module?: ModuleKind; +>module : ModuleKind +>ModuleKind : ModuleKind + + noEmit?: boolean; +>noEmit : boolean + + noEmitOnError?: boolean; +>noEmitOnError : boolean + + noErrorTruncation?: boolean; +>noErrorTruncation : boolean + + noImplicitAny?: boolean; +>noImplicitAny : boolean + + noLib?: boolean; +>noLib : boolean + + noLibCheck?: boolean; +>noLibCheck : boolean + + noResolve?: boolean; +>noResolve : boolean + + out?: string; +>out : string + + outDir?: string; +>outDir : string + + preserveConstEnums?: boolean; +>preserveConstEnums : boolean + + project?: string; +>project : string + + removeComments?: boolean; +>removeComments : boolean + + sourceMap?: boolean; +>sourceMap : boolean + + sourceRoot?: string; +>sourceRoot : string + + suppressImplicitAnyIndexErrors?: boolean; +>suppressImplicitAnyIndexErrors : boolean + + target?: ScriptTarget; +>target : ScriptTarget +>ScriptTarget : ScriptTarget + + version?: boolean; +>version : boolean + + watch?: boolean; +>watch : boolean + + [option: string]: string | number | boolean; +>option : string + } + const enum ModuleKind { +>ModuleKind : ModuleKind + + None = 0, +>None : ModuleKind + + CommonJS = 1, +>CommonJS : ModuleKind + + AMD = 2, +>AMD : ModuleKind + } + interface LineAndCharacter { +>LineAndCharacter : LineAndCharacter + + line: number; +>line : number + + character: number; +>character : number + } + const enum ScriptTarget { +>ScriptTarget : ScriptTarget + + ES3 = 0, +>ES3 : ScriptTarget + + ES5 = 1, +>ES5 : ScriptTarget + + ES6 = 2, +>ES6 : ScriptTarget + + Latest = 2, +>Latest : ScriptTarget + } + interface ParsedCommandLine { +>ParsedCommandLine : ParsedCommandLine + + options: CompilerOptions; +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + filenames: string[]; +>filenames : string[] + + errors: Diagnostic[]; +>errors : Diagnostic[] +>Diagnostic : Diagnostic + } + interface CommandLineOption { +>CommandLineOption : CommandLineOption + + name: string; +>name : string + + type: string | Map; +>type : string | Map +>Map : Map + + isFilePath?: boolean; +>isFilePath : boolean + + shortName?: string; +>shortName : string + + description?: DiagnosticMessage; +>description : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + paramType?: DiagnosticMessage; +>paramType : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + error?: DiagnosticMessage; +>error : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + } + const enum CharacterCodes { +>CharacterCodes : CharacterCodes + + nullCharacter = 0, +>nullCharacter : CharacterCodes + + maxAsciiCharacter = 127, +>maxAsciiCharacter : CharacterCodes + + lineFeed = 10, +>lineFeed : CharacterCodes + + carriageReturn = 13, +>carriageReturn : CharacterCodes + + lineSeparator = 8232, +>lineSeparator : CharacterCodes + + paragraphSeparator = 8233, +>paragraphSeparator : CharacterCodes + + nextLine = 133, +>nextLine : CharacterCodes + + space = 32, +>space : CharacterCodes + + nonBreakingSpace = 160, +>nonBreakingSpace : CharacterCodes + + enQuad = 8192, +>enQuad : CharacterCodes + + emQuad = 8193, +>emQuad : CharacterCodes + + enSpace = 8194, +>enSpace : CharacterCodes + + emSpace = 8195, +>emSpace : CharacterCodes + + threePerEmSpace = 8196, +>threePerEmSpace : CharacterCodes + + fourPerEmSpace = 8197, +>fourPerEmSpace : CharacterCodes + + sixPerEmSpace = 8198, +>sixPerEmSpace : CharacterCodes + + figureSpace = 8199, +>figureSpace : CharacterCodes + + punctuationSpace = 8200, +>punctuationSpace : CharacterCodes + + thinSpace = 8201, +>thinSpace : CharacterCodes + + hairSpace = 8202, +>hairSpace : CharacterCodes + + zeroWidthSpace = 8203, +>zeroWidthSpace : CharacterCodes + + narrowNoBreakSpace = 8239, +>narrowNoBreakSpace : CharacterCodes + + ideographicSpace = 12288, +>ideographicSpace : CharacterCodes + + mathematicalSpace = 8287, +>mathematicalSpace : CharacterCodes + + ogham = 5760, +>ogham : CharacterCodes + + _ = 95, +>_ : CharacterCodes + + $ = 36, +>$ : CharacterCodes + + _0 = 48, +>_0 : CharacterCodes + + _1 = 49, +>_1 : CharacterCodes + + _2 = 50, +>_2 : CharacterCodes + + _3 = 51, +>_3 : CharacterCodes + + _4 = 52, +>_4 : CharacterCodes + + _5 = 53, +>_5 : CharacterCodes + + _6 = 54, +>_6 : CharacterCodes + + _7 = 55, +>_7 : CharacterCodes + + _8 = 56, +>_8 : CharacterCodes + + _9 = 57, +>_9 : CharacterCodes + + a = 97, +>a : CharacterCodes + + b = 98, +>b : CharacterCodes + + c = 99, +>c : CharacterCodes + + d = 100, +>d : CharacterCodes + + e = 101, +>e : CharacterCodes + + f = 102, +>f : CharacterCodes + + g = 103, +>g : CharacterCodes + + h = 104, +>h : CharacterCodes + + i = 105, +>i : CharacterCodes + + j = 106, +>j : CharacterCodes + + k = 107, +>k : CharacterCodes + + l = 108, +>l : CharacterCodes + + m = 109, +>m : CharacterCodes + + n = 110, +>n : CharacterCodes + + o = 111, +>o : CharacterCodes + + p = 112, +>p : CharacterCodes + + q = 113, +>q : CharacterCodes + + r = 114, +>r : CharacterCodes + + s = 115, +>s : CharacterCodes + + t = 116, +>t : CharacterCodes + + u = 117, +>u : CharacterCodes + + v = 118, +>v : CharacterCodes + + w = 119, +>w : CharacterCodes + + x = 120, +>x : CharacterCodes + + y = 121, +>y : CharacterCodes + + z = 122, +>z : CharacterCodes + + A = 65, +>A : CharacterCodes + + B = 66, +>B : CharacterCodes + + C = 67, +>C : CharacterCodes + + D = 68, +>D : CharacterCodes + + E = 69, +>E : CharacterCodes + + F = 70, +>F : CharacterCodes + + G = 71, +>G : CharacterCodes + + H = 72, +>H : CharacterCodes + + I = 73, +>I : CharacterCodes + + J = 74, +>J : CharacterCodes + + K = 75, +>K : CharacterCodes + + L = 76, +>L : CharacterCodes + + M = 77, +>M : CharacterCodes + + N = 78, +>N : CharacterCodes + + O = 79, +>O : CharacterCodes + + P = 80, +>P : CharacterCodes + + Q = 81, +>Q : CharacterCodes + + R = 82, +>R : CharacterCodes + + S = 83, +>S : CharacterCodes + + T = 84, +>T : CharacterCodes + + U = 85, +>U : CharacterCodes + + V = 86, +>V : CharacterCodes + + W = 87, +>W : CharacterCodes + + X = 88, +>X : CharacterCodes + + Y = 89, +>Y : CharacterCodes + + Z = 90, +>Z : CharacterCodes + + ampersand = 38, +>ampersand : CharacterCodes + + asterisk = 42, +>asterisk : CharacterCodes + + at = 64, +>at : CharacterCodes + + backslash = 92, +>backslash : CharacterCodes + + backtick = 96, +>backtick : CharacterCodes + + bar = 124, +>bar : CharacterCodes + + caret = 94, +>caret : CharacterCodes + + closeBrace = 125, +>closeBrace : CharacterCodes + + closeBracket = 93, +>closeBracket : CharacterCodes + + closeParen = 41, +>closeParen : CharacterCodes + + colon = 58, +>colon : CharacterCodes + + comma = 44, +>comma : CharacterCodes + + dot = 46, +>dot : CharacterCodes + + doubleQuote = 34, +>doubleQuote : CharacterCodes + + equals = 61, +>equals : CharacterCodes + + exclamation = 33, +>exclamation : CharacterCodes + + greaterThan = 62, +>greaterThan : CharacterCodes + + lessThan = 60, +>lessThan : CharacterCodes + + minus = 45, +>minus : CharacterCodes + + openBrace = 123, +>openBrace : CharacterCodes + + openBracket = 91, +>openBracket : CharacterCodes + + openParen = 40, +>openParen : CharacterCodes + + percent = 37, +>percent : CharacterCodes + + plus = 43, +>plus : CharacterCodes + + question = 63, +>question : CharacterCodes + + semicolon = 59, +>semicolon : CharacterCodes + + singleQuote = 39, +>singleQuote : CharacterCodes + + slash = 47, +>slash : CharacterCodes + + tilde = 126, +>tilde : CharacterCodes + + backspace = 8, +>backspace : CharacterCodes + + formFeed = 12, +>formFeed : CharacterCodes + + byteOrderMark = 65279, +>byteOrderMark : CharacterCodes + + tab = 9, +>tab : CharacterCodes + + verticalTab = 11, +>verticalTab : CharacterCodes + } + interface CancellationToken { +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + } + interface CompilerHost { +>CompilerHost : CompilerHost + + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; +>getSourceFile : (filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void) => SourceFile +>filename : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>onError : (message: string) => void +>message : string +>SourceFile : SourceFile + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; +>writeFile : (filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void) => void +>filename : string +>data : string +>writeByteOrderMark : boolean +>onError : (message: string) => void +>message : string + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getCanonicalFileName(fileName: string): string; +>getCanonicalFileName : (fileName: string) => string +>fileName : string + + useCaseSensitiveFileNames(): boolean; +>useCaseSensitiveFileNames : () => boolean + + getNewLine(): string; +>getNewLine : () => string + } + interface TextSpan { +>TextSpan : TextSpan + + start: number; +>start : number + + length: number; +>length : number + } + interface TextChangeRange { +>TextChangeRange : TextChangeRange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newLength: number; +>newLength : number + } +} +declare module "typescript" { + interface ErrorCallback { +>ErrorCallback : ErrorCallback + + (message: DiagnosticMessage, length: number): void; +>message : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage +>length : number + } + interface Scanner { +>Scanner : Scanner + + getStartPos(): number; +>getStartPos : () => number + + getToken(): SyntaxKind; +>getToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + getTextPos(): number; +>getTextPos : () => number + + getTokenPos(): number; +>getTokenPos : () => number + + getTokenText(): string; +>getTokenText : () => string + + getTokenValue(): string; +>getTokenValue : () => string + + hasPrecedingLineBreak(): boolean; +>hasPrecedingLineBreak : () => boolean + + isIdentifier(): boolean; +>isIdentifier : () => boolean + + isReservedWord(): boolean; +>isReservedWord : () => boolean + + isUnterminated(): boolean; +>isUnterminated : () => boolean + + reScanGreaterToken(): SyntaxKind; +>reScanGreaterToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanSlashToken(): SyntaxKind; +>reScanSlashToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanTemplateToken(): SyntaxKind; +>reScanTemplateToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + scan(): SyntaxKind; +>scan : () => SyntaxKind +>SyntaxKind : SyntaxKind + + setText(text: string): void; +>setText : (text: string) => void +>text : string + + setTextPos(textPos: number): void; +>setTextPos : (textPos: number) => void +>textPos : number + + lookAhead(callback: () => T): T; +>lookAhead : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + + tryScan(callback: () => T): T; +>tryScan : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + } + function tokenToString(t: SyntaxKind): string; +>tokenToString : (t: SyntaxKind) => string +>t : SyntaxKind +>SyntaxKind : SyntaxKind + + function computeLineStarts(text: string): number[]; +>computeLineStarts : (text: string) => number[] +>text : string + + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; +>getPositionFromLineAndCharacter : (lineStarts: number[], line: number, character: number) => number +>lineStarts : number[] +>line : number +>character : number + + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { +>getLineAndCharacterOfPosition : (lineStarts: number[], position: number) => { line: number; character: number; } +>lineStarts : number[] +>position : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function positionToLineAndCharacter(text: string, pos: number): { +>positionToLineAndCharacter : (text: string, pos: number) => { line: number; character: number; } +>text : string +>pos : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function isWhiteSpace(ch: number): boolean; +>isWhiteSpace : (ch: number) => boolean +>ch : number + + function isLineBreak(ch: number): boolean; +>isLineBreak : (ch: number) => boolean +>ch : number + + function isOctalDigit(ch: number): boolean; +>isOctalDigit : (ch: number) => boolean +>ch : number + + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; +>skipTrivia : (text: string, pos: number, stopAfterLineBreak?: boolean) => number +>text : string +>pos : number +>stopAfterLineBreak : boolean + + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; +>getLeadingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; +>getTrailingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierStart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierPart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +>createScanner : (languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback) => Scanner +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>skipTrivia : boolean +>text : string +>onError : ErrorCallback +>ErrorCallback : ErrorCallback +>Scanner : Scanner +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; +>getNodeConstructor : (kind: SyntaxKind) => new () => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function createNode(kind: SyntaxKind): Node; +>createNode : (kind: SyntaxKind) => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; +>forEachChild : (node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T) => T +>T : T +>node : Node +>Node : Node +>cbNode : (node: Node) => T +>node : Node +>Node : Node +>T : T +>cbNodeArray : (nodes: Node[]) => T +>nodes : Node[] +>Node : Node +>T : T +>T : T + + function modifierToFlag(token: SyntaxKind): NodeFlags; +>modifierToFlag : (token: SyntaxKind) => NodeFlags +>token : SyntaxKind +>SyntaxKind : SyntaxKind +>NodeFlags : NodeFlags + + function isEvalOrArgumentsIdentifier(node: Node): boolean; +>isEvalOrArgumentsIdentifier : (node: Node) => boolean +>node : Node +>Node : Node + + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; +>createSourceFile : (filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean) => SourceFile +>filename : string +>sourceText : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>setParentNodes : boolean +>SourceFile : SourceFile + + function isLeftHandSideExpression(expr: Expression): boolean; +>isLeftHandSideExpression : (expr: Expression) => boolean +>expr : Expression +>Expression : Expression + + function isAssignmentOperator(token: SyntaxKind): boolean; +>isAssignmentOperator : (token: SyntaxKind) => boolean +>token : SyntaxKind +>SyntaxKind : SyntaxKind +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +>createTypeChecker : (host: TypeCheckerHost, produceDiagnostics: boolean) => TypeChecker +>host : TypeCheckerHost +>TypeCheckerHost : TypeCheckerHost +>produceDiagnostics : boolean +>TypeChecker : TypeChecker +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; +>createCompilerHost : (options: CompilerOptions) => CompilerHost +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>CompilerHost : CompilerHost + + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +>createProgram : (rootNames: string[], options: CompilerOptions, host: CompilerHost) => Program +>rootNames : string[] +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>host : CompilerHost +>CompilerHost : CompilerHost +>Program : Program +} +declare module "typescript" { + var servicesVersion: string; +>servicesVersion : string + + interface Node { +>Node : Node + + getSourceFile(): SourceFile; +>getSourceFile : () => SourceFile +>SourceFile : SourceFile + + getChildCount(sourceFile?: SourceFile): number; +>getChildCount : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getChildAt(index: number, sourceFile?: SourceFile): Node; +>getChildAt : (index: number, sourceFile?: SourceFile) => Node +>index : number +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getChildren(sourceFile?: SourceFile): Node[]; +>getChildren : (sourceFile?: SourceFile) => Node[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getStart(sourceFile?: SourceFile): number; +>getStart : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullStart(): number; +>getFullStart : () => number + + getEnd(): number; +>getEnd : () => number + + getWidth(sourceFile?: SourceFile): number; +>getWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullWidth(): number; +>getFullWidth : () => number + + getLeadingTriviaWidth(sourceFile?: SourceFile): number; +>getLeadingTriviaWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullText(sourceFile?: SourceFile): string; +>getFullText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getText(sourceFile?: SourceFile): string; +>getText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFirstToken(sourceFile?: SourceFile): Node; +>getFirstToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getLastToken(sourceFile?: SourceFile): Node; +>getLastToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + } + interface Symbol { +>Symbol : Symbol + + getFlags(): SymbolFlags; +>getFlags : () => SymbolFlags +>SymbolFlags : SymbolFlags + + getName(): string; +>getName : () => string + + getDeclarations(): Declaration[]; +>getDeclarations : () => Declaration[] +>Declaration : Declaration + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface Type { +>Type : Type + + getFlags(): TypeFlags; +>getFlags : () => TypeFlags +>TypeFlags : TypeFlags + + getSymbol(): Symbol; +>getSymbol : () => Symbol +>Symbol : Symbol + + getProperties(): Symbol[]; +>getProperties : () => Symbol[] +>Symbol : Symbol + + getProperty(propertyName: string): Symbol; +>getProperty : (propertyName: string) => Symbol +>propertyName : string +>Symbol : Symbol + + getApparentProperties(): Symbol[]; +>getApparentProperties : () => Symbol[] +>Symbol : Symbol + + getCallSignatures(): Signature[]; +>getCallSignatures : () => Signature[] +>Signature : Signature + + getConstructSignatures(): Signature[]; +>getConstructSignatures : () => Signature[] +>Signature : Signature + + getStringIndexType(): Type; +>getStringIndexType : () => Type +>Type : Type + + getNumberIndexType(): Type; +>getNumberIndexType : () => Type +>Type : Type + } + interface Signature { +>Signature : Signature + + getDeclaration(): SignatureDeclaration; +>getDeclaration : () => SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + getTypeParameters(): Type[]; +>getTypeParameters : () => Type[] +>Type : Type + + getParameters(): Symbol[]; +>getParameters : () => Symbol[] +>Symbol : Symbol + + getReturnType(): Type; +>getReturnType : () => Type +>Type : Type + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface SourceFile { +>SourceFile : SourceFile + + version: string; +>version : string + + scriptSnapshot: IScriptSnapshot; +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot + + nameTable: Map; +>nameTable : Map +>Map : Map + + getNamedDeclarations(): Declaration[]; +>getNamedDeclarations : () => Declaration[] +>Declaration : Declaration + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { +>IScriptSnapshot : IScriptSnapshot + + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; +>getText : (start: number, end: number) => string +>start : number +>end : number + + /** Gets the length of this script snapshot. */ + getLength(): number; +>getLength : () => number + + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; +>getChangeRange : (oldSnapshot: IScriptSnapshot) => TextChangeRange +>oldSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>TextChangeRange : TextChangeRange + } + module ScriptSnapshot { +>ScriptSnapshot : typeof ScriptSnapshot + + function fromString(text: string): IScriptSnapshot; +>fromString : (text: string) => IScriptSnapshot +>text : string +>IScriptSnapshot : IScriptSnapshot + } + interface PreProcessedFileInfo { +>PreProcessedFileInfo : PreProcessedFileInfo + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + importedFiles: FileReference[]; +>importedFiles : FileReference[] +>FileReference : FileReference + + isLibFile: boolean; +>isLibFile : boolean + } + interface LanguageServiceHost { +>LanguageServiceHost : LanguageServiceHost + + getCompilationSettings(): CompilerOptions; +>getCompilationSettings : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getNewLine?(): string; +>getNewLine : () => string + + getScriptFileNames(): string[]; +>getScriptFileNames : () => string[] + + getScriptVersion(fileName: string): string; +>getScriptVersion : (fileName: string) => string +>fileName : string + + getScriptSnapshot(fileName: string): IScriptSnapshot; +>getScriptSnapshot : (fileName: string) => IScriptSnapshot +>fileName : string +>IScriptSnapshot : IScriptSnapshot + + getLocalizedDiagnosticMessages?(): any; +>getLocalizedDiagnosticMessages : () => any + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + log?(s: string): void; +>log : (s: string) => void +>s : string + + trace?(s: string): void; +>trace : (s: string) => void +>s : string + + error?(s: string): void; +>error : (s: string) => void +>s : string + } + interface LanguageService { +>LanguageService : LanguageService + + cleanupSemanticCache(): void; +>cleanupSemanticCache : () => void + + getSyntacticDiagnostics(fileName: string): Diagnostic[]; +>getSyntacticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getSemanticDiagnostics(fileName: string): Diagnostic[]; +>getSemanticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getCompilerOptionsDiagnostics(): Diagnostic[]; +>getCompilerOptionsDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSyntacticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSemanticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; +>getCompletionsAtPosition : (fileName: string, position: number) => CompletionInfo +>fileName : string +>position : number +>CompletionInfo : CompletionInfo + + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; +>getCompletionEntryDetails : (fileName: string, position: number, entryName: string) => CompletionEntryDetails +>fileName : string +>position : number +>entryName : string +>CompletionEntryDetails : CompletionEntryDetails + + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; +>getQuickInfoAtPosition : (fileName: string, position: number) => QuickInfo +>fileName : string +>position : number +>QuickInfo : QuickInfo + + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; +>getNameOrDottedNameSpan : (fileName: string, startPos: number, endPos: number) => TextSpan +>fileName : string +>startPos : number +>endPos : number +>TextSpan : TextSpan + + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; +>getBreakpointStatementAtPosition : (fileName: string, position: number) => TextSpan +>fileName : string +>position : number +>TextSpan : TextSpan + + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; +>getSignatureHelpItems : (fileName: string, position: number) => SignatureHelpItems +>fileName : string +>position : number +>SignatureHelpItems : SignatureHelpItems + + getRenameInfo(fileName: string, position: number): RenameInfo; +>getRenameInfo : (fileName: string, position: number) => RenameInfo +>fileName : string +>position : number +>RenameInfo : RenameInfo + + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; +>findRenameLocations : (fileName: string, position: number, findInStrings: boolean, findInComments: boolean) => RenameLocation[] +>fileName : string +>position : number +>findInStrings : boolean +>findInComments : boolean +>RenameLocation : RenameLocation + + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; +>getDefinitionAtPosition : (fileName: string, position: number) => DefinitionInfo[] +>fileName : string +>position : number +>DefinitionInfo : DefinitionInfo + + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getReferencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getOccurrencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getNavigateToItems(searchValue: string): NavigateToItem[]; +>getNavigateToItems : (searchValue: string) => NavigateToItem[] +>searchValue : string +>NavigateToItem : NavigateToItem + + getNavigationBarItems(fileName: string): NavigationBarItem[]; +>getNavigationBarItems : (fileName: string) => NavigationBarItem[] +>fileName : string +>NavigationBarItem : NavigationBarItem + + getOutliningSpans(fileName: string): OutliningSpan[]; +>getOutliningSpans : (fileName: string) => OutliningSpan[] +>fileName : string +>OutliningSpan : OutliningSpan + + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; +>getTodoComments : (fileName: string, descriptors: TodoCommentDescriptor[]) => TodoComment[] +>fileName : string +>descriptors : TodoCommentDescriptor[] +>TodoCommentDescriptor : TodoCommentDescriptor +>TodoComment : TodoComment + + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; +>getBraceMatchingAtPosition : (fileName: string, position: number) => TextSpan[] +>fileName : string +>position : number +>TextSpan : TextSpan + + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; +>getIndentationAtPosition : (fileName: string, position: number, options: EditorOptions) => number +>fileName : string +>position : number +>options : EditorOptions +>EditorOptions : EditorOptions + + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForRange : (fileName: string, start: number, end: number, options: FormatCodeOptions) => TextChange[] +>fileName : string +>start : number +>end : number +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForDocument : (fileName: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsAfterKeystroke : (fileName: string, position: number, key: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>position : number +>key : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getEmitOutput(fileName: string): EmitOutput; +>getEmitOutput : (fileName: string) => EmitOutput +>fileName : string +>EmitOutput : EmitOutput + + getProgram(): Program; +>getProgram : () => Program +>Program : Program + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + dispose(): void; +>dispose : () => void + } + interface ClassifiedSpan { +>ClassifiedSpan : ClassifiedSpan + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + classificationType: string; +>classificationType : string + } + interface NavigationBarItem { +>NavigationBarItem : NavigationBarItem + + text: string; +>text : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + spans: TextSpan[]; +>spans : TextSpan[] +>TextSpan : TextSpan + + childItems: NavigationBarItem[]; +>childItems : NavigationBarItem[] +>NavigationBarItem : NavigationBarItem + + indent: number; +>indent : number + + bolded: boolean; +>bolded : boolean + + grayed: boolean; +>grayed : boolean + } + interface TodoCommentDescriptor { +>TodoCommentDescriptor : TodoCommentDescriptor + + text: string; +>text : string + + priority: number; +>priority : number + } + interface TodoComment { +>TodoComment : TodoComment + + descriptor: TodoCommentDescriptor; +>descriptor : TodoCommentDescriptor +>TodoCommentDescriptor : TodoCommentDescriptor + + message: string; +>message : string + + position: number; +>position : number + } + class TextChange { +>TextChange : TextChange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newText: string; +>newText : string + } + interface RenameLocation { +>RenameLocation : RenameLocation + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + } + interface ReferenceEntry { +>ReferenceEntry : ReferenceEntry + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + + isWriteAccess: boolean; +>isWriteAccess : boolean + } + interface NavigateToItem { +>NavigateToItem : NavigateToItem + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + matchKind: string; +>matchKind : string + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + containerName: string; +>containerName : string + + containerKind: string; +>containerKind : string + } + interface EditorOptions { +>EditorOptions : EditorOptions + + IndentSize: number; +>IndentSize : number + + TabSize: number; +>TabSize : number + + NewLineCharacter: string; +>NewLineCharacter : string + + ConvertTabsToSpaces: boolean; +>ConvertTabsToSpaces : boolean + } + interface FormatCodeOptions extends EditorOptions { +>FormatCodeOptions : FormatCodeOptions +>EditorOptions : EditorOptions + + InsertSpaceAfterCommaDelimiter: boolean; +>InsertSpaceAfterCommaDelimiter : boolean + + InsertSpaceAfterSemicolonInForStatements: boolean; +>InsertSpaceAfterSemicolonInForStatements : boolean + + InsertSpaceBeforeAndAfterBinaryOperators: boolean; +>InsertSpaceBeforeAndAfterBinaryOperators : boolean + + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; +>InsertSpaceAfterKeywordsInControlFlowStatements : boolean + + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; +>InsertSpaceAfterFunctionKeywordForAnonymousFunctions : boolean + + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; +>InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis : boolean + + PlaceOpenBraceOnNewLineForFunctions: boolean; +>PlaceOpenBraceOnNewLineForFunctions : boolean + + PlaceOpenBraceOnNewLineForControlBlocks: boolean; +>PlaceOpenBraceOnNewLineForControlBlocks : boolean + } + interface DefinitionInfo { +>DefinitionInfo : DefinitionInfo + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + kind: string; +>kind : string + + name: string; +>name : string + + containerKind: string; +>containerKind : string + + containerName: string; +>containerName : string + } + enum SymbolDisplayPartKind { +>SymbolDisplayPartKind : SymbolDisplayPartKind + + aliasName = 0, +>aliasName : SymbolDisplayPartKind + + className = 1, +>className : SymbolDisplayPartKind + + enumName = 2, +>enumName : SymbolDisplayPartKind + + fieldName = 3, +>fieldName : SymbolDisplayPartKind + + interfaceName = 4, +>interfaceName : SymbolDisplayPartKind + + keyword = 5, +>keyword : SymbolDisplayPartKind + + lineBreak = 6, +>lineBreak : SymbolDisplayPartKind + + numericLiteral = 7, +>numericLiteral : SymbolDisplayPartKind + + stringLiteral = 8, +>stringLiteral : SymbolDisplayPartKind + + localName = 9, +>localName : SymbolDisplayPartKind + + methodName = 10, +>methodName : SymbolDisplayPartKind + + moduleName = 11, +>moduleName : SymbolDisplayPartKind + + operator = 12, +>operator : SymbolDisplayPartKind + + parameterName = 13, +>parameterName : SymbolDisplayPartKind + + propertyName = 14, +>propertyName : SymbolDisplayPartKind + + punctuation = 15, +>punctuation : SymbolDisplayPartKind + + space = 16, +>space : SymbolDisplayPartKind + + text = 17, +>text : SymbolDisplayPartKind + + typeParameterName = 18, +>typeParameterName : SymbolDisplayPartKind + + enumMemberName = 19, +>enumMemberName : SymbolDisplayPartKind + + functionName = 20, +>functionName : SymbolDisplayPartKind + + regularExpressionLiteral = 21, +>regularExpressionLiteral : SymbolDisplayPartKind + } + interface SymbolDisplayPart { +>SymbolDisplayPart : SymbolDisplayPart + + text: string; +>text : string + + kind: string; +>kind : string + } + interface QuickInfo { +>QuickInfo : QuickInfo + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface RenameInfo { +>RenameInfo : RenameInfo + + canRename: boolean; +>canRename : boolean + + localizedErrorMessage: string; +>localizedErrorMessage : string + + displayName: string; +>displayName : string + + fullDisplayName: string; +>fullDisplayName : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + triggerSpan: TextSpan; +>triggerSpan : TextSpan +>TextSpan : TextSpan + } + interface SignatureHelpParameter { +>SignatureHelpParameter : SignatureHelpParameter + + name: string; +>name : string + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + isOptional: boolean; +>isOptional : boolean + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { +>SignatureHelpItem : SignatureHelpItem + + isVariadic: boolean; +>isVariadic : boolean + + prefixDisplayParts: SymbolDisplayPart[]; +>prefixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + suffixDisplayParts: SymbolDisplayPart[]; +>suffixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + separatorDisplayParts: SymbolDisplayPart[]; +>separatorDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + parameters: SignatureHelpParameter[]; +>parameters : SignatureHelpParameter[] +>SignatureHelpParameter : SignatureHelpParameter + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { +>SignatureHelpItems : SignatureHelpItems + + items: SignatureHelpItem[]; +>items : SignatureHelpItem[] +>SignatureHelpItem : SignatureHelpItem + + applicableSpan: TextSpan; +>applicableSpan : TextSpan +>TextSpan : TextSpan + + selectedItemIndex: number; +>selectedItemIndex : number + + argumentIndex: number; +>argumentIndex : number + + argumentCount: number; +>argumentCount : number + } + interface CompletionInfo { +>CompletionInfo : CompletionInfo + + isMemberCompletion: boolean; +>isMemberCompletion : boolean + + entries: CompletionEntry[]; +>entries : CompletionEntry[] +>CompletionEntry : CompletionEntry + } + interface CompletionEntry { +>CompletionEntry : CompletionEntry + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + } + interface CompletionEntryDetails { +>CompletionEntryDetails : CompletionEntryDetails + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface OutliningSpan { +>OutliningSpan : OutliningSpan + + /** The span of the document to actually collapse. */ + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; +>hintSpan : TextSpan +>TextSpan : TextSpan + + /** The text to display in the editor for the collapsed region. */ + bannerText: string; +>bannerText : string + + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; +>autoCollapse : boolean + } + interface EmitOutput { +>EmitOutput : EmitOutput + + outputFiles: OutputFile[]; +>outputFiles : OutputFile[] +>OutputFile : OutputFile + + emitOutputStatus: EmitReturnStatus; +>emitOutputStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + } + const enum OutputFileType { +>OutputFileType : OutputFileType + + JavaScript = 0, +>JavaScript : OutputFileType + + SourceMap = 1, +>SourceMap : OutputFileType + + Declaration = 2, +>Declaration : OutputFileType + } + interface OutputFile { +>OutputFile : OutputFile + + name: string; +>name : string + + writeByteOrderMark: boolean; +>writeByteOrderMark : boolean + + text: string; +>text : string + } + const enum EndOfLineState { +>EndOfLineState : EndOfLineState + + Start = 0, +>Start : EndOfLineState + + InMultiLineCommentTrivia = 1, +>InMultiLineCommentTrivia : EndOfLineState + + InSingleQuoteStringLiteral = 2, +>InSingleQuoteStringLiteral : EndOfLineState + + InDoubleQuoteStringLiteral = 3, +>InDoubleQuoteStringLiteral : EndOfLineState + } + enum TokenClass { +>TokenClass : TokenClass + + Punctuation = 0, +>Punctuation : TokenClass + + Keyword = 1, +>Keyword : TokenClass + + Operator = 2, +>Operator : TokenClass + + Comment = 3, +>Comment : TokenClass + + Whitespace = 4, +>Whitespace : TokenClass + + Identifier = 5, +>Identifier : TokenClass + + NumberLiteral = 6, +>NumberLiteral : TokenClass + + StringLiteral = 7, +>StringLiteral : TokenClass + + RegExpLiteral = 8, +>RegExpLiteral : TokenClass + } + interface ClassificationResult { +>ClassificationResult : ClassificationResult + + finalLexState: EndOfLineState; +>finalLexState : EndOfLineState +>EndOfLineState : EndOfLineState + + entries: ClassificationInfo[]; +>entries : ClassificationInfo[] +>ClassificationInfo : ClassificationInfo + } + interface ClassificationInfo { +>ClassificationInfo : ClassificationInfo + + length: number; +>length : number + + classification: TokenClass; +>classification : TokenClass +>TokenClass : TokenClass + } + interface Classifier { +>Classifier : Classifier + + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; +>getClassificationsForLine : (text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean) => ClassificationResult +>text : string +>lexState : EndOfLineState +>EndOfLineState : EndOfLineState +>classifyKeywordsInGenerics : boolean +>ClassificationResult : ClassificationResult + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { +>DocumentRegistry : DocumentRegistry + + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; +>acquireDocument : (filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string) => SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>SourceFile : SourceFile + + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateDocument : (sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; +>releaseDocument : (filename: string, compilationSettings: CompilerOptions) => void +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions + } + class ScriptElementKind { +>ScriptElementKind : ScriptElementKind + + static unknown: string; +>unknown : string + + static keyword: string; +>keyword : string + + static scriptElement: string; +>scriptElement : string + + static moduleElement: string; +>moduleElement : string + + static classElement: string; +>classElement : string + + static interfaceElement: string; +>interfaceElement : string + + static typeElement: string; +>typeElement : string + + static enumElement: string; +>enumElement : string + + static variableElement: string; +>variableElement : string + + static localVariableElement: string; +>localVariableElement : string + + static functionElement: string; +>functionElement : string + + static localFunctionElement: string; +>localFunctionElement : string + + static memberFunctionElement: string; +>memberFunctionElement : string + + static memberGetAccessorElement: string; +>memberGetAccessorElement : string + + static memberSetAccessorElement: string; +>memberSetAccessorElement : string + + static memberVariableElement: string; +>memberVariableElement : string + + static constructorImplementationElement: string; +>constructorImplementationElement : string + + static callSignatureElement: string; +>callSignatureElement : string + + static indexSignatureElement: string; +>indexSignatureElement : string + + static constructSignatureElement: string; +>constructSignatureElement : string + + static parameterElement: string; +>parameterElement : string + + static typeParameterElement: string; +>typeParameterElement : string + + static primitiveType: string; +>primitiveType : string + + static label: string; +>label : string + + static alias: string; +>alias : string + + static constElement: string; +>constElement : string + + static letElement: string; +>letElement : string + } + class ScriptElementKindModifier { +>ScriptElementKindModifier : ScriptElementKindModifier + + static none: string; +>none : string + + static publicMemberModifier: string; +>publicMemberModifier : string + + static privateMemberModifier: string; +>privateMemberModifier : string + + static protectedMemberModifier: string; +>protectedMemberModifier : string + + static exportedModifier: string; +>exportedModifier : string + + static ambientModifier: string; +>ambientModifier : string + + static staticModifier: string; +>staticModifier : string + } + class ClassificationTypeNames { +>ClassificationTypeNames : ClassificationTypeNames + + static comment: string; +>comment : string + + static identifier: string; +>identifier : string + + static keyword: string; +>keyword : string + + static numericLiteral: string; +>numericLiteral : string + + static operator: string; +>operator : string + + static stringLiteral: string; +>stringLiteral : string + + static whiteSpace: string; +>whiteSpace : string + + static text: string; +>text : string + + static punctuation: string; +>punctuation : string + + static className: string; +>className : string + + static enumName: string; +>enumName : string + + static interfaceName: string; +>interfaceName : string + + static moduleName: string; +>moduleName : string + + static typeParameterName: string; +>typeParameterName : string + + static typeAlias: string; +>typeAlias : string + } + interface DisplayPartsSymbolWriter extends SymbolWriter { +>DisplayPartsSymbolWriter : DisplayPartsSymbolWriter +>SymbolWriter : SymbolWriter + + displayParts(): SymbolDisplayPart[]; +>displayParts : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; +>displayPartsToString : (displayParts: SymbolDisplayPart[]) => string +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + function getDefaultCompilerOptions(): CompilerOptions; +>getDefaultCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + class OperationCanceledException { +>OperationCanceledException : OperationCanceledException + } + class CancellationTokenObject { +>CancellationTokenObject : CancellationTokenObject + + private cancellationToken; +>cancellationToken : any + + static None: CancellationTokenObject; +>None : CancellationTokenObject +>CancellationTokenObject : CancellationTokenObject + + constructor(cancellationToken: CancellationToken); +>cancellationToken : CancellationToken +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + + throwIfCancellationRequested(): void; +>throwIfCancellationRequested : () => void + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; +>createLanguageServiceSourceFile : (filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean) => SourceFile +>filename : string +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>scriptTarget : ScriptTarget +>ScriptTarget : ScriptTarget +>version : string +>setNodeParents : boolean +>SourceFile : SourceFile + + var disableIncrementalParsing: boolean; +>disableIncrementalParsing : boolean + + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + function createDocumentRegistry(): DocumentRegistry; +>createDocumentRegistry : () => DocumentRegistry +>DocumentRegistry : DocumentRegistry + + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; +>preProcessFile : (sourceText: string, readImportFiles?: boolean) => PreProcessedFileInfo +>sourceText : string +>readImportFiles : boolean +>PreProcessedFileInfo : PreProcessedFileInfo + + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; +>createLanguageService : (host: LanguageServiceHost, documentRegistry?: DocumentRegistry) => LanguageService +>host : LanguageServiceHost +>LanguageServiceHost : LanguageServiceHost +>documentRegistry : DocumentRegistry +>DocumentRegistry : DocumentRegistry +>LanguageService : LanguageService + + function createClassifier(): Classifier; +>createClassifier : () => Classifier +>Classifier : Classifier + + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +>getDefaultLibFilePath : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions +} + diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js new file mode 100644 index 00000000000..066b2504efd --- /dev/null +++ b/tests/baselines/reference/APISample_transform.js @@ -0,0 +1,1999 @@ +//// [tests/cases/compiler/APISample_transform.ts] //// + +//// [APISample_transform.ts] + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; +declare var path: any; + +import ts = require("typescript"); + +function transform(contents: string, compilerOptions: ts.CompilerOptions = {}) { + // Sources + var files = { + "file.ts": contents, + "lib.d.ts": fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() + }; + + // Generated outputs + var outputs = []; + + // Create a compilerHost object to allow the compiler to read and write files + var compilerHost = { + getSourceFile: (filename, target) => { + return files[filename] !== undefined ? + ts.createSourceFile(filename, files[filename], target) : undefined; + }, + writeFile: (name, text, writeByteOrderMark) => { + outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); + }, + getDefaultLibFilename: () => "lib.d.ts", + useCaseSensitiveFileNames: () => false, + getCanonicalFileName: (filename) => filename, + getCurrentDirectory: () => "", + getNewLine: () => "\n" + }; + + // Create a program from inputs + var program = ts.createProgram(["file.ts"], compilerOptions, compilerHost); + + // Query for early errors + var errors = program.getDiagnostics(); + // Do not generate code in the presence of early errors + if (!errors.length) { + // Type check and get semantic errors + var checker = program.getTypeChecker(true); + errors = checker.getDiagnostics(); + // Generate output + program.emitFiles(); + } + return { + outputs: outputs, + errors: errors.map(function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; }) + }; +} + +// Calling our transform function using a simple TypeScript variable declarations, +// and loading the default library like: +var source = "var x: number = 'string'"; +var result = transform(source); + +console.log(JSON.stringify(result)); +//// [typescript.d.ts] +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { + [index: string]: T; + } + interface TextRange { + pos: number; + end: number; + } + const enum SyntaxKind { + Unknown = 0, + EndOfFileToken = 1, + SingleLineCommentTrivia = 2, + MultiLineCommentTrivia = 3, + NewLineTrivia = 4, + WhitespaceTrivia = 5, + ConflictMarkerTrivia = 6, + NumericLiteral = 7, + StringLiteral = 8, + RegularExpressionLiteral = 9, + NoSubstitutionTemplateLiteral = 10, + TemplateHead = 11, + TemplateMiddle = 12, + TemplateTail = 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 = 63, + Identifier = 64, + BreakKeyword = 65, + CaseKeyword = 66, + CatchKeyword = 67, + ClassKeyword = 68, + ConstKeyword = 69, + ContinueKeyword = 70, + DebuggerKeyword = 71, + DefaultKeyword = 72, + DeleteKeyword = 73, + DoKeyword = 74, + ElseKeyword = 75, + EnumKeyword = 76, + ExportKeyword = 77, + ExtendsKeyword = 78, + FalseKeyword = 79, + FinallyKeyword = 80, + ForKeyword = 81, + FunctionKeyword = 82, + IfKeyword = 83, + ImportKeyword = 84, + InKeyword = 85, + InstanceOfKeyword = 86, + NewKeyword = 87, + NullKeyword = 88, + ReturnKeyword = 89, + SuperKeyword = 90, + SwitchKeyword = 91, + ThisKeyword = 92, + ThrowKeyword = 93, + TrueKeyword = 94, + TryKeyword = 95, + TypeOfKeyword = 96, + VarKeyword = 97, + VoidKeyword = 98, + WhileKeyword = 99, + WithKeyword = 100, + ImplementsKeyword = 101, + InterfaceKeyword = 102, + LetKeyword = 103, + PackageKeyword = 104, + PrivateKeyword = 105, + ProtectedKeyword = 106, + PublicKeyword = 107, + StaticKeyword = 108, + YieldKeyword = 109, + AnyKeyword = 110, + BooleanKeyword = 111, + ConstructorKeyword = 112, + DeclareKeyword = 113, + GetKeyword = 114, + ModuleKeyword = 115, + RequireKeyword = 116, + NumberKeyword = 117, + SetKeyword = 118, + StringKeyword = 119, + TypeKeyword = 120, + QualifiedName = 121, + ComputedPropertyName = 122, + TypeParameter = 123, + Parameter = 124, + PropertySignature = 125, + PropertyDeclaration = 126, + MethodSignature = 127, + MethodDeclaration = 128, + Constructor = 129, + GetAccessor = 130, + SetAccessor = 131, + CallSignature = 132, + ConstructSignature = 133, + IndexSignature = 134, + TypeReference = 135, + FunctionType = 136, + ConstructorType = 137, + TypeQuery = 138, + TypeLiteral = 139, + ArrayType = 140, + TupleType = 141, + UnionType = 142, + ParenthesizedType = 143, + ObjectBindingPattern = 144, + ArrayBindingPattern = 145, + BindingElement = 146, + ArrayLiteralExpression = 147, + ObjectLiteralExpression = 148, + PropertyAccessExpression = 149, + ElementAccessExpression = 150, + CallExpression = 151, + NewExpression = 152, + TaggedTemplateExpression = 153, + TypeAssertionExpression = 154, + ParenthesizedExpression = 155, + FunctionExpression = 156, + ArrowFunction = 157, + DeleteExpression = 158, + TypeOfExpression = 159, + VoidExpression = 160, + PrefixUnaryExpression = 161, + PostfixUnaryExpression = 162, + BinaryExpression = 163, + ConditionalExpression = 164, + TemplateExpression = 165, + YieldExpression = 166, + SpreadElementExpression = 167, + OmittedExpression = 168, + TemplateSpan = 169, + Block = 170, + VariableStatement = 171, + EmptyStatement = 172, + ExpressionStatement = 173, + IfStatement = 174, + DoStatement = 175, + WhileStatement = 176, + ForStatement = 177, + ForInStatement = 178, + ContinueStatement = 179, + BreakStatement = 180, + ReturnStatement = 181, + WithStatement = 182, + SwitchStatement = 183, + LabeledStatement = 184, + ThrowStatement = 185, + TryStatement = 186, + DebuggerStatement = 187, + VariableDeclaration = 188, + VariableDeclarationList = 189, + FunctionDeclaration = 190, + ClassDeclaration = 191, + InterfaceDeclaration = 192, + TypeAliasDeclaration = 193, + EnumDeclaration = 194, + ModuleDeclaration = 195, + ModuleBlock = 196, + ImportDeclaration = 197, + ExportAssignment = 198, + ExternalModuleReference = 199, + CaseClause = 200, + DefaultClause = 201, + HeritageClause = 202, + CatchClause = 203, + PropertyAssignment = 204, + ShorthandPropertyAssignment = 205, + EnumMember = 206, + SourceFile = 207, + SyntaxList = 208, + Count = 209, + FirstAssignment = 52, + LastAssignment = 63, + FirstReservedWord = 65, + LastReservedWord = 100, + FirstKeyword = 65, + LastKeyword = 120, + FirstFutureReservedWord = 101, + LastFutureReservedWord = 109, + FirstTypeNode = 135, + LastTypeNode = 143, + FirstPunctuation = 14, + LastPunctuation = 63, + FirstToken = 0, + LastToken = 120, + FirstTriviaToken = 2, + LastTriviaToken = 6, + FirstLiteralToken = 7, + LastLiteralToken = 10, + FirstTemplateToken = 10, + LastTemplateToken = 13, + FirstBinaryOperator = 24, + LastBinaryOperator = 63, + FirstNode = 121, + } + const enum NodeFlags { + Export = 1, + Ambient = 2, + Public = 16, + Private = 32, + Protected = 64, + Static = 128, + MultiLine = 256, + Synthetic = 512, + DeclarationFile = 1024, + Let = 2048, + Const = 4096, + OctalLiteral = 8192, + Modifier = 243, + AccessibilityModifier = 112, + BlockScoped = 6144, + } + const enum ParserContextFlags { + StrictMode = 1, + DisallowIn = 2, + Yield = 4, + GeneratorParameter = 8, + ThisNodeHasError = 16, + ParserGeneratedFlags = 31, + ThisNodeOrAnySubNodesHasError = 32, + HasAggregatedChildData = 64, + } + interface Node extends TextRange { + kind: SyntaxKind; + flags: NodeFlags; + parserContextFlags?: ParserContextFlags; + id?: number; + parent?: Node; + symbol?: Symbol; + locals?: SymbolTable; + nextContainer?: Node; + localSymbol?: Symbol; + modifiers?: ModifiersArray; + } + interface NodeArray extends Array, TextRange { + hasTrailingComma?: boolean; + } + interface ModifiersArray extends NodeArray { + flags: number; + } + interface Identifier extends PrimaryExpression { + text: string; + } + interface QualifiedName extends Node { + left: EntityName; + right: Identifier; + } + type EntityName = Identifier | QualifiedName; + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; + interface Declaration extends Node { + _declarationBrand: any; + name?: DeclarationName; + } + interface ComputedPropertyName extends Node { + expression: Expression; + } + interface TypeParameterDeclaration extends Declaration { + name: Identifier; + constraint?: TypeNode; + expression?: Expression; + } + interface SignatureDeclaration extends Declaration { + typeParameters?: NodeArray; + parameters: NodeArray; + type?: TypeNode; + } + interface VariableDeclaration extends Declaration { + parent?: VariableDeclarationList; + name: Identifier | BindingPattern; + type?: TypeNode; + initializer?: Expression; + } + interface VariableDeclarationList extends Node { + declarations: NodeArray; + } + interface ParameterDeclaration extends Declaration { + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingElement extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + initializer?: Expression; + } + interface PropertyDeclaration extends Declaration, ClassElement { + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface ObjectLiteralElement extends Declaration { + _objectLiteralBrandBrand: any; + } + interface PropertyAssignment extends ObjectLiteralElement { + _propertyAssignmentBrand: any; + name: DeclarationName; + questionToken?: Node; + initializer: Expression; + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { + name: Identifier; + questionToken?: Node; + } + interface VariableLikeDeclaration extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingPattern extends Node { + elements: NodeArray; + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { + _functionLikeDeclarationBrand: any; + asteriskToken?: Node; + questionToken?: Node; + body?: Block | Expression; + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { + name: Identifier; + body?: Block; + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + body?: Block; + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { + body?: Block; + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + _accessorDeclarationBrand: any; + body: Block; + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { + _indexSignatureDeclarationBrand: any; + } + interface TypeNode extends Node { + _typeNodeBrand: any; + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { + _functionOrConstructorTypeNodeBrand: any; + } + interface TypeReferenceNode extends TypeNode { + typeName: EntityName; + typeArguments?: NodeArray; + } + interface TypeQueryNode extends TypeNode { + exprName: EntityName; + } + interface TypeLiteralNode extends TypeNode, Declaration { + members: NodeArray; + } + interface ArrayTypeNode extends TypeNode { + elementType: TypeNode; + } + interface TupleTypeNode extends TypeNode { + elementTypes: NodeArray; + } + interface UnionTypeNode extends TypeNode { + types: NodeArray; + } + interface ParenthesizedTypeNode extends TypeNode { + type: TypeNode; + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { + } + interface Expression extends Node { + _expressionBrand: any; + contextualType?: Type; + } + interface UnaryExpression extends Expression { + _unaryExpressionBrand: any; + } + interface PrefixUnaryExpression extends UnaryExpression { + operator: SyntaxKind; + operand: UnaryExpression; + } + interface PostfixUnaryExpression extends PostfixExpression { + operand: LeftHandSideExpression; + operator: SyntaxKind; + } + interface PostfixExpression extends UnaryExpression { + _postfixExpressionBrand: any; + } + interface LeftHandSideExpression extends PostfixExpression { + _leftHandSideExpressionBrand: any; + } + interface MemberExpression extends LeftHandSideExpression { + _memberExpressionBrand: any; + } + interface PrimaryExpression extends MemberExpression { + _primaryExpressionBrand: any; + } + interface DeleteExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface TypeOfExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface VoidExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface YieldExpression extends Expression { + asteriskToken?: Node; + expression: Expression; + } + interface BinaryExpression extends Expression { + left: Expression; + operator: SyntaxKind; + right: Expression; + } + interface ConditionalExpression extends Expression { + condition: Expression; + whenTrue: Expression; + whenFalse: Expression; + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { + name?: Identifier; + body: Block | Expression; + } + interface LiteralExpression extends PrimaryExpression { + text: string; + isUnterminated?: boolean; + } + interface StringLiteralExpression extends LiteralExpression { + _stringLiteralExpressionBrand: any; + } + interface TemplateExpression extends PrimaryExpression { + head: LiteralExpression; + templateSpans: NodeArray; + } + interface TemplateSpan extends Node { + expression: Expression; + literal: LiteralExpression; + } + interface ParenthesizedExpression extends PrimaryExpression { + expression: Expression; + } + interface ArrayLiteralExpression extends PrimaryExpression { + elements: NodeArray; + } + interface SpreadElementExpression extends Expression { + expression: Expression; + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { + properties: NodeArray; + } + interface PropertyAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + name: Identifier; + } + interface ElementAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + argumentExpression?: Expression; + } + interface CallExpression extends LeftHandSideExpression { + expression: LeftHandSideExpression; + typeArguments?: NodeArray; + arguments: NodeArray; + } + interface NewExpression extends CallExpression, PrimaryExpression { + } + interface TaggedTemplateExpression extends MemberExpression { + tag: LeftHandSideExpression; + template: LiteralExpression | TemplateExpression; + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; + interface TypeAssertion extends UnaryExpression { + type: TypeNode; + expression: UnaryExpression; + } + interface Statement extends Node, ModuleElement { + _statementBrand: any; + } + interface Block extends Statement { + statements: NodeArray; + } + interface VariableStatement extends Statement { + declarationList: VariableDeclarationList; + } + interface ExpressionStatement extends Statement { + expression: Expression; + } + interface IfStatement extends Statement { + expression: Expression; + thenStatement: Statement; + elseStatement?: Statement; + } + interface IterationStatement extends Statement { + statement: Statement; + } + interface DoStatement extends IterationStatement { + expression: Expression; + } + interface WhileStatement extends IterationStatement { + expression: Expression; + } + interface ForStatement extends IterationStatement { + initializer?: VariableDeclarationList | Expression; + condition?: Expression; + iterator?: Expression; + } + interface ForInStatement extends IterationStatement { + initializer: VariableDeclarationList | Expression; + expression: Expression; + } + interface BreakOrContinueStatement extends Statement { + label?: Identifier; + } + interface ReturnStatement extends Statement { + expression?: Expression; + } + interface WithStatement extends Statement { + expression: Expression; + statement: Statement; + } + interface SwitchStatement extends Statement { + expression: Expression; + clauses: NodeArray; + } + interface CaseClause extends Node { + expression?: Expression; + statements: NodeArray; + } + interface DefaultClause extends Node { + statements: NodeArray; + } + type CaseOrDefaultClause = CaseClause | DefaultClause; + interface LabeledStatement extends Statement { + label: Identifier; + statement: Statement; + } + interface ThrowStatement extends Statement { + expression: Expression; + } + interface TryStatement extends Statement { + tryBlock: Block; + catchClause?: CatchClause; + finallyBlock?: Block; + } + interface CatchClause extends Declaration { + name: Identifier; + type?: TypeNode; + block: Block; + } + interface ModuleElement extends Node { + _moduleElementBrand: any; + } + interface ClassDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface ClassElement extends Declaration { + _classElementBrand: any; + } + interface InterfaceDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface HeritageClause extends Node { + token: SyntaxKind; + types?: NodeArray; + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { + name: Identifier; + type: TypeNode; + } + interface EnumMember extends Declaration { + name: DeclarationName; + initializer?: Expression; + } + interface EnumDeclaration extends Declaration, ModuleElement { + name: Identifier; + members: NodeArray; + } + interface ModuleDeclaration extends Declaration, ModuleElement { + name: Identifier | LiteralExpression; + body: ModuleBlock | ModuleDeclaration; + } + interface ModuleBlock extends Node, ModuleElement { + statements: NodeArray; + } + interface ImportDeclaration extends Declaration, ModuleElement { + name: Identifier; + moduleReference: EntityName | ExternalModuleReference; + } + interface ExternalModuleReference extends Node { + expression?: Expression; + } + interface ExportAssignment extends Statement, ModuleElement { + exportName: Identifier; + } + interface FileReference extends TextRange { + filename: string; + } + interface CommentRange extends TextRange { + hasTrailingNewLine?: boolean; + } + interface SourceFile extends Declaration { + statements: NodeArray; + endOfFileToken: Node; + filename: string; + text: string; + getLineAndCharacterFromPosition(position: number): LineAndCharacter; + getPositionFromLineAndCharacter(line: number, character: number): number; + getLineStarts(): number[]; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; + amdDependencies: string[]; + amdModuleName: string; + referencedFiles: FileReference[]; + referenceDiagnostics: Diagnostic[]; + parseDiagnostics: Diagnostic[]; + getSyntacticDiagnostics(): Diagnostic[]; + semanticDiagnostics: Diagnostic[]; + hasNoDefaultLib: boolean; + externalModuleIndicator: Node; + nodeCount: number; + identifierCount: number; + symbolCount: number; + languageVersion: ScriptTarget; + identifiers: Map; + } + interface ScriptReferenceHost { + getCompilerOptions(): CompilerOptions; + getSourceFile(filename: string): SourceFile; + getCurrentDirectory(): string; + } + interface Program extends ScriptReferenceHost { + getSourceFiles(): SourceFile[]; + getCompilerHost(): CompilerHost; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; + getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getCommonSourceDirectory(): string; + emitFiles(targetSourceFile?: SourceFile): EmitResult; + isEmitBlocked(sourceFile?: SourceFile): boolean; + } + interface SourceMapSpan { + emittedLine: number; + emittedColumn: number; + sourceLine: number; + sourceColumn: number; + nameIndex?: number; + sourceIndex: number; + } + interface SourceMapData { + sourceMapFilePath: string; + jsSourceMappingURL: string; + sourceMapFile: string; + sourceMapSourceRoot: string; + sourceMapSources: string[]; + inputSourceFileNames: string[]; + sourceMapNames?: string[]; + sourceMapMappings: string; + sourceMapDecodedMappings: SourceMapSpan[]; + } + enum EmitReturnStatus { + Succeeded = 0, + AllOutputGenerationSkipped = 1, + JSGeneratedWithSemanticErrors = 2, + DeclarationGenerationSkipped = 3, + EmitErrorsEncountered = 4, + CompilerOptionsErrors = 5, + } + interface EmitResult { + emitResultStatus: EmitReturnStatus; + diagnostics: Diagnostic[]; + sourceMaps: SourceMapData[]; + } + interface TypeCheckerHost { + getCompilerOptions(): CompilerOptions; + getCompilerHost(): CompilerHost; + getSourceFiles(): SourceFile[]; + getSourceFile(filename: string): SourceFile; + } + interface TypeChecker { + getEmitResolver(): EmitResolver; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getNodeCount(): number; + getIdentifierCount(): number; + getSymbolCount(): number; + getTypeCount(): number; + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; + getDeclaredTypeOfSymbol(symbol: Symbol): Type; + getPropertiesOfType(type: Type): Symbol[]; + getPropertyOfType(type: Type, propertyName: string): Symbol; + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; + getIndexTypeOfType(type: Type, kind: IndexKind): Type; + getReturnTypeOfSignature(signature: Signature): Type; + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; + getSymbolAtLocation(node: Node): Symbol; + getShorthandAssignmentValueSymbol(location: Node): Symbol; + getTypeAtLocation(node: Node): Type; + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; + getSymbolDisplayBuilder(): SymbolDisplayBuilder; + getFullyQualifiedName(symbol: Symbol): string; + getAugmentedPropertiesOfType(type: Type): Symbol[]; + getRootSymbols(symbol: Symbol): Symbol[]; + getContextualType(node: Expression): Type; + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + isUndefinedSymbol(symbol: Symbol): boolean; + isArgumentsSymbol(symbol: Symbol): boolean; + getEnumMemberValue(node: EnumMember): number; + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; + getAliasedSymbol(symbol: Symbol): Symbol; + } + interface SymbolDisplayBuilder { + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + } + interface SymbolWriter { + writeKeyword(text: string): void; + writeOperator(text: string): void; + writePunctuation(text: string): void; + writeSpace(text: string): void; + writeStringLiteral(text: string): void; + writeParameter(text: string): void; + writeSymbol(text: string, symbol: Symbol): void; + writeLine(): void; + increaseIndent(): void; + decreaseIndent(): void; + clear(): void; + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; + } + const enum TypeFormatFlags { + None = 0, + WriteArrayAsGenericType = 1, + UseTypeOfFunction = 2, + NoTruncation = 4, + WriteArrowStyleSignature = 8, + WriteOwnNameForAnyLike = 16, + WriteTypeArgumentsOfSignature = 32, + InElementType = 64, + } + const enum SymbolFormatFlags { + None = 0, + WriteTypeParametersOrArguments = 1, + UseOnlyExternalAliasing = 2, + } + const enum SymbolAccessibility { + Accessible = 0, + NotAccessible = 1, + CannotBeNamed = 2, + } + interface SymbolVisibilityResult { + accessibility: SymbolAccessibility; + aliasesToMakeVisible?: ImportDeclaration[]; + errorSymbolName?: string; + errorNode?: Node; + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { + errorModuleName?: string; + } + interface EmitResolver { + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; + getExpressionNamePrefix(node: Identifier): string; + getExportAssignmentName(node: SourceFile): string; + isReferencedImportDeclaration(node: ImportDeclaration): boolean; + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; + getNodeCheckFlags(node: Node): NodeCheckFlags; + getEnumMemberValue(node: EnumMember): number; + hasSemanticErrors(sourceFile?: SourceFile): boolean; + isDeclarationVisible(node: Declaration): boolean; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, 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; + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + isUnknownIdentifier(location: Node, name: string): boolean; + } + const enum SymbolFlags { + FunctionScopedVariable = 1, + BlockScopedVariable = 2, + Property = 4, + EnumMember = 8, + Function = 16, + Class = 32, + Interface = 64, + ConstEnum = 128, + RegularEnum = 256, + ValueModule = 512, + NamespaceModule = 1024, + TypeLiteral = 2048, + ObjectLiteral = 4096, + Method = 8192, + Constructor = 16384, + GetAccessor = 32768, + SetAccessor = 65536, + Signature = 131072, + TypeParameter = 262144, + TypeAlias = 524288, + ExportValue = 1048576, + ExportType = 2097152, + ExportNamespace = 4194304, + Import = 8388608, + Instantiated = 16777216, + Merged = 33554432, + Transient = 67108864, + Prototype = 134217728, + UnionProperty = 268435456, + Optional = 536870912, + Enum = 384, + Variable = 3, + Value = 107455, + Type = 793056, + Namespace = 1536, + Module = 1536, + Accessor = 98304, + FunctionScopedVariableExcludes = 107454, + BlockScopedVariableExcludes = 107455, + ParameterExcludes = 107455, + PropertyExcludes = 107455, + EnumMemberExcludes = 107455, + FunctionExcludes = 106927, + ClassExcludes = 899583, + InterfaceExcludes = 792992, + RegularEnumExcludes = 899327, + ConstEnumExcludes = 899967, + ValueModuleExcludes = 106639, + NamespaceModuleExcludes = 0, + MethodExcludes = 99263, + GetAccessorExcludes = 41919, + SetAccessorExcludes = 74687, + TypeParameterExcludes = 530912, + TypeAliasExcludes = 793056, + ImportExcludes = 8388608, + ModuleMember = 8914931, + ExportHasLocal = 944, + HasLocals = 255504, + HasExports = 1952, + HasMembers = 6240, + IsContainer = 262128, + PropertyOrAccessor = 98308, + Export = 7340032, + } + interface Symbol { + flags: SymbolFlags; + name: string; + id?: number; + mergeId?: number; + declarations?: Declaration[]; + parent?: Symbol; + members?: SymbolTable; + exports?: SymbolTable; + exportSymbol?: Symbol; + valueDeclaration?: Declaration; + constEnumOnlyModule?: boolean; + } + interface SymbolLinks { + target?: Symbol; + type?: Type; + declaredType?: Type; + mapper?: TypeMapper; + referenced?: boolean; + exportAssignSymbol?: Symbol; + unionType?: UnionType; + } + interface TransientSymbol extends Symbol, SymbolLinks { + } + interface SymbolTable { + [index: string]: Symbol; + } + const enum NodeCheckFlags { + TypeChecked = 1, + LexicalThis = 2, + CaptureThis = 4, + EmitExtends = 8, + SuperInstance = 16, + SuperStatic = 32, + ContextChecked = 64, + EnumValuesComputed = 128, + } + interface NodeLinks { + resolvedType?: Type; + resolvedSignature?: Signature; + resolvedSymbol?: Symbol; + flags?: NodeCheckFlags; + enumMemberValue?: number; + isIllegalTypeReferenceInConstraint?: boolean; + isVisible?: boolean; + localModuleName?: string; + assignmentChecks?: Map; + hasReportedStatementInAmbientContext?: boolean; + importOnRightSide?: Symbol; + } + const enum TypeFlags { + Any = 1, + String = 2, + Number = 4, + Boolean = 8, + Void = 16, + Undefined = 32, + Null = 64, + Enum = 128, + StringLiteral = 256, + TypeParameter = 512, + Class = 1024, + Interface = 2048, + Reference = 4096, + Tuple = 8192, + Union = 16384, + Anonymous = 32768, + FromSignature = 65536, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, + Intrinsic = 127, + Primitive = 510, + StringLike = 258, + NumberLike = 132, + ObjectType = 48128, + RequiresWidening = 786432, + } + interface Type { + flags: TypeFlags; + id: number; + symbol?: Symbol; + } + interface IntrinsicType extends Type { + intrinsicName: string; + } + interface StringLiteralType extends Type { + text: string; + } + interface ObjectType extends Type { + } + interface InterfaceType extends ObjectType { + typeParameters: TypeParameter[]; + baseTypes: ObjectType[]; + declaredProperties: Symbol[]; + declaredCallSignatures: Signature[]; + declaredConstructSignatures: Signature[]; + declaredStringIndexType: Type; + declaredNumberIndexType: Type; + } + interface TypeReference extends ObjectType { + target: GenericType; + typeArguments: Type[]; + } + interface GenericType extends InterfaceType, TypeReference { + instantiations: Map; + } + interface TupleType extends ObjectType { + elementTypes: Type[]; + baseArrayType: TypeReference; + } + interface UnionType extends Type { + types: Type[]; + resolvedProperties: SymbolTable; + } + interface ResolvedType extends ObjectType, UnionType { + members: SymbolTable; + properties: Symbol[]; + callSignatures: Signature[]; + constructSignatures: Signature[]; + stringIndexType: Type; + numberIndexType: Type; + } + interface TypeParameter extends Type { + constraint: Type; + target?: TypeParameter; + mapper?: TypeMapper; + } + const enum SignatureKind { + Call = 0, + Construct = 1, + } + interface Signature { + declaration: SignatureDeclaration; + typeParameters: TypeParameter[]; + parameters: Symbol[]; + resolvedReturnType: Type; + minArgumentCount: number; + hasRestParameter: boolean; + hasStringLiterals: boolean; + target?: Signature; + mapper?: TypeMapper; + unionSignatures?: Signature[]; + erasedSignatureCache?: Signature; + isolatedSignatureType?: ObjectType; + } + const enum IndexKind { + String = 0, + Number = 1, + } + interface TypeMapper { + (t: Type): Type; + } + interface TypeInferences { + primary: Type[]; + secondary: Type[]; + } + interface InferenceContext { + typeParameters: TypeParameter[]; + inferUnionTypes: boolean; + inferences: TypeInferences[]; + inferredTypes: Type[]; + failedTypeParameterIndex?: number; + } + interface DiagnosticMessage { + key: string; + category: DiagnosticCategory; + code: number; + isEarly?: boolean; + } + interface DiagnosticMessageChain { + messageText: string; + category: DiagnosticCategory; + code: number; + next?: DiagnosticMessageChain; + } + interface Diagnostic { + file: SourceFile; + start: number; + length: number; + messageText: string; + category: DiagnosticCategory; + code: number; + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; + } + enum DiagnosticCategory { + Warning = 0, + Error = 1, + Message = 2, + } + interface CompilerOptions { + allowNonTsExtensions?: boolean; + charset?: string; + codepage?: number; + declaration?: boolean; + diagnostics?: boolean; + emitBOM?: boolean; + help?: boolean; + listFiles?: boolean; + locale?: string; + mapRoot?: string; + module?: ModuleKind; + noEmit?: boolean; + noEmitOnError?: boolean; + noErrorTruncation?: boolean; + noImplicitAny?: boolean; + noLib?: boolean; + noLibCheck?: boolean; + noResolve?: boolean; + out?: string; + outDir?: string; + preserveConstEnums?: boolean; + project?: string; + removeComments?: boolean; + sourceMap?: boolean; + sourceRoot?: string; + suppressImplicitAnyIndexErrors?: boolean; + target?: ScriptTarget; + version?: boolean; + watch?: boolean; + [option: string]: string | number | boolean; + } + const enum ModuleKind { + None = 0, + CommonJS = 1, + AMD = 2, + } + interface LineAndCharacter { + line: number; + character: number; + } + const enum ScriptTarget { + ES3 = 0, + ES5 = 1, + ES6 = 2, + Latest = 2, + } + interface ParsedCommandLine { + options: CompilerOptions; + filenames: string[]; + errors: Diagnostic[]; + } + interface CommandLineOption { + name: string; + type: string | Map; + isFilePath?: boolean; + shortName?: string; + description?: DiagnosticMessage; + paramType?: DiagnosticMessage; + error?: DiagnosticMessage; + } + const enum CharacterCodes { + nullCharacter = 0, + maxAsciiCharacter = 127, + lineFeed = 10, + carriageReturn = 13, + lineSeparator = 8232, + paragraphSeparator = 8233, + nextLine = 133, + space = 32, + nonBreakingSpace = 160, + enQuad = 8192, + emQuad = 8193, + enSpace = 8194, + emSpace = 8195, + threePerEmSpace = 8196, + fourPerEmSpace = 8197, + sixPerEmSpace = 8198, + figureSpace = 8199, + punctuationSpace = 8200, + thinSpace = 8201, + hairSpace = 8202, + zeroWidthSpace = 8203, + narrowNoBreakSpace = 8239, + ideographicSpace = 12288, + mathematicalSpace = 8287, + ogham = 5760, + _ = 95, + $ = 36, + _0 = 48, + _1 = 49, + _2 = 50, + _3 = 51, + _4 = 52, + _5 = 53, + _6 = 54, + _7 = 55, + _8 = 56, + _9 = 57, + a = 97, + b = 98, + c = 99, + d = 100, + e = 101, + f = 102, + g = 103, + h = 104, + i = 105, + j = 106, + k = 107, + l = 108, + m = 109, + n = 110, + o = 111, + p = 112, + q = 113, + r = 114, + s = 115, + t = 116, + u = 117, + v = 118, + w = 119, + x = 120, + y = 121, + z = 122, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + ampersand = 38, + asterisk = 42, + at = 64, + backslash = 92, + backtick = 96, + bar = 124, + caret = 94, + closeBrace = 125, + closeBracket = 93, + closeParen = 41, + colon = 58, + comma = 44, + dot = 46, + doubleQuote = 34, + equals = 61, + exclamation = 33, + greaterThan = 62, + lessThan = 60, + minus = 45, + openBrace = 123, + openBracket = 91, + openParen = 40, + percent = 37, + plus = 43, + question = 63, + semicolon = 59, + singleQuote = 39, + slash = 47, + tilde = 126, + backspace = 8, + formFeed = 12, + byteOrderMark = 65279, + tab = 9, + verticalTab = 11, + } + interface CancellationToken { + isCancellationRequested(): boolean; + } + interface CompilerHost { + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFilename(options: CompilerOptions): string; + getCancellationToken?(): CancellationToken; + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + getCurrentDirectory(): string; + getCanonicalFileName(fileName: string): string; + useCaseSensitiveFileNames(): boolean; + getNewLine(): string; + } + interface TextSpan { + start: number; + length: number; + } + interface TextChangeRange { + span: TextSpan; + newLength: number; + } +} +declare module "typescript" { + interface ErrorCallback { + (message: DiagnosticMessage, length: number): void; + } + interface Scanner { + getStartPos(): number; + getToken(): SyntaxKind; + getTextPos(): number; + getTokenPos(): number; + getTokenText(): string; + getTokenValue(): string; + hasPrecedingLineBreak(): boolean; + isIdentifier(): boolean; + isReservedWord(): boolean; + isUnterminated(): boolean; + reScanGreaterToken(): SyntaxKind; + reScanSlashToken(): SyntaxKind; + reScanTemplateToken(): SyntaxKind; + scan(): SyntaxKind; + setText(text: string): void; + setTextPos(textPos: number): void; + lookAhead(callback: () => T): T; + tryScan(callback: () => T): T; + } + function tokenToString(t: SyntaxKind): string; + function computeLineStarts(text: string): number[]; + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { + line: number; + character: number; + }; + function positionToLineAndCharacter(text: string, pos: number): { + line: number; + character: number; + }; + function isWhiteSpace(ch: number): boolean; + function isLineBreak(ch: number): boolean; + function isOctalDigit(ch: number): boolean; + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; + function createNode(kind: SyntaxKind): Node; + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; + function modifierToFlag(token: SyntaxKind): NodeFlags; + function isEvalOrArgumentsIdentifier(node: Node): boolean; + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function isLeftHandSideExpression(expr: Expression): boolean; + function isAssignmentOperator(token: SyntaxKind): boolean; +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +} +declare module "typescript" { + var servicesVersion: string; + interface Node { + getSourceFile(): SourceFile; + getChildCount(sourceFile?: SourceFile): number; + getChildAt(index: number, sourceFile?: SourceFile): Node; + getChildren(sourceFile?: SourceFile): Node[]; + getStart(sourceFile?: SourceFile): number; + getFullStart(): number; + getEnd(): number; + getWidth(sourceFile?: SourceFile): number; + getFullWidth(): number; + getLeadingTriviaWidth(sourceFile?: SourceFile): number; + getFullText(sourceFile?: SourceFile): string; + getText(sourceFile?: SourceFile): string; + getFirstToken(sourceFile?: SourceFile): Node; + getLastToken(sourceFile?: SourceFile): Node; + } + interface Symbol { + getFlags(): SymbolFlags; + getName(): string; + getDeclarations(): Declaration[]; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface Type { + getFlags(): TypeFlags; + getSymbol(): Symbol; + getProperties(): Symbol[]; + getProperty(propertyName: string): Symbol; + getApparentProperties(): Symbol[]; + getCallSignatures(): Signature[]; + getConstructSignatures(): Signature[]; + getStringIndexType(): Type; + getNumberIndexType(): Type; + } + interface Signature { + getDeclaration(): SignatureDeclaration; + getTypeParameters(): Type[]; + getParameters(): Symbol[]; + getReturnType(): Type; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface SourceFile { + version: string; + scriptSnapshot: IScriptSnapshot; + nameTable: Map; + getNamedDeclarations(): Declaration[]; + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; + /** Gets the length of this script snapshot. */ + getLength(): number; + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; + } + module ScriptSnapshot { + function fromString(text: string): IScriptSnapshot; + } + interface PreProcessedFileInfo { + referencedFiles: FileReference[]; + importedFiles: FileReference[]; + isLibFile: boolean; + } + interface LanguageServiceHost { + getCompilationSettings(): CompilerOptions; + getNewLine?(): string; + getScriptFileNames(): string[]; + getScriptVersion(fileName: string): string; + getScriptSnapshot(fileName: string): IScriptSnapshot; + getLocalizedDiagnosticMessages?(): any; + getCancellationToken?(): CancellationToken; + getCurrentDirectory(): string; + getDefaultLibFilename(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; + } + interface LanguageService { + cleanupSemanticCache(): void; + getSyntacticDiagnostics(fileName: string): Diagnostic[]; + getSemanticDiagnostics(fileName: string): Diagnostic[]; + getCompilerOptionsDiagnostics(): Diagnostic[]; + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; + getRenameInfo(fileName: string, position: number): RenameInfo; + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getNavigateToItems(searchValue: string): NavigateToItem[]; + getNavigationBarItems(fileName: string): NavigationBarItem[]; + getOutliningSpans(fileName: string): OutliningSpan[]; + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; + getEmitOutput(fileName: string): EmitOutput; + getProgram(): Program; + getSourceFile(filename: string): SourceFile; + dispose(): void; + } + interface ClassifiedSpan { + textSpan: TextSpan; + classificationType: string; + } + interface NavigationBarItem { + text: string; + kind: string; + kindModifiers: string; + spans: TextSpan[]; + childItems: NavigationBarItem[]; + indent: number; + bolded: boolean; + grayed: boolean; + } + interface TodoCommentDescriptor { + text: string; + priority: number; + } + interface TodoComment { + descriptor: TodoCommentDescriptor; + message: string; + position: number; + } + class TextChange { + span: TextSpan; + newText: string; + } + interface RenameLocation { + textSpan: TextSpan; + fileName: string; + } + interface ReferenceEntry { + textSpan: TextSpan; + fileName: string; + isWriteAccess: boolean; + } + interface NavigateToItem { + name: string; + kind: string; + kindModifiers: string; + matchKind: string; + fileName: string; + textSpan: TextSpan; + containerName: string; + containerKind: string; + } + interface EditorOptions { + IndentSize: number; + TabSize: number; + NewLineCharacter: string; + ConvertTabsToSpaces: boolean; + } + interface FormatCodeOptions extends EditorOptions { + InsertSpaceAfterCommaDelimiter: boolean; + InsertSpaceAfterSemicolonInForStatements: boolean; + InsertSpaceBeforeAndAfterBinaryOperators: boolean; + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; + PlaceOpenBraceOnNewLineForFunctions: boolean; + PlaceOpenBraceOnNewLineForControlBlocks: boolean; + } + interface DefinitionInfo { + fileName: string; + textSpan: TextSpan; + kind: string; + name: string; + containerKind: string; + containerName: string; + } + enum SymbolDisplayPartKind { + aliasName = 0, + className = 1, + enumName = 2, + fieldName = 3, + interfaceName = 4, + keyword = 5, + lineBreak = 6, + numericLiteral = 7, + stringLiteral = 8, + localName = 9, + methodName = 10, + moduleName = 11, + operator = 12, + parameterName = 13, + propertyName = 14, + punctuation = 15, + space = 16, + text = 17, + typeParameterName = 18, + enumMemberName = 19, + functionName = 20, + regularExpressionLiteral = 21, + } + interface SymbolDisplayPart { + text: string; + kind: string; + } + interface QuickInfo { + kind: string; + kindModifiers: string; + textSpan: TextSpan; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface RenameInfo { + canRename: boolean; + localizedErrorMessage: string; + displayName: string; + fullDisplayName: string; + kind: string; + kindModifiers: string; + triggerSpan: TextSpan; + } + interface SignatureHelpParameter { + name: string; + documentation: SymbolDisplayPart[]; + displayParts: SymbolDisplayPart[]; + isOptional: boolean; + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { + isVariadic: boolean; + prefixDisplayParts: SymbolDisplayPart[]; + suffixDisplayParts: SymbolDisplayPart[]; + separatorDisplayParts: SymbolDisplayPart[]; + parameters: SignatureHelpParameter[]; + documentation: SymbolDisplayPart[]; + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { + items: SignatureHelpItem[]; + applicableSpan: TextSpan; + selectedItemIndex: number; + argumentIndex: number; + argumentCount: number; + } + interface CompletionInfo { + isMemberCompletion: boolean; + entries: CompletionEntry[]; + } + interface CompletionEntry { + name: string; + kind: string; + kindModifiers: string; + } + interface CompletionEntryDetails { + name: string; + kind: string; + kindModifiers: string; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface OutliningSpan { + /** The span of the document to actually collapse. */ + textSpan: TextSpan; + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; + /** The text to display in the editor for the collapsed region. */ + bannerText: string; + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; + } + interface EmitOutput { + outputFiles: OutputFile[]; + emitOutputStatus: EmitReturnStatus; + } + const enum OutputFileType { + JavaScript = 0, + SourceMap = 1, + Declaration = 2, + } + interface OutputFile { + name: string; + writeByteOrderMark: boolean; + text: string; + } + const enum EndOfLineState { + Start = 0, + InMultiLineCommentTrivia = 1, + InSingleQuoteStringLiteral = 2, + InDoubleQuoteStringLiteral = 3, + } + enum TokenClass { + Punctuation = 0, + Keyword = 1, + Operator = 2, + Comment = 3, + Whitespace = 4, + Identifier = 5, + NumberLiteral = 6, + StringLiteral = 7, + RegExpLiteral = 8, + } + interface ClassificationResult { + finalLexState: EndOfLineState; + entries: ClassificationInfo[]; + } + interface ClassificationInfo { + length: number; + classification: TokenClass; + } + interface Classifier { + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + } + class ScriptElementKind { + static unknown: string; + static keyword: string; + static scriptElement: string; + static moduleElement: string; + static classElement: string; + static interfaceElement: string; + static typeElement: string; + static enumElement: string; + static variableElement: string; + static localVariableElement: string; + static functionElement: string; + static localFunctionElement: string; + static memberFunctionElement: string; + static memberGetAccessorElement: string; + static memberSetAccessorElement: string; + static memberVariableElement: string; + static constructorImplementationElement: string; + static callSignatureElement: string; + static indexSignatureElement: string; + static constructSignatureElement: string; + static parameterElement: string; + static typeParameterElement: string; + static primitiveType: string; + static label: string; + static alias: string; + static constElement: string; + static letElement: string; + } + class ScriptElementKindModifier { + static none: string; + static publicMemberModifier: string; + static privateMemberModifier: string; + static protectedMemberModifier: string; + static exportedModifier: string; + static ambientModifier: string; + static staticModifier: string; + } + class ClassificationTypeNames { + static comment: string; + static identifier: string; + static keyword: string; + static numericLiteral: string; + static operator: string; + static stringLiteral: string; + static whiteSpace: string; + static text: string; + static punctuation: string; + static className: string; + static enumName: string; + static interfaceName: string; + static moduleName: string; + static typeParameterName: string; + static typeAlias: string; + } + interface DisplayPartsSymbolWriter extends SymbolWriter { + displayParts(): SymbolDisplayPart[]; + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; + function getDefaultCompilerOptions(): CompilerOptions; + class OperationCanceledException { + } + class CancellationTokenObject { + private cancellationToken; + static None: CancellationTokenObject; + constructor(cancellationToken: CancellationToken); + isCancellationRequested(): boolean; + throwIfCancellationRequested(): void; + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; + var disableIncrementalParsing: boolean; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function createDocumentRegistry(): DocumentRegistry; + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +} + + +//// [APISample_transform.js] +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ +var ts = require("typescript"); +function transform(contents, compilerOptions) { + if (compilerOptions === void 0) { compilerOptions = {}; } + // Sources + var files = { + "file.ts": contents, + "lib.d.ts": fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() + }; + // Generated outputs + var outputs = []; + // Create a compilerHost object to allow the compiler to read and write files + var compilerHost = { + getSourceFile: function (filename, target) { + return files[filename] !== undefined ? ts.createSourceFile(filename, files[filename], target) : undefined; + }, + writeFile: function (name, text, writeByteOrderMark) { + outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); + }, + getDefaultLibFilename: function () { return "lib.d.ts"; }, + useCaseSensitiveFileNames: function () { return false; }, + getCanonicalFileName: function (filename) { return filename; }, + getCurrentDirectory: function () { return ""; }, + getNewLine: function () { return "\n"; } + }; + // Create a program from inputs + var program = ts.createProgram(["file.ts"], compilerOptions, compilerHost); + // Query for early errors + var errors = program.getDiagnostics(); + // Do not generate code in the presence of early errors + if (!errors.length) { + // Type check and get semantic errors + var checker = program.getTypeChecker(true); + errors = checker.getDiagnostics(); + // Generate output + program.emitFiles(); + } + return { + outputs: outputs, + errors: errors.map(function (e) { + return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; + }) + }; +} +// Calling our transform function using a simple TypeScript variable declarations, +// and loading the default library like: +var source = "var x: number = 'string'"; +var result = transform(source); +console.log(JSON.stringify(result)); diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types new file mode 100644 index 00000000000..1b3df293b26 --- /dev/null +++ b/tests/baselines/reference/APISample_transform.types @@ -0,0 +1,6048 @@ +=== tests/cases/compiler/APISample_transform.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : any + +declare var console: any; +>console : any + +declare var fs: any; +>fs : any + +declare var path: any; +>path : any + +import ts = require("typescript"); +>ts : typeof ts + +function transform(contents: string, compilerOptions: ts.CompilerOptions = {}) { +>transform : (contents: string, compilerOptions?: ts.CompilerOptions) => { outputs: any[]; errors: string[]; } +>contents : string +>compilerOptions : ts.CompilerOptions +>ts : unknown +>CompilerOptions : ts.CompilerOptions +>{} : { [x: string]: undefined; } + + // Sources + var files = { +>files : { "file.ts": string; "lib.d.ts": any; } +>{ "file.ts": contents, "lib.d.ts": fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() } : { "file.ts": string; "lib.d.ts": any; } + + "file.ts": contents, +>contents : string + + "lib.d.ts": fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() +>fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() : any +>fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString : any +>fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)) : any +>fs.readFileSync : any +>fs : any +>readFileSync : any +>ts.getDefaultLibFilePath(compilerOptions) : string +>ts.getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>ts : typeof ts +>getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>compilerOptions : ts.CompilerOptions +>toString : any + + }; + + // Generated outputs + var outputs = []; +>outputs : any[] +>[] : undefined[] + + // Create a compilerHost object to allow the compiler to read and write files + var compilerHost = { +>compilerHost : { getSourceFile: (filename: any, target: any) => ts.SourceFile; writeFile: (name: any, text: any, writeByteOrderMark: any) => void; getDefaultLibFilename: () => string; useCaseSensitiveFileNames: () => boolean; getCanonicalFileName: (filename: any) => any; getCurrentDirectory: () => string; getNewLine: () => string; } +>{ getSourceFile: (filename, target) => { return files[filename] !== undefined ? ts.createSourceFile(filename, files[filename], target) : undefined; }, writeFile: (name, text, writeByteOrderMark) => { outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); }, getDefaultLibFilename: () => "lib.d.ts", useCaseSensitiveFileNames: () => false, getCanonicalFileName: (filename) => filename, getCurrentDirectory: () => "", getNewLine: () => "\n" } : { getSourceFile: (filename: any, target: any) => ts.SourceFile; writeFile: (name: any, text: any, writeByteOrderMark: any) => void; getDefaultLibFilename: () => string; useCaseSensitiveFileNames: () => boolean; getCanonicalFileName: (filename: any) => any; getCurrentDirectory: () => string; getNewLine: () => string; } + + getSourceFile: (filename, target) => { +>getSourceFile : (filename: any, target: any) => ts.SourceFile +>(filename, target) => { return files[filename] !== undefined ? ts.createSourceFile(filename, files[filename], target) : undefined; } : (filename: any, target: any) => ts.SourceFile +>filename : any +>target : any + + return files[filename] !== undefined ? +>files[filename] !== undefined ? ts.createSourceFile(filename, files[filename], target) : undefined : ts.SourceFile +>files[filename] !== undefined : boolean +>files[filename] : any +>files : { "file.ts": string; "lib.d.ts": any; } +>filename : any +>undefined : undefined + + ts.createSourceFile(filename, files[filename], target) : undefined; +>ts.createSourceFile(filename, files[filename], target) : ts.SourceFile +>ts.createSourceFile : (filename: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>ts : typeof ts +>createSourceFile : (filename: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>filename : any +>files[filename] : any +>files : { "file.ts": string; "lib.d.ts": any; } +>filename : any +>target : any +>undefined : undefined + + }, + writeFile: (name, text, writeByteOrderMark) => { +>writeFile : (name: any, text: any, writeByteOrderMark: any) => void +>(name, text, writeByteOrderMark) => { outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); } : (name: any, text: any, writeByteOrderMark: any) => void +>name : any +>text : any +>writeByteOrderMark : any + + outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); +>outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }) : number +>outputs.push : (...items: any[]) => number +>outputs : any[] +>push : (...items: any[]) => number +>{ name: name, text: text, writeByteOrderMark: writeByteOrderMark } : { name: any; text: any; writeByteOrderMark: any; } +>name : any +>name : any +>text : any +>text : any +>writeByteOrderMark : any +>writeByteOrderMark : any + + }, + getDefaultLibFilename: () => "lib.d.ts", +>getDefaultLibFilename : () => string +>() => "lib.d.ts" : () => string + + useCaseSensitiveFileNames: () => false, +>useCaseSensitiveFileNames : () => boolean +>() => false : () => boolean + + getCanonicalFileName: (filename) => filename, +>getCanonicalFileName : (filename: any) => any +>(filename) => filename : (filename: any) => any +>filename : any +>filename : any + + getCurrentDirectory: () => "", +>getCurrentDirectory : () => string +>() => "" : () => string + + getNewLine: () => "\n" +>getNewLine : () => string +>() => "\n" : () => string + + }; + + // Create a program from inputs + var program = ts.createProgram(["file.ts"], compilerOptions, compilerHost); +>program : ts.Program +>ts.createProgram(["file.ts"], compilerOptions, compilerHost) : ts.Program +>ts.createProgram : (rootNames: string[], options: ts.CompilerOptions, host: ts.CompilerHost) => ts.Program +>ts : typeof ts +>createProgram : (rootNames: string[], options: ts.CompilerOptions, host: ts.CompilerHost) => ts.Program +>["file.ts"] : string[] +>compilerOptions : ts.CompilerOptions +>compilerHost : { getSourceFile: (filename: any, target: any) => ts.SourceFile; writeFile: (name: any, text: any, writeByteOrderMark: any) => void; getDefaultLibFilename: () => string; useCaseSensitiveFileNames: () => boolean; getCanonicalFileName: (filename: any) => any; getCurrentDirectory: () => string; getNewLine: () => string; } + + // Query for early errors + var errors = program.getDiagnostics(); +>errors : ts.Diagnostic[] +>program.getDiagnostics() : ts.Diagnostic[] +>program.getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] +>program : ts.Program +>getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] + + // Do not generate code in the presence of early errors + if (!errors.length) { +>!errors.length : boolean +>errors.length : number +>errors : ts.Diagnostic[] +>length : number + + // Type check and get semantic errors + var checker = program.getTypeChecker(true); +>checker : ts.TypeChecker +>program.getTypeChecker(true) : ts.TypeChecker +>program.getTypeChecker : (produceDiagnostics: boolean) => ts.TypeChecker +>program : ts.Program +>getTypeChecker : (produceDiagnostics: boolean) => ts.TypeChecker + + errors = checker.getDiagnostics(); +>errors = checker.getDiagnostics() : ts.Diagnostic[] +>errors : ts.Diagnostic[] +>checker.getDiagnostics() : ts.Diagnostic[] +>checker.getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] +>checker : ts.TypeChecker +>getDiagnostics : (sourceFile?: ts.SourceFile) => ts.Diagnostic[] + + // Generate output + program.emitFiles(); +>program.emitFiles() : ts.EmitResult +>program.emitFiles : (targetSourceFile?: ts.SourceFile) => ts.EmitResult +>program : ts.Program +>emitFiles : (targetSourceFile?: ts.SourceFile) => ts.EmitResult + } + return { +>{ outputs: outputs, errors: errors.map(function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; }) } : { outputs: any[]; errors: string[]; } + + outputs: outputs, +>outputs : any[] +>outputs : any[] + + errors: errors.map(function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; }) +>errors : string[] +>errors.map(function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; }) : string[] +>errors.map : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => U, thisArg?: any) => U[] +>errors : ts.Diagnostic[] +>map : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => U, thisArg?: any) => U[] +>function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; } : (e: ts.Diagnostic) => string +>e : ts.Diagnostic +>e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText : string +>e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " : string +>e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line : string +>e.file.filename + "(" : string +>e.file.filename : string +>e.file : ts.SourceFile +>e : ts.Diagnostic +>file : ts.SourceFile +>filename : string +>e.file.getLineAndCharacterFromPosition(e.start).line : number +>e.file.getLineAndCharacterFromPosition(e.start) : ts.LineAndCharacter +>e.file.getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>e.file : ts.SourceFile +>e : ts.Diagnostic +>file : ts.SourceFile +>getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>e.start : number +>e : ts.Diagnostic +>start : number +>line : number +>e.messageText : string +>e : ts.Diagnostic +>messageText : string + + }; +} + +// Calling our transform function using a simple TypeScript variable declarations, +// and loading the default library like: +var source = "var x: number = 'string'"; +>source : string + +var result = transform(source); +>result : { outputs: any[]; errors: string[]; } +>transform(source) : { outputs: any[]; errors: string[]; } +>transform : (contents: string, compilerOptions?: ts.CompilerOptions) => { outputs: any[]; errors: string[]; } +>source : string + +console.log(JSON.stringify(result)); +>console.log(JSON.stringify(result)) : any +>console.log : any +>console : any +>log : any +>JSON.stringify(result) : string +>JSON.stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; } +>JSON : JSON +>stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; } +>result : { outputs: any[]; errors: string[]; } + +=== typescript.d.ts === +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { +>Map : Map +>T : T + + [index: string]: T; +>index : string +>T : T + } + interface TextRange { +>TextRange : TextRange + + pos: number; +>pos : number + + end: number; +>end : number + } + const enum SyntaxKind { +>SyntaxKind : SyntaxKind + + Unknown = 0, +>Unknown : SyntaxKind + + EndOfFileToken = 1, +>EndOfFileToken : SyntaxKind + + SingleLineCommentTrivia = 2, +>SingleLineCommentTrivia : SyntaxKind + + MultiLineCommentTrivia = 3, +>MultiLineCommentTrivia : SyntaxKind + + NewLineTrivia = 4, +>NewLineTrivia : SyntaxKind + + WhitespaceTrivia = 5, +>WhitespaceTrivia : SyntaxKind + + ConflictMarkerTrivia = 6, +>ConflictMarkerTrivia : SyntaxKind + + NumericLiteral = 7, +>NumericLiteral : SyntaxKind + + StringLiteral = 8, +>StringLiteral : SyntaxKind + + RegularExpressionLiteral = 9, +>RegularExpressionLiteral : SyntaxKind + + NoSubstitutionTemplateLiteral = 10, +>NoSubstitutionTemplateLiteral : SyntaxKind + + TemplateHead = 11, +>TemplateHead : SyntaxKind + + TemplateMiddle = 12, +>TemplateMiddle : SyntaxKind + + TemplateTail = 13, +>TemplateTail : SyntaxKind + + OpenBraceToken = 14, +>OpenBraceToken : SyntaxKind + + CloseBraceToken = 15, +>CloseBraceToken : SyntaxKind + + OpenParenToken = 16, +>OpenParenToken : SyntaxKind + + CloseParenToken = 17, +>CloseParenToken : SyntaxKind + + OpenBracketToken = 18, +>OpenBracketToken : SyntaxKind + + CloseBracketToken = 19, +>CloseBracketToken : SyntaxKind + + DotToken = 20, +>DotToken : SyntaxKind + + DotDotDotToken = 21, +>DotDotDotToken : SyntaxKind + + SemicolonToken = 22, +>SemicolonToken : SyntaxKind + + CommaToken = 23, +>CommaToken : SyntaxKind + + LessThanToken = 24, +>LessThanToken : SyntaxKind + + GreaterThanToken = 25, +>GreaterThanToken : SyntaxKind + + LessThanEqualsToken = 26, +>LessThanEqualsToken : SyntaxKind + + GreaterThanEqualsToken = 27, +>GreaterThanEqualsToken : SyntaxKind + + EqualsEqualsToken = 28, +>EqualsEqualsToken : SyntaxKind + + ExclamationEqualsToken = 29, +>ExclamationEqualsToken : SyntaxKind + + EqualsEqualsEqualsToken = 30, +>EqualsEqualsEqualsToken : SyntaxKind + + ExclamationEqualsEqualsToken = 31, +>ExclamationEqualsEqualsToken : SyntaxKind + + EqualsGreaterThanToken = 32, +>EqualsGreaterThanToken : SyntaxKind + + PlusToken = 33, +>PlusToken : SyntaxKind + + MinusToken = 34, +>MinusToken : SyntaxKind + + AsteriskToken = 35, +>AsteriskToken : SyntaxKind + + SlashToken = 36, +>SlashToken : SyntaxKind + + PercentToken = 37, +>PercentToken : SyntaxKind + + PlusPlusToken = 38, +>PlusPlusToken : SyntaxKind + + MinusMinusToken = 39, +>MinusMinusToken : SyntaxKind + + LessThanLessThanToken = 40, +>LessThanLessThanToken : SyntaxKind + + GreaterThanGreaterThanToken = 41, +>GreaterThanGreaterThanToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanToken = 42, +>GreaterThanGreaterThanGreaterThanToken : SyntaxKind + + AmpersandToken = 43, +>AmpersandToken : SyntaxKind + + BarToken = 44, +>BarToken : SyntaxKind + + CaretToken = 45, +>CaretToken : SyntaxKind + + ExclamationToken = 46, +>ExclamationToken : SyntaxKind + + TildeToken = 47, +>TildeToken : SyntaxKind + + AmpersandAmpersandToken = 48, +>AmpersandAmpersandToken : SyntaxKind + + BarBarToken = 49, +>BarBarToken : SyntaxKind + + QuestionToken = 50, +>QuestionToken : SyntaxKind + + ColonToken = 51, +>ColonToken : SyntaxKind + + EqualsToken = 52, +>EqualsToken : SyntaxKind + + PlusEqualsToken = 53, +>PlusEqualsToken : SyntaxKind + + MinusEqualsToken = 54, +>MinusEqualsToken : SyntaxKind + + AsteriskEqualsToken = 55, +>AsteriskEqualsToken : SyntaxKind + + SlashEqualsToken = 56, +>SlashEqualsToken : SyntaxKind + + PercentEqualsToken = 57, +>PercentEqualsToken : SyntaxKind + + LessThanLessThanEqualsToken = 58, +>LessThanLessThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanEqualsToken = 59, +>GreaterThanGreaterThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanEqualsToken = 60, +>GreaterThanGreaterThanGreaterThanEqualsToken : SyntaxKind + + AmpersandEqualsToken = 61, +>AmpersandEqualsToken : SyntaxKind + + BarEqualsToken = 62, +>BarEqualsToken : SyntaxKind + + CaretEqualsToken = 63, +>CaretEqualsToken : SyntaxKind + + Identifier = 64, +>Identifier : SyntaxKind + + BreakKeyword = 65, +>BreakKeyword : SyntaxKind + + CaseKeyword = 66, +>CaseKeyword : SyntaxKind + + CatchKeyword = 67, +>CatchKeyword : SyntaxKind + + ClassKeyword = 68, +>ClassKeyword : SyntaxKind + + ConstKeyword = 69, +>ConstKeyword : SyntaxKind + + ContinueKeyword = 70, +>ContinueKeyword : SyntaxKind + + DebuggerKeyword = 71, +>DebuggerKeyword : SyntaxKind + + DefaultKeyword = 72, +>DefaultKeyword : SyntaxKind + + DeleteKeyword = 73, +>DeleteKeyword : SyntaxKind + + DoKeyword = 74, +>DoKeyword : SyntaxKind + + ElseKeyword = 75, +>ElseKeyword : SyntaxKind + + EnumKeyword = 76, +>EnumKeyword : SyntaxKind + + ExportKeyword = 77, +>ExportKeyword : SyntaxKind + + ExtendsKeyword = 78, +>ExtendsKeyword : SyntaxKind + + FalseKeyword = 79, +>FalseKeyword : SyntaxKind + + FinallyKeyword = 80, +>FinallyKeyword : SyntaxKind + + ForKeyword = 81, +>ForKeyword : SyntaxKind + + FunctionKeyword = 82, +>FunctionKeyword : SyntaxKind + + IfKeyword = 83, +>IfKeyword : SyntaxKind + + ImportKeyword = 84, +>ImportKeyword : SyntaxKind + + InKeyword = 85, +>InKeyword : SyntaxKind + + InstanceOfKeyword = 86, +>InstanceOfKeyword : SyntaxKind + + NewKeyword = 87, +>NewKeyword : SyntaxKind + + NullKeyword = 88, +>NullKeyword : SyntaxKind + + ReturnKeyword = 89, +>ReturnKeyword : SyntaxKind + + SuperKeyword = 90, +>SuperKeyword : SyntaxKind + + SwitchKeyword = 91, +>SwitchKeyword : SyntaxKind + + ThisKeyword = 92, +>ThisKeyword : SyntaxKind + + ThrowKeyword = 93, +>ThrowKeyword : SyntaxKind + + TrueKeyword = 94, +>TrueKeyword : SyntaxKind + + TryKeyword = 95, +>TryKeyword : SyntaxKind + + TypeOfKeyword = 96, +>TypeOfKeyword : SyntaxKind + + VarKeyword = 97, +>VarKeyword : SyntaxKind + + VoidKeyword = 98, +>VoidKeyword : SyntaxKind + + WhileKeyword = 99, +>WhileKeyword : SyntaxKind + + WithKeyword = 100, +>WithKeyword : SyntaxKind + + ImplementsKeyword = 101, +>ImplementsKeyword : SyntaxKind + + InterfaceKeyword = 102, +>InterfaceKeyword : SyntaxKind + + LetKeyword = 103, +>LetKeyword : SyntaxKind + + PackageKeyword = 104, +>PackageKeyword : SyntaxKind + + PrivateKeyword = 105, +>PrivateKeyword : SyntaxKind + + ProtectedKeyword = 106, +>ProtectedKeyword : SyntaxKind + + PublicKeyword = 107, +>PublicKeyword : SyntaxKind + + StaticKeyword = 108, +>StaticKeyword : SyntaxKind + + YieldKeyword = 109, +>YieldKeyword : SyntaxKind + + AnyKeyword = 110, +>AnyKeyword : SyntaxKind + + BooleanKeyword = 111, +>BooleanKeyword : SyntaxKind + + ConstructorKeyword = 112, +>ConstructorKeyword : SyntaxKind + + DeclareKeyword = 113, +>DeclareKeyword : SyntaxKind + + GetKeyword = 114, +>GetKeyword : SyntaxKind + + ModuleKeyword = 115, +>ModuleKeyword : SyntaxKind + + RequireKeyword = 116, +>RequireKeyword : SyntaxKind + + NumberKeyword = 117, +>NumberKeyword : SyntaxKind + + SetKeyword = 118, +>SetKeyword : SyntaxKind + + StringKeyword = 119, +>StringKeyword : SyntaxKind + + TypeKeyword = 120, +>TypeKeyword : SyntaxKind + + QualifiedName = 121, +>QualifiedName : SyntaxKind + + ComputedPropertyName = 122, +>ComputedPropertyName : SyntaxKind + + TypeParameter = 123, +>TypeParameter : SyntaxKind + + Parameter = 124, +>Parameter : SyntaxKind + + PropertySignature = 125, +>PropertySignature : SyntaxKind + + PropertyDeclaration = 126, +>PropertyDeclaration : SyntaxKind + + MethodSignature = 127, +>MethodSignature : SyntaxKind + + MethodDeclaration = 128, +>MethodDeclaration : SyntaxKind + + Constructor = 129, +>Constructor : SyntaxKind + + GetAccessor = 130, +>GetAccessor : SyntaxKind + + SetAccessor = 131, +>SetAccessor : SyntaxKind + + CallSignature = 132, +>CallSignature : SyntaxKind + + ConstructSignature = 133, +>ConstructSignature : SyntaxKind + + IndexSignature = 134, +>IndexSignature : SyntaxKind + + TypeReference = 135, +>TypeReference : SyntaxKind + + FunctionType = 136, +>FunctionType : SyntaxKind + + ConstructorType = 137, +>ConstructorType : SyntaxKind + + TypeQuery = 138, +>TypeQuery : SyntaxKind + + TypeLiteral = 139, +>TypeLiteral : SyntaxKind + + ArrayType = 140, +>ArrayType : SyntaxKind + + TupleType = 141, +>TupleType : SyntaxKind + + UnionType = 142, +>UnionType : SyntaxKind + + ParenthesizedType = 143, +>ParenthesizedType : SyntaxKind + + ObjectBindingPattern = 144, +>ObjectBindingPattern : SyntaxKind + + ArrayBindingPattern = 145, +>ArrayBindingPattern : SyntaxKind + + BindingElement = 146, +>BindingElement : SyntaxKind + + ArrayLiteralExpression = 147, +>ArrayLiteralExpression : SyntaxKind + + ObjectLiteralExpression = 148, +>ObjectLiteralExpression : SyntaxKind + + PropertyAccessExpression = 149, +>PropertyAccessExpression : SyntaxKind + + ElementAccessExpression = 150, +>ElementAccessExpression : SyntaxKind + + CallExpression = 151, +>CallExpression : SyntaxKind + + NewExpression = 152, +>NewExpression : SyntaxKind + + TaggedTemplateExpression = 153, +>TaggedTemplateExpression : SyntaxKind + + TypeAssertionExpression = 154, +>TypeAssertionExpression : SyntaxKind + + ParenthesizedExpression = 155, +>ParenthesizedExpression : SyntaxKind + + FunctionExpression = 156, +>FunctionExpression : SyntaxKind + + ArrowFunction = 157, +>ArrowFunction : SyntaxKind + + DeleteExpression = 158, +>DeleteExpression : SyntaxKind + + TypeOfExpression = 159, +>TypeOfExpression : SyntaxKind + + VoidExpression = 160, +>VoidExpression : SyntaxKind + + PrefixUnaryExpression = 161, +>PrefixUnaryExpression : SyntaxKind + + PostfixUnaryExpression = 162, +>PostfixUnaryExpression : SyntaxKind + + BinaryExpression = 163, +>BinaryExpression : SyntaxKind + + ConditionalExpression = 164, +>ConditionalExpression : SyntaxKind + + TemplateExpression = 165, +>TemplateExpression : SyntaxKind + + YieldExpression = 166, +>YieldExpression : SyntaxKind + + SpreadElementExpression = 167, +>SpreadElementExpression : SyntaxKind + + OmittedExpression = 168, +>OmittedExpression : SyntaxKind + + TemplateSpan = 169, +>TemplateSpan : SyntaxKind + + Block = 170, +>Block : SyntaxKind + + VariableStatement = 171, +>VariableStatement : SyntaxKind + + EmptyStatement = 172, +>EmptyStatement : SyntaxKind + + ExpressionStatement = 173, +>ExpressionStatement : SyntaxKind + + IfStatement = 174, +>IfStatement : SyntaxKind + + DoStatement = 175, +>DoStatement : SyntaxKind + + WhileStatement = 176, +>WhileStatement : SyntaxKind + + ForStatement = 177, +>ForStatement : SyntaxKind + + ForInStatement = 178, +>ForInStatement : SyntaxKind + + ContinueStatement = 179, +>ContinueStatement : SyntaxKind + + BreakStatement = 180, +>BreakStatement : SyntaxKind + + ReturnStatement = 181, +>ReturnStatement : SyntaxKind + + WithStatement = 182, +>WithStatement : SyntaxKind + + SwitchStatement = 183, +>SwitchStatement : SyntaxKind + + LabeledStatement = 184, +>LabeledStatement : SyntaxKind + + ThrowStatement = 185, +>ThrowStatement : SyntaxKind + + TryStatement = 186, +>TryStatement : SyntaxKind + + DebuggerStatement = 187, +>DebuggerStatement : SyntaxKind + + VariableDeclaration = 188, +>VariableDeclaration : SyntaxKind + + VariableDeclarationList = 189, +>VariableDeclarationList : SyntaxKind + + FunctionDeclaration = 190, +>FunctionDeclaration : SyntaxKind + + ClassDeclaration = 191, +>ClassDeclaration : SyntaxKind + + InterfaceDeclaration = 192, +>InterfaceDeclaration : SyntaxKind + + TypeAliasDeclaration = 193, +>TypeAliasDeclaration : SyntaxKind + + EnumDeclaration = 194, +>EnumDeclaration : SyntaxKind + + ModuleDeclaration = 195, +>ModuleDeclaration : SyntaxKind + + ModuleBlock = 196, +>ModuleBlock : SyntaxKind + + ImportDeclaration = 197, +>ImportDeclaration : SyntaxKind + + ExportAssignment = 198, +>ExportAssignment : SyntaxKind + + ExternalModuleReference = 199, +>ExternalModuleReference : SyntaxKind + + CaseClause = 200, +>CaseClause : SyntaxKind + + DefaultClause = 201, +>DefaultClause : SyntaxKind + + HeritageClause = 202, +>HeritageClause : SyntaxKind + + CatchClause = 203, +>CatchClause : SyntaxKind + + PropertyAssignment = 204, +>PropertyAssignment : SyntaxKind + + ShorthandPropertyAssignment = 205, +>ShorthandPropertyAssignment : SyntaxKind + + EnumMember = 206, +>EnumMember : SyntaxKind + + SourceFile = 207, +>SourceFile : SyntaxKind + + SyntaxList = 208, +>SyntaxList : SyntaxKind + + Count = 209, +>Count : SyntaxKind + + FirstAssignment = 52, +>FirstAssignment : SyntaxKind + + LastAssignment = 63, +>LastAssignment : SyntaxKind + + FirstReservedWord = 65, +>FirstReservedWord : SyntaxKind + + LastReservedWord = 100, +>LastReservedWord : SyntaxKind + + FirstKeyword = 65, +>FirstKeyword : SyntaxKind + + LastKeyword = 120, +>LastKeyword : SyntaxKind + + FirstFutureReservedWord = 101, +>FirstFutureReservedWord : SyntaxKind + + LastFutureReservedWord = 109, +>LastFutureReservedWord : SyntaxKind + + FirstTypeNode = 135, +>FirstTypeNode : SyntaxKind + + LastTypeNode = 143, +>LastTypeNode : SyntaxKind + + FirstPunctuation = 14, +>FirstPunctuation : SyntaxKind + + LastPunctuation = 63, +>LastPunctuation : SyntaxKind + + FirstToken = 0, +>FirstToken : SyntaxKind + + LastToken = 120, +>LastToken : SyntaxKind + + FirstTriviaToken = 2, +>FirstTriviaToken : SyntaxKind + + LastTriviaToken = 6, +>LastTriviaToken : SyntaxKind + + FirstLiteralToken = 7, +>FirstLiteralToken : SyntaxKind + + LastLiteralToken = 10, +>LastLiteralToken : SyntaxKind + + FirstTemplateToken = 10, +>FirstTemplateToken : SyntaxKind + + LastTemplateToken = 13, +>LastTemplateToken : SyntaxKind + + FirstBinaryOperator = 24, +>FirstBinaryOperator : SyntaxKind + + LastBinaryOperator = 63, +>LastBinaryOperator : SyntaxKind + + FirstNode = 121, +>FirstNode : SyntaxKind + } + const enum NodeFlags { +>NodeFlags : NodeFlags + + Export = 1, +>Export : NodeFlags + + Ambient = 2, +>Ambient : NodeFlags + + Public = 16, +>Public : NodeFlags + + Private = 32, +>Private : NodeFlags + + Protected = 64, +>Protected : NodeFlags + + Static = 128, +>Static : NodeFlags + + MultiLine = 256, +>MultiLine : NodeFlags + + Synthetic = 512, +>Synthetic : NodeFlags + + DeclarationFile = 1024, +>DeclarationFile : NodeFlags + + Let = 2048, +>Let : NodeFlags + + Const = 4096, +>Const : NodeFlags + + OctalLiteral = 8192, +>OctalLiteral : NodeFlags + + Modifier = 243, +>Modifier : NodeFlags + + AccessibilityModifier = 112, +>AccessibilityModifier : NodeFlags + + BlockScoped = 6144, +>BlockScoped : NodeFlags + } + const enum ParserContextFlags { +>ParserContextFlags : ParserContextFlags + + StrictMode = 1, +>StrictMode : ParserContextFlags + + DisallowIn = 2, +>DisallowIn : ParserContextFlags + + Yield = 4, +>Yield : ParserContextFlags + + GeneratorParameter = 8, +>GeneratorParameter : ParserContextFlags + + ThisNodeHasError = 16, +>ThisNodeHasError : ParserContextFlags + + ParserGeneratedFlags = 31, +>ParserGeneratedFlags : ParserContextFlags + + ThisNodeOrAnySubNodesHasError = 32, +>ThisNodeOrAnySubNodesHasError : ParserContextFlags + + HasAggregatedChildData = 64, +>HasAggregatedChildData : ParserContextFlags + } + interface Node extends TextRange { +>Node : Node +>TextRange : TextRange + + kind: SyntaxKind; +>kind : SyntaxKind +>SyntaxKind : SyntaxKind + + flags: NodeFlags; +>flags : NodeFlags +>NodeFlags : NodeFlags + + parserContextFlags?: ParserContextFlags; +>parserContextFlags : ParserContextFlags +>ParserContextFlags : ParserContextFlags + + id?: number; +>id : number + + parent?: Node; +>parent : Node +>Node : Node + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + + locals?: SymbolTable; +>locals : SymbolTable +>SymbolTable : SymbolTable + + nextContainer?: Node; +>nextContainer : Node +>Node : Node + + localSymbol?: Symbol; +>localSymbol : Symbol +>Symbol : Symbol + + modifiers?: ModifiersArray; +>modifiers : ModifiersArray +>ModifiersArray : ModifiersArray + } + interface NodeArray extends Array, TextRange { +>NodeArray : NodeArray +>T : T +>Array : T[] +>T : T +>TextRange : TextRange + + hasTrailingComma?: boolean; +>hasTrailingComma : boolean + } + interface ModifiersArray extends NodeArray { +>ModifiersArray : ModifiersArray +>NodeArray : NodeArray +>Node : Node + + flags: number; +>flags : number + } + interface Identifier extends PrimaryExpression { +>Identifier : Identifier +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + } + interface QualifiedName extends Node { +>QualifiedName : QualifiedName +>Node : Node + + left: EntityName; +>left : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + right: Identifier; +>right : Identifier +>Identifier : Identifier + } + type EntityName = Identifier | QualifiedName; +>EntityName : Identifier | QualifiedName +>Identifier : Identifier +>QualifiedName : QualifiedName + + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>Identifier : Identifier +>LiteralExpression : LiteralExpression +>ComputedPropertyName : ComputedPropertyName +>BindingPattern : BindingPattern + + interface Declaration extends Node { +>Declaration : Declaration +>Node : Node + + _declarationBrand: any; +>_declarationBrand : any + + name?: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + } + interface ComputedPropertyName extends Node { +>ComputedPropertyName : ComputedPropertyName +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TypeParameterDeclaration extends Declaration { +>TypeParameterDeclaration : TypeParameterDeclaration +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + constraint?: TypeNode; +>constraint : TypeNode +>TypeNode : TypeNode + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface SignatureDeclaration extends Declaration { +>SignatureDeclaration : SignatureDeclaration +>Declaration : Declaration + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + parameters: NodeArray; +>parameters : NodeArray +>NodeArray : NodeArray +>ParameterDeclaration : ParameterDeclaration + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface VariableDeclaration extends Declaration { +>VariableDeclaration : VariableDeclaration +>Declaration : Declaration + + parent?: VariableDeclarationList; +>parent : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface VariableDeclarationList extends Node { +>VariableDeclarationList : VariableDeclarationList +>Node : Node + + declarations: NodeArray; +>declarations : NodeArray +>NodeArray : NodeArray +>VariableDeclaration : VariableDeclaration + } + interface ParameterDeclaration extends Declaration { +>ParameterDeclaration : ParameterDeclaration +>Declaration : Declaration + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingElement extends Declaration { +>BindingElement : BindingElement +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface PropertyDeclaration extends Declaration, ClassElement { +>PropertyDeclaration : PropertyDeclaration +>Declaration : Declaration +>ClassElement : ClassElement + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface ObjectLiteralElement extends Declaration { +>ObjectLiteralElement : ObjectLiteralElement +>Declaration : Declaration + + _objectLiteralBrandBrand: any; +>_objectLiteralBrandBrand : any + } + interface PropertyAssignment extends ObjectLiteralElement { +>PropertyAssignment : PropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + _propertyAssignmentBrand: any; +>_propertyAssignmentBrand : any + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + initializer: Expression; +>initializer : Expression +>Expression : Expression + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { +>ShorthandPropertyAssignment : ShorthandPropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + questionToken?: Node; +>questionToken : Node +>Node : Node + } + interface VariableLikeDeclaration extends Declaration { +>VariableLikeDeclaration : VariableLikeDeclaration +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingPattern extends Node { +>BindingPattern : BindingPattern +>Node : Node + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>BindingElement : BindingElement + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { +>FunctionLikeDeclaration : FunctionLikeDeclaration +>SignatureDeclaration : SignatureDeclaration + + _functionLikeDeclarationBrand: any; +>_functionLikeDeclarationBrand : any + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + questionToken?: Node; +>questionToken : Node +>Node : Node + + body?: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { +>FunctionDeclaration : FunctionDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>Statement : Statement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + body?: Block; +>body : Block +>Block : Block + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>MethodDeclaration : MethodDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + body?: Block; +>body : Block +>Block : Block + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { +>ConstructorDeclaration : ConstructorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement + + body?: Block; +>body : Block +>Block : Block + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>AccessorDeclaration : AccessorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + _accessorDeclarationBrand: any; +>_accessorDeclarationBrand : any + + body: Block; +>body : Block +>Block : Block + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { +>IndexSignatureDeclaration : IndexSignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>ClassElement : ClassElement + + _indexSignatureDeclarationBrand: any; +>_indexSignatureDeclarationBrand : any + } + interface TypeNode extends Node { +>TypeNode : TypeNode +>Node : Node + + _typeNodeBrand: any; +>_typeNodeBrand : any + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { +>FunctionOrConstructorTypeNode : FunctionOrConstructorTypeNode +>TypeNode : TypeNode +>SignatureDeclaration : SignatureDeclaration + + _functionOrConstructorTypeNodeBrand: any; +>_functionOrConstructorTypeNodeBrand : any + } + interface TypeReferenceNode extends TypeNode { +>TypeReferenceNode : TypeReferenceNode +>TypeNode : TypeNode + + typeName: EntityName; +>typeName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface TypeQueryNode extends TypeNode { +>TypeQueryNode : TypeQueryNode +>TypeNode : TypeNode + + exprName: EntityName; +>exprName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + } + interface TypeLiteralNode extends TypeNode, Declaration { +>TypeLiteralNode : TypeLiteralNode +>TypeNode : TypeNode +>Declaration : Declaration + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Node : Node + } + interface ArrayTypeNode extends TypeNode { +>ArrayTypeNode : ArrayTypeNode +>TypeNode : TypeNode + + elementType: TypeNode; +>elementType : TypeNode +>TypeNode : TypeNode + } + interface TupleTypeNode extends TypeNode { +>TupleTypeNode : TupleTypeNode +>TypeNode : TypeNode + + elementTypes: NodeArray; +>elementTypes : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface UnionTypeNode extends TypeNode { +>UnionTypeNode : UnionTypeNode +>TypeNode : TypeNode + + types: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface ParenthesizedTypeNode extends TypeNode { +>ParenthesizedTypeNode : ParenthesizedTypeNode +>TypeNode : TypeNode + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { +>StringLiteralTypeNode : StringLiteralTypeNode +>LiteralExpression : LiteralExpression +>TypeNode : TypeNode + } + interface Expression extends Node { +>Expression : Expression +>Node : Node + + _expressionBrand: any; +>_expressionBrand : any + + contextualType?: Type; +>contextualType : Type +>Type : Type + } + interface UnaryExpression extends Expression { +>UnaryExpression : UnaryExpression +>Expression : Expression + + _unaryExpressionBrand: any; +>_unaryExpressionBrand : any + } + interface PrefixUnaryExpression extends UnaryExpression { +>PrefixUnaryExpression : PrefixUnaryExpression +>UnaryExpression : UnaryExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + operand: UnaryExpression; +>operand : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface PostfixUnaryExpression extends PostfixExpression { +>PostfixUnaryExpression : PostfixUnaryExpression +>PostfixExpression : PostfixExpression + + operand: LeftHandSideExpression; +>operand : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + } + interface PostfixExpression extends UnaryExpression { +>PostfixExpression : PostfixExpression +>UnaryExpression : UnaryExpression + + _postfixExpressionBrand: any; +>_postfixExpressionBrand : any + } + interface LeftHandSideExpression extends PostfixExpression { +>LeftHandSideExpression : LeftHandSideExpression +>PostfixExpression : PostfixExpression + + _leftHandSideExpressionBrand: any; +>_leftHandSideExpressionBrand : any + } + interface MemberExpression extends LeftHandSideExpression { +>MemberExpression : MemberExpression +>LeftHandSideExpression : LeftHandSideExpression + + _memberExpressionBrand: any; +>_memberExpressionBrand : any + } + interface PrimaryExpression extends MemberExpression { +>PrimaryExpression : PrimaryExpression +>MemberExpression : MemberExpression + + _primaryExpressionBrand: any; +>_primaryExpressionBrand : any + } + interface DeleteExpression extends UnaryExpression { +>DeleteExpression : DeleteExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface TypeOfExpression extends UnaryExpression { +>TypeOfExpression : TypeOfExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface VoidExpression extends UnaryExpression { +>VoidExpression : VoidExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface YieldExpression extends Expression { +>YieldExpression : YieldExpression +>Expression : Expression + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BinaryExpression extends Expression { +>BinaryExpression : BinaryExpression +>Expression : Expression + + left: Expression; +>left : Expression +>Expression : Expression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + right: Expression; +>right : Expression +>Expression : Expression + } + interface ConditionalExpression extends Expression { +>ConditionalExpression : ConditionalExpression +>Expression : Expression + + condition: Expression; +>condition : Expression +>Expression : Expression + + whenTrue: Expression; +>whenTrue : Expression +>Expression : Expression + + whenFalse: Expression; +>whenFalse : Expression +>Expression : Expression + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { +>FunctionExpression : FunctionExpression +>PrimaryExpression : PrimaryExpression +>FunctionLikeDeclaration : FunctionLikeDeclaration + + name?: Identifier; +>name : Identifier +>Identifier : Identifier + + body: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface LiteralExpression extends PrimaryExpression { +>LiteralExpression : LiteralExpression +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + + isUnterminated?: boolean; +>isUnterminated : boolean + } + interface StringLiteralExpression extends LiteralExpression { +>StringLiteralExpression : StringLiteralExpression +>LiteralExpression : LiteralExpression + + _stringLiteralExpressionBrand: any; +>_stringLiteralExpressionBrand : any + } + interface TemplateExpression extends PrimaryExpression { +>TemplateExpression : TemplateExpression +>PrimaryExpression : PrimaryExpression + + head: LiteralExpression; +>head : LiteralExpression +>LiteralExpression : LiteralExpression + + templateSpans: NodeArray; +>templateSpans : NodeArray +>NodeArray : NodeArray +>TemplateSpan : TemplateSpan + } + interface TemplateSpan extends Node { +>TemplateSpan : TemplateSpan +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + + literal: LiteralExpression; +>literal : LiteralExpression +>LiteralExpression : LiteralExpression + } + interface ParenthesizedExpression extends PrimaryExpression { +>ParenthesizedExpression : ParenthesizedExpression +>PrimaryExpression : PrimaryExpression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ArrayLiteralExpression extends PrimaryExpression { +>ArrayLiteralExpression : ArrayLiteralExpression +>PrimaryExpression : PrimaryExpression + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface SpreadElementExpression extends Expression { +>SpreadElementExpression : SpreadElementExpression +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { +>ObjectLiteralExpression : ObjectLiteralExpression +>PrimaryExpression : PrimaryExpression +>Declaration : Declaration + + properties: NodeArray; +>properties : NodeArray +>NodeArray : NodeArray +>ObjectLiteralElement : ObjectLiteralElement + } + interface PropertyAccessExpression extends MemberExpression { +>PropertyAccessExpression : PropertyAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + name: Identifier; +>name : Identifier +>Identifier : Identifier + } + interface ElementAccessExpression extends MemberExpression { +>ElementAccessExpression : ElementAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + argumentExpression?: Expression; +>argumentExpression : Expression +>Expression : Expression + } + interface CallExpression extends LeftHandSideExpression { +>CallExpression : CallExpression +>LeftHandSideExpression : LeftHandSideExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + + arguments: NodeArray; +>arguments : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface NewExpression extends CallExpression, PrimaryExpression { +>NewExpression : NewExpression +>CallExpression : CallExpression +>PrimaryExpression : PrimaryExpression + } + interface TaggedTemplateExpression extends MemberExpression { +>TaggedTemplateExpression : TaggedTemplateExpression +>MemberExpression : MemberExpression + + tag: LeftHandSideExpression; +>tag : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + template: LiteralExpression | TemplateExpression; +>template : LiteralExpression | TemplateExpression +>LiteralExpression : LiteralExpression +>TemplateExpression : TemplateExpression + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>CallExpression : CallExpression +>NewExpression : NewExpression +>TaggedTemplateExpression : TaggedTemplateExpression + + interface TypeAssertion extends UnaryExpression { +>TypeAssertion : TypeAssertion +>UnaryExpression : UnaryExpression + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface Statement extends Node, ModuleElement { +>Statement : Statement +>Node : Node +>ModuleElement : ModuleElement + + _statementBrand: any; +>_statementBrand : any + } + interface Block extends Statement { +>Block : Block +>Statement : Statement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface VariableStatement extends Statement { +>VariableStatement : VariableStatement +>Statement : Statement + + declarationList: VariableDeclarationList; +>declarationList : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + } + interface ExpressionStatement extends Statement { +>ExpressionStatement : ExpressionStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface IfStatement extends Statement { +>IfStatement : IfStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + thenStatement: Statement; +>thenStatement : Statement +>Statement : Statement + + elseStatement?: Statement; +>elseStatement : Statement +>Statement : Statement + } + interface IterationStatement extends Statement { +>IterationStatement : IterationStatement +>Statement : Statement + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface DoStatement extends IterationStatement { +>DoStatement : DoStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface WhileStatement extends IterationStatement { +>WhileStatement : WhileStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ForStatement extends IterationStatement { +>ForStatement : ForStatement +>IterationStatement : IterationStatement + + initializer?: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + condition?: Expression; +>condition : Expression +>Expression : Expression + + iterator?: Expression; +>iterator : Expression +>Expression : Expression + } + interface ForInStatement extends IterationStatement { +>ForInStatement : ForInStatement +>IterationStatement : IterationStatement + + initializer: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BreakOrContinueStatement extends Statement { +>BreakOrContinueStatement : BreakOrContinueStatement +>Statement : Statement + + label?: Identifier; +>label : Identifier +>Identifier : Identifier + } + interface ReturnStatement extends Statement { +>ReturnStatement : ReturnStatement +>Statement : Statement + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface WithStatement extends Statement { +>WithStatement : WithStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface SwitchStatement extends Statement { +>SwitchStatement : SwitchStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + clauses: NodeArray; +>clauses : NodeArray +>NodeArray : NodeArray +>CaseOrDefaultClause : CaseClause | DefaultClause + } + interface CaseClause extends Node { +>CaseClause : CaseClause +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface DefaultClause extends Node { +>DefaultClause : DefaultClause +>Node : Node + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + type CaseOrDefaultClause = CaseClause | DefaultClause; +>CaseOrDefaultClause : CaseClause | DefaultClause +>CaseClause : CaseClause +>DefaultClause : DefaultClause + + interface LabeledStatement extends Statement { +>LabeledStatement : LabeledStatement +>Statement : Statement + + label: Identifier; +>label : Identifier +>Identifier : Identifier + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface ThrowStatement extends Statement { +>ThrowStatement : ThrowStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TryStatement extends Statement { +>TryStatement : TryStatement +>Statement : Statement + + tryBlock: Block; +>tryBlock : Block +>Block : Block + + catchClause?: CatchClause; +>catchClause : CatchClause +>CatchClause : CatchClause + + finallyBlock?: Block; +>finallyBlock : Block +>Block : Block + } + interface CatchClause extends Declaration { +>CatchClause : CatchClause +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + block: Block; +>block : Block +>Block : Block + } + interface ModuleElement extends Node { +>ModuleElement : ModuleElement +>Node : Node + + _moduleElementBrand: any; +>_moduleElementBrand : any + } + interface ClassDeclaration extends Declaration, ModuleElement { +>ClassDeclaration : ClassDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>ClassElement : ClassElement + } + interface ClassElement extends Declaration { +>ClassElement : ClassElement +>Declaration : Declaration + + _classElementBrand: any; +>_classElementBrand : any + } + interface InterfaceDeclaration extends Declaration, ModuleElement { +>InterfaceDeclaration : InterfaceDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Declaration : Declaration + } + interface HeritageClause extends Node { +>HeritageClause : HeritageClause +>Node : Node + + token: SyntaxKind; +>token : SyntaxKind +>SyntaxKind : SyntaxKind + + types?: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeReferenceNode : TypeReferenceNode + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { +>TypeAliasDeclaration : TypeAliasDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface EnumMember extends Declaration { +>EnumMember : EnumMember +>Declaration : Declaration + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface EnumDeclaration extends Declaration, ModuleElement { +>EnumDeclaration : EnumDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>EnumMember : EnumMember + } + interface ModuleDeclaration extends Declaration, ModuleElement { +>ModuleDeclaration : ModuleDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier | LiteralExpression; +>name : Identifier | LiteralExpression +>Identifier : Identifier +>LiteralExpression : LiteralExpression + + body: ModuleBlock | ModuleDeclaration; +>body : ModuleDeclaration | ModuleBlock +>ModuleBlock : ModuleBlock +>ModuleDeclaration : ModuleDeclaration + } + interface ModuleBlock extends Node, ModuleElement { +>ModuleBlock : ModuleBlock +>Node : Node +>ModuleElement : ModuleElement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + } + interface ImportDeclaration extends Declaration, ModuleElement { +>ImportDeclaration : ImportDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + moduleReference: EntityName | ExternalModuleReference; +>moduleReference : Identifier | QualifiedName | ExternalModuleReference +>EntityName : Identifier | QualifiedName +>ExternalModuleReference : ExternalModuleReference + } + interface ExternalModuleReference extends Node { +>ExternalModuleReference : ExternalModuleReference +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface ExportAssignment extends Statement, ModuleElement { +>ExportAssignment : ExportAssignment +>Statement : Statement +>ModuleElement : ModuleElement + + exportName: Identifier; +>exportName : Identifier +>Identifier : Identifier + } + interface FileReference extends TextRange { +>FileReference : FileReference +>TextRange : TextRange + + filename: string; +>filename : string + } + interface CommentRange extends TextRange { +>CommentRange : CommentRange +>TextRange : TextRange + + hasTrailingNewLine?: boolean; +>hasTrailingNewLine : boolean + } + interface SourceFile extends Declaration { +>SourceFile : SourceFile +>Declaration : Declaration + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + + endOfFileToken: Node; +>endOfFileToken : Node +>Node : Node + + filename: string; +>filename : string + + text: string; +>text : string + + getLineAndCharacterFromPosition(position: number): LineAndCharacter; +>getLineAndCharacterFromPosition : (position: number) => LineAndCharacter +>position : number +>LineAndCharacter : LineAndCharacter + + getPositionFromLineAndCharacter(line: number, character: number): number; +>getPositionFromLineAndCharacter : (line: number, character: number) => number +>line : number +>character : number + + getLineStarts(): number[]; +>getLineStarts : () => number[] + + update(newText: string, textChangeRange: TextChangeRange): SourceFile; +>update : (newText: string, textChangeRange: TextChangeRange) => SourceFile +>newText : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + amdDependencies: string[]; +>amdDependencies : string[] + + amdModuleName: string; +>amdModuleName : string + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + referenceDiagnostics: Diagnostic[]; +>referenceDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + parseDiagnostics: Diagnostic[]; +>parseDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticDiagnostics(): Diagnostic[]; +>getSyntacticDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + semanticDiagnostics: Diagnostic[]; +>semanticDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + hasNoDefaultLib: boolean; +>hasNoDefaultLib : boolean + + externalModuleIndicator: Node; +>externalModuleIndicator : Node +>Node : Node + + nodeCount: number; +>nodeCount : number + + identifierCount: number; +>identifierCount : number + + symbolCount: number; +>symbolCount : number + + languageVersion: ScriptTarget; +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + identifiers: Map; +>identifiers : Map +>Map : Map + } + interface ScriptReferenceHost { +>ScriptReferenceHost : ScriptReferenceHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + } + interface Program extends ScriptReferenceHost { +>Program : Program +>ScriptReferenceHost : ScriptReferenceHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; +>getDeclarationDiagnostics : (sourceFile: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getTypeChecker(produceDiagnostics: boolean): TypeChecker; +>getTypeChecker : (produceDiagnostics: boolean) => TypeChecker +>produceDiagnostics : boolean +>TypeChecker : TypeChecker + + getCommonSourceDirectory(): string; +>getCommonSourceDirectory : () => string + + emitFiles(targetSourceFile?: SourceFile): EmitResult; +>emitFiles : (targetSourceFile?: SourceFile) => EmitResult +>targetSourceFile : SourceFile +>SourceFile : SourceFile +>EmitResult : EmitResult + + isEmitBlocked(sourceFile?: SourceFile): boolean; +>isEmitBlocked : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + } + interface SourceMapSpan { +>SourceMapSpan : SourceMapSpan + + emittedLine: number; +>emittedLine : number + + emittedColumn: number; +>emittedColumn : number + + sourceLine: number; +>sourceLine : number + + sourceColumn: number; +>sourceColumn : number + + nameIndex?: number; +>nameIndex : number + + sourceIndex: number; +>sourceIndex : number + } + interface SourceMapData { +>SourceMapData : SourceMapData + + sourceMapFilePath: string; +>sourceMapFilePath : string + + jsSourceMappingURL: string; +>jsSourceMappingURL : string + + sourceMapFile: string; +>sourceMapFile : string + + sourceMapSourceRoot: string; +>sourceMapSourceRoot : string + + sourceMapSources: string[]; +>sourceMapSources : string[] + + inputSourceFileNames: string[]; +>inputSourceFileNames : string[] + + sourceMapNames?: string[]; +>sourceMapNames : string[] + + sourceMapMappings: string; +>sourceMapMappings : string + + sourceMapDecodedMappings: SourceMapSpan[]; +>sourceMapDecodedMappings : SourceMapSpan[] +>SourceMapSpan : SourceMapSpan + } + enum EmitReturnStatus { +>EmitReturnStatus : EmitReturnStatus + + Succeeded = 0, +>Succeeded : EmitReturnStatus + + AllOutputGenerationSkipped = 1, +>AllOutputGenerationSkipped : EmitReturnStatus + + JSGeneratedWithSemanticErrors = 2, +>JSGeneratedWithSemanticErrors : EmitReturnStatus + + DeclarationGenerationSkipped = 3, +>DeclarationGenerationSkipped : EmitReturnStatus + + EmitErrorsEncountered = 4, +>EmitErrorsEncountered : EmitReturnStatus + + CompilerOptionsErrors = 5, +>CompilerOptionsErrors : EmitReturnStatus + } + interface EmitResult { +>EmitResult : EmitResult + + emitResultStatus: EmitReturnStatus; +>emitResultStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + + diagnostics: Diagnostic[]; +>diagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + sourceMaps: SourceMapData[]; +>sourceMaps : SourceMapData[] +>SourceMapData : SourceMapData + } + interface TypeCheckerHost { +>TypeCheckerHost : TypeCheckerHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + } + interface TypeChecker { +>TypeChecker : TypeChecker + + getEmitResolver(): EmitResolver; +>getEmitResolver : () => EmitResolver +>EmitResolver : EmitResolver + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getNodeCount(): number; +>getNodeCount : () => number + + getIdentifierCount(): number; +>getIdentifierCount : () => number + + getSymbolCount(): number; +>getSymbolCount : () => number + + getTypeCount(): number; +>getTypeCount : () => number + + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; +>getTypeOfSymbolAtLocation : (symbol: Symbol, node: Node) => Type +>symbol : Symbol +>Symbol : Symbol +>node : Node +>Node : Node +>Type : Type + + getDeclaredTypeOfSymbol(symbol: Symbol): Type; +>getDeclaredTypeOfSymbol : (symbol: Symbol) => Type +>symbol : Symbol +>Symbol : Symbol +>Type : Type + + getPropertiesOfType(type: Type): Symbol[]; +>getPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getPropertyOfType(type: Type, propertyName: string): Symbol; +>getPropertyOfType : (type: Type, propertyName: string) => Symbol +>type : Type +>Type : Type +>propertyName : string +>Symbol : Symbol + + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; +>getSignaturesOfType : (type: Type, kind: SignatureKind) => Signature[] +>type : Type +>Type : Type +>kind : SignatureKind +>SignatureKind : SignatureKind +>Signature : Signature + + getIndexTypeOfType(type: Type, kind: IndexKind): Type; +>getIndexTypeOfType : (type: Type, kind: IndexKind) => Type +>type : Type +>Type : Type +>kind : IndexKind +>IndexKind : IndexKind +>Type : Type + + getReturnTypeOfSignature(signature: Signature): Type; +>getReturnTypeOfSignature : (signature: Signature) => Type +>signature : Signature +>Signature : Signature +>Type : Type + + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; +>getSymbolsInScope : (location: Node, meaning: SymbolFlags) => Symbol[] +>location : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>Symbol : Symbol + + getSymbolAtLocation(node: Node): Symbol; +>getSymbolAtLocation : (node: Node) => Symbol +>node : Node +>Node : Node +>Symbol : Symbol + + getShorthandAssignmentValueSymbol(location: Node): Symbol; +>getShorthandAssignmentValueSymbol : (location: Node) => Symbol +>location : Node +>Node : Node +>Symbol : Symbol + + getTypeAtLocation(node: Node): Type; +>getTypeAtLocation : (node: Node) => Type +>node : Node +>Node : Node +>Type : Type + + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; +>typeToString : (type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => string +>type : Type +>Type : Type +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; +>symbolToString : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => string +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + + getSymbolDisplayBuilder(): SymbolDisplayBuilder; +>getSymbolDisplayBuilder : () => SymbolDisplayBuilder +>SymbolDisplayBuilder : SymbolDisplayBuilder + + getFullyQualifiedName(symbol: Symbol): string; +>getFullyQualifiedName : (symbol: Symbol) => string +>symbol : Symbol +>Symbol : Symbol + + getAugmentedPropertiesOfType(type: Type): Symbol[]; +>getAugmentedPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getRootSymbols(symbol: Symbol): Symbol[]; +>getRootSymbols : (symbol: Symbol) => Symbol[] +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + + getContextualType(node: Expression): Type; +>getContextualType : (node: Expression) => Type +>node : Expression +>Expression : Expression +>Type : Type + + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; +>getResolvedSignature : (node: CallExpression | NewExpression | TaggedTemplateExpression, candidatesOutArray?: Signature[]) => Signature +>node : CallExpression | NewExpression | TaggedTemplateExpression +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>candidatesOutArray : Signature[] +>Signature : Signature +>Signature : Signature + + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; +>getSignatureFromDeclaration : (declaration: SignatureDeclaration) => Signature +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>Signature : Signature + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + isUndefinedSymbol(symbol: Symbol): boolean; +>isUndefinedSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + isArgumentsSymbol(symbol: Symbol): boolean; +>isArgumentsSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; +>isValidPropertyAccess : (node: QualifiedName | PropertyAccessExpression, propertyName: string) => boolean +>node : QualifiedName | PropertyAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>QualifiedName : QualifiedName +>propertyName : string + + getAliasedSymbol(symbol: Symbol): Symbol; +>getAliasedSymbol : (symbol: Symbol) => Symbol +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + } + interface SymbolDisplayBuilder { +>SymbolDisplayBuilder : SymbolDisplayBuilder + + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeDisplay : (type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>type : Type +>Type : Type +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; +>buildSymbolDisplay : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>flags : SymbolFormatFlags +>SymbolFormatFlags : SymbolFormatFlags + + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildSignatureDisplay : (signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signatures : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildParameterDisplay : (parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameter : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplay : (tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>tp : TypeParameter +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplayFromSymbol : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaraiton : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForParametersAndDelimiters : (parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameters : Symbol[] +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForTypeParametersAndDelimiters : (typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildReturnTypeDisplay : (signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signature : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + } + interface SymbolWriter { +>SymbolWriter : SymbolWriter + + writeKeyword(text: string): void; +>writeKeyword : (text: string) => void +>text : string + + writeOperator(text: string): void; +>writeOperator : (text: string) => void +>text : string + + writePunctuation(text: string): void; +>writePunctuation : (text: string) => void +>text : string + + writeSpace(text: string): void; +>writeSpace : (text: string) => void +>text : string + + writeStringLiteral(text: string): void; +>writeStringLiteral : (text: string) => void +>text : string + + writeParameter(text: string): void; +>writeParameter : (text: string) => void +>text : string + + writeSymbol(text: string, symbol: Symbol): void; +>writeSymbol : (text: string, symbol: Symbol) => void +>text : string +>symbol : Symbol +>Symbol : Symbol + + writeLine(): void; +>writeLine : () => void + + increaseIndent(): void; +>increaseIndent : () => void + + decreaseIndent(): void; +>decreaseIndent : () => void + + clear(): void; +>clear : () => void + + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; +>trackSymbol : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => void +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + } + const enum TypeFormatFlags { +>TypeFormatFlags : TypeFormatFlags + + None = 0, +>None : TypeFormatFlags + + WriteArrayAsGenericType = 1, +>WriteArrayAsGenericType : TypeFormatFlags + + UseTypeOfFunction = 2, +>UseTypeOfFunction : TypeFormatFlags + + NoTruncation = 4, +>NoTruncation : TypeFormatFlags + + WriteArrowStyleSignature = 8, +>WriteArrowStyleSignature : TypeFormatFlags + + WriteOwnNameForAnyLike = 16, +>WriteOwnNameForAnyLike : TypeFormatFlags + + WriteTypeArgumentsOfSignature = 32, +>WriteTypeArgumentsOfSignature : TypeFormatFlags + + InElementType = 64, +>InElementType : TypeFormatFlags + } + const enum SymbolFormatFlags { +>SymbolFormatFlags : SymbolFormatFlags + + None = 0, +>None : SymbolFormatFlags + + WriteTypeParametersOrArguments = 1, +>WriteTypeParametersOrArguments : SymbolFormatFlags + + UseOnlyExternalAliasing = 2, +>UseOnlyExternalAliasing : SymbolFormatFlags + } + const enum SymbolAccessibility { +>SymbolAccessibility : SymbolAccessibility + + Accessible = 0, +>Accessible : SymbolAccessibility + + NotAccessible = 1, +>NotAccessible : SymbolAccessibility + + CannotBeNamed = 2, +>CannotBeNamed : SymbolAccessibility + } + interface SymbolVisibilityResult { +>SymbolVisibilityResult : SymbolVisibilityResult + + accessibility: SymbolAccessibility; +>accessibility : SymbolAccessibility +>SymbolAccessibility : SymbolAccessibility + + aliasesToMakeVisible?: ImportDeclaration[]; +>aliasesToMakeVisible : ImportDeclaration[] +>ImportDeclaration : ImportDeclaration + + errorSymbolName?: string; +>errorSymbolName : string + + errorNode?: Node; +>errorNode : Node +>Node : Node + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { +>SymbolAccessiblityResult : SymbolAccessiblityResult +>SymbolVisibilityResult : SymbolVisibilityResult + + errorModuleName?: string; +>errorModuleName : string + } + interface EmitResolver { +>EmitResolver : EmitResolver + + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; +>getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string +>container : EnumDeclaration | ModuleDeclaration +>ModuleDeclaration : ModuleDeclaration +>EnumDeclaration : EnumDeclaration + + getExpressionNamePrefix(node: Identifier): string; +>getExpressionNamePrefix : (node: Identifier) => string +>node : Identifier +>Identifier : Identifier + + getExportAssignmentName(node: SourceFile): string; +>getExportAssignmentName : (node: SourceFile) => string +>node : SourceFile +>SourceFile : SourceFile + + isReferencedImportDeclaration(node: ImportDeclaration): boolean; +>isReferencedImportDeclaration : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; +>isTopLevelValueImportWithEntityName : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + getNodeCheckFlags(node: Node): NodeCheckFlags; +>getNodeCheckFlags : (node: Node) => NodeCheckFlags +>node : Node +>Node : Node +>NodeCheckFlags : NodeCheckFlags + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + hasSemanticErrors(sourceFile?: SourceFile): boolean; +>hasSemanticErrors : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + + isDeclarationVisible(node: Declaration): boolean; +>isDeclarationVisible : (node: Declaration) => boolean +>node : Declaration +>Declaration : Declaration + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeTypeOfDeclaration : (declaration: VariableLikeDeclaration | AccessorDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>declaration : VariableLikeDeclaration | AccessorDeclaration +>AccessorDeclaration : AccessorDeclaration +>VariableLikeDeclaration : VariableLikeDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeReturnTypeOfSignatureDeclaration : (signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>signatureDeclaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; +>isSymbolAccessible : (symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) => SymbolAccessiblityResult +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>SymbolAccessiblityResult : SymbolAccessiblityResult + + isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; +>isEntityNameVisible : (entityName: Identifier | QualifiedName, enclosingDeclaration: Node) => SymbolVisibilityResult +>entityName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName +>enclosingDeclaration : Node +>Node : Node +>SymbolVisibilityResult : SymbolVisibilityResult + + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; +>getConstantValue : (node: PropertyAccessExpression | ElementAccessExpression) => number +>node : PropertyAccessExpression | ElementAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>ElementAccessExpression : ElementAccessExpression + + isUnknownIdentifier(location: Node, name: string): boolean; +>isUnknownIdentifier : (location: Node, name: string) => boolean +>location : Node +>Node : Node +>name : string + } + const enum SymbolFlags { +>SymbolFlags : SymbolFlags + + FunctionScopedVariable = 1, +>FunctionScopedVariable : SymbolFlags + + BlockScopedVariable = 2, +>BlockScopedVariable : SymbolFlags + + Property = 4, +>Property : SymbolFlags + + EnumMember = 8, +>EnumMember : SymbolFlags + + Function = 16, +>Function : SymbolFlags + + Class = 32, +>Class : SymbolFlags + + Interface = 64, +>Interface : SymbolFlags + + ConstEnum = 128, +>ConstEnum : SymbolFlags + + RegularEnum = 256, +>RegularEnum : SymbolFlags + + ValueModule = 512, +>ValueModule : SymbolFlags + + NamespaceModule = 1024, +>NamespaceModule : SymbolFlags + + TypeLiteral = 2048, +>TypeLiteral : SymbolFlags + + ObjectLiteral = 4096, +>ObjectLiteral : SymbolFlags + + Method = 8192, +>Method : SymbolFlags + + Constructor = 16384, +>Constructor : SymbolFlags + + GetAccessor = 32768, +>GetAccessor : SymbolFlags + + SetAccessor = 65536, +>SetAccessor : SymbolFlags + + Signature = 131072, +>Signature : SymbolFlags + + TypeParameter = 262144, +>TypeParameter : SymbolFlags + + TypeAlias = 524288, +>TypeAlias : SymbolFlags + + ExportValue = 1048576, +>ExportValue : SymbolFlags + + ExportType = 2097152, +>ExportType : SymbolFlags + + ExportNamespace = 4194304, +>ExportNamespace : SymbolFlags + + Import = 8388608, +>Import : SymbolFlags + + Instantiated = 16777216, +>Instantiated : SymbolFlags + + Merged = 33554432, +>Merged : SymbolFlags + + Transient = 67108864, +>Transient : SymbolFlags + + Prototype = 134217728, +>Prototype : SymbolFlags + + UnionProperty = 268435456, +>UnionProperty : SymbolFlags + + Optional = 536870912, +>Optional : SymbolFlags + + Enum = 384, +>Enum : SymbolFlags + + Variable = 3, +>Variable : SymbolFlags + + Value = 107455, +>Value : SymbolFlags + + Type = 793056, +>Type : SymbolFlags + + Namespace = 1536, +>Namespace : SymbolFlags + + Module = 1536, +>Module : SymbolFlags + + Accessor = 98304, +>Accessor : SymbolFlags + + FunctionScopedVariableExcludes = 107454, +>FunctionScopedVariableExcludes : SymbolFlags + + BlockScopedVariableExcludes = 107455, +>BlockScopedVariableExcludes : SymbolFlags + + ParameterExcludes = 107455, +>ParameterExcludes : SymbolFlags + + PropertyExcludes = 107455, +>PropertyExcludes : SymbolFlags + + EnumMemberExcludes = 107455, +>EnumMemberExcludes : SymbolFlags + + FunctionExcludes = 106927, +>FunctionExcludes : SymbolFlags + + ClassExcludes = 899583, +>ClassExcludes : SymbolFlags + + InterfaceExcludes = 792992, +>InterfaceExcludes : SymbolFlags + + RegularEnumExcludes = 899327, +>RegularEnumExcludes : SymbolFlags + + ConstEnumExcludes = 899967, +>ConstEnumExcludes : SymbolFlags + + ValueModuleExcludes = 106639, +>ValueModuleExcludes : SymbolFlags + + NamespaceModuleExcludes = 0, +>NamespaceModuleExcludes : SymbolFlags + + MethodExcludes = 99263, +>MethodExcludes : SymbolFlags + + GetAccessorExcludes = 41919, +>GetAccessorExcludes : SymbolFlags + + SetAccessorExcludes = 74687, +>SetAccessorExcludes : SymbolFlags + + TypeParameterExcludes = 530912, +>TypeParameterExcludes : SymbolFlags + + TypeAliasExcludes = 793056, +>TypeAliasExcludes : SymbolFlags + + ImportExcludes = 8388608, +>ImportExcludes : SymbolFlags + + ModuleMember = 8914931, +>ModuleMember : SymbolFlags + + ExportHasLocal = 944, +>ExportHasLocal : SymbolFlags + + HasLocals = 255504, +>HasLocals : SymbolFlags + + HasExports = 1952, +>HasExports : SymbolFlags + + HasMembers = 6240, +>HasMembers : SymbolFlags + + IsContainer = 262128, +>IsContainer : SymbolFlags + + PropertyOrAccessor = 98308, +>PropertyOrAccessor : SymbolFlags + + Export = 7340032, +>Export : SymbolFlags + } + interface Symbol { +>Symbol : Symbol + + flags: SymbolFlags; +>flags : SymbolFlags +>SymbolFlags : SymbolFlags + + name: string; +>name : string + + id?: number; +>id : number + + mergeId?: number; +>mergeId : number + + declarations?: Declaration[]; +>declarations : Declaration[] +>Declaration : Declaration + + parent?: Symbol; +>parent : Symbol +>Symbol : Symbol + + members?: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + exports?: SymbolTable; +>exports : SymbolTable +>SymbolTable : SymbolTable + + exportSymbol?: Symbol; +>exportSymbol : Symbol +>Symbol : Symbol + + valueDeclaration?: Declaration; +>valueDeclaration : Declaration +>Declaration : Declaration + + constEnumOnlyModule?: boolean; +>constEnumOnlyModule : boolean + } + interface SymbolLinks { +>SymbolLinks : SymbolLinks + + target?: Symbol; +>target : Symbol +>Symbol : Symbol + + type?: Type; +>type : Type +>Type : Type + + declaredType?: Type; +>declaredType : Type +>Type : Type + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + referenced?: boolean; +>referenced : boolean + + exportAssignSymbol?: Symbol; +>exportAssignSymbol : Symbol +>Symbol : Symbol + + unionType?: UnionType; +>unionType : UnionType +>UnionType : UnionType + } + interface TransientSymbol extends Symbol, SymbolLinks { +>TransientSymbol : TransientSymbol +>Symbol : Symbol +>SymbolLinks : SymbolLinks + } + interface SymbolTable { +>SymbolTable : SymbolTable + + [index: string]: Symbol; +>index : string +>Symbol : Symbol + } + const enum NodeCheckFlags { +>NodeCheckFlags : NodeCheckFlags + + TypeChecked = 1, +>TypeChecked : NodeCheckFlags + + LexicalThis = 2, +>LexicalThis : NodeCheckFlags + + CaptureThis = 4, +>CaptureThis : NodeCheckFlags + + EmitExtends = 8, +>EmitExtends : NodeCheckFlags + + SuperInstance = 16, +>SuperInstance : NodeCheckFlags + + SuperStatic = 32, +>SuperStatic : NodeCheckFlags + + ContextChecked = 64, +>ContextChecked : NodeCheckFlags + + EnumValuesComputed = 128, +>EnumValuesComputed : NodeCheckFlags + } + interface NodeLinks { +>NodeLinks : NodeLinks + + resolvedType?: Type; +>resolvedType : Type +>Type : Type + + resolvedSignature?: Signature; +>resolvedSignature : Signature +>Signature : Signature + + resolvedSymbol?: Symbol; +>resolvedSymbol : Symbol +>Symbol : Symbol + + flags?: NodeCheckFlags; +>flags : NodeCheckFlags +>NodeCheckFlags : NodeCheckFlags + + enumMemberValue?: number; +>enumMemberValue : number + + isIllegalTypeReferenceInConstraint?: boolean; +>isIllegalTypeReferenceInConstraint : boolean + + isVisible?: boolean; +>isVisible : boolean + + localModuleName?: string; +>localModuleName : string + + assignmentChecks?: Map; +>assignmentChecks : Map +>Map : Map + + hasReportedStatementInAmbientContext?: boolean; +>hasReportedStatementInAmbientContext : boolean + + importOnRightSide?: Symbol; +>importOnRightSide : Symbol +>Symbol : Symbol + } + const enum TypeFlags { +>TypeFlags : TypeFlags + + Any = 1, +>Any : TypeFlags + + String = 2, +>String : TypeFlags + + Number = 4, +>Number : TypeFlags + + Boolean = 8, +>Boolean : TypeFlags + + Void = 16, +>Void : TypeFlags + + Undefined = 32, +>Undefined : TypeFlags + + Null = 64, +>Null : TypeFlags + + Enum = 128, +>Enum : TypeFlags + + StringLiteral = 256, +>StringLiteral : TypeFlags + + TypeParameter = 512, +>TypeParameter : TypeFlags + + Class = 1024, +>Class : TypeFlags + + Interface = 2048, +>Interface : TypeFlags + + Reference = 4096, +>Reference : TypeFlags + + Tuple = 8192, +>Tuple : TypeFlags + + Union = 16384, +>Union : TypeFlags + + Anonymous = 32768, +>Anonymous : TypeFlags + + FromSignature = 65536, +>FromSignature : TypeFlags + + ObjectLiteral = 131072, +>ObjectLiteral : TypeFlags + + ContainsUndefinedOrNull = 262144, +>ContainsUndefinedOrNull : TypeFlags + + ContainsObjectLiteral = 524288, +>ContainsObjectLiteral : TypeFlags + + Intrinsic = 127, +>Intrinsic : TypeFlags + + Primitive = 510, +>Primitive : TypeFlags + + StringLike = 258, +>StringLike : TypeFlags + + NumberLike = 132, +>NumberLike : TypeFlags + + ObjectType = 48128, +>ObjectType : TypeFlags + + RequiresWidening = 786432, +>RequiresWidening : TypeFlags + } + interface Type { +>Type : Type + + flags: TypeFlags; +>flags : TypeFlags +>TypeFlags : TypeFlags + + id: number; +>id : number + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + } + interface IntrinsicType extends Type { +>IntrinsicType : IntrinsicType +>Type : Type + + intrinsicName: string; +>intrinsicName : string + } + interface StringLiteralType extends Type { +>StringLiteralType : StringLiteralType +>Type : Type + + text: string; +>text : string + } + interface ObjectType extends Type { +>ObjectType : ObjectType +>Type : Type + } + interface InterfaceType extends ObjectType { +>InterfaceType : InterfaceType +>ObjectType : ObjectType + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + baseTypes: ObjectType[]; +>baseTypes : ObjectType[] +>ObjectType : ObjectType + + declaredProperties: Symbol[]; +>declaredProperties : Symbol[] +>Symbol : Symbol + + declaredCallSignatures: Signature[]; +>declaredCallSignatures : Signature[] +>Signature : Signature + + declaredConstructSignatures: Signature[]; +>declaredConstructSignatures : Signature[] +>Signature : Signature + + declaredStringIndexType: Type; +>declaredStringIndexType : Type +>Type : Type + + declaredNumberIndexType: Type; +>declaredNumberIndexType : Type +>Type : Type + } + interface TypeReference extends ObjectType { +>TypeReference : TypeReference +>ObjectType : ObjectType + + target: GenericType; +>target : GenericType +>GenericType : GenericType + + typeArguments: Type[]; +>typeArguments : Type[] +>Type : Type + } + interface GenericType extends InterfaceType, TypeReference { +>GenericType : GenericType +>InterfaceType : InterfaceType +>TypeReference : TypeReference + + instantiations: Map; +>instantiations : Map +>Map : Map +>TypeReference : TypeReference + } + interface TupleType extends ObjectType { +>TupleType : TupleType +>ObjectType : ObjectType + + elementTypes: Type[]; +>elementTypes : Type[] +>Type : Type + + baseArrayType: TypeReference; +>baseArrayType : TypeReference +>TypeReference : TypeReference + } + interface UnionType extends Type { +>UnionType : UnionType +>Type : Type + + types: Type[]; +>types : Type[] +>Type : Type + + resolvedProperties: SymbolTable; +>resolvedProperties : SymbolTable +>SymbolTable : SymbolTable + } + interface ResolvedType extends ObjectType, UnionType { +>ResolvedType : ResolvedType +>ObjectType : ObjectType +>UnionType : UnionType + + members: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + properties: Symbol[]; +>properties : Symbol[] +>Symbol : Symbol + + callSignatures: Signature[]; +>callSignatures : Signature[] +>Signature : Signature + + constructSignatures: Signature[]; +>constructSignatures : Signature[] +>Signature : Signature + + stringIndexType: Type; +>stringIndexType : Type +>Type : Type + + numberIndexType: Type; +>numberIndexType : Type +>Type : Type + } + interface TypeParameter extends Type { +>TypeParameter : TypeParameter +>Type : Type + + constraint: Type; +>constraint : Type +>Type : Type + + target?: TypeParameter; +>target : TypeParameter +>TypeParameter : TypeParameter + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + } + const enum SignatureKind { +>SignatureKind : SignatureKind + + Call = 0, +>Call : SignatureKind + + Construct = 1, +>Construct : SignatureKind + } + interface Signature { +>Signature : Signature + + declaration: SignatureDeclaration; +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + parameters: Symbol[]; +>parameters : Symbol[] +>Symbol : Symbol + + resolvedReturnType: Type; +>resolvedReturnType : Type +>Type : Type + + minArgumentCount: number; +>minArgumentCount : number + + hasRestParameter: boolean; +>hasRestParameter : boolean + + hasStringLiterals: boolean; +>hasStringLiterals : boolean + + target?: Signature; +>target : Signature +>Signature : Signature + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + unionSignatures?: Signature[]; +>unionSignatures : Signature[] +>Signature : Signature + + erasedSignatureCache?: Signature; +>erasedSignatureCache : Signature +>Signature : Signature + + isolatedSignatureType?: ObjectType; +>isolatedSignatureType : ObjectType +>ObjectType : ObjectType + } + const enum IndexKind { +>IndexKind : IndexKind + + String = 0, +>String : IndexKind + + Number = 1, +>Number : IndexKind + } + interface TypeMapper { +>TypeMapper : TypeMapper + + (t: Type): Type; +>t : Type +>Type : Type +>Type : Type + } + interface TypeInferences { +>TypeInferences : TypeInferences + + primary: Type[]; +>primary : Type[] +>Type : Type + + secondary: Type[]; +>secondary : Type[] +>Type : Type + } + interface InferenceContext { +>InferenceContext : InferenceContext + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + inferUnionTypes: boolean; +>inferUnionTypes : boolean + + inferences: TypeInferences[]; +>inferences : TypeInferences[] +>TypeInferences : TypeInferences + + inferredTypes: Type[]; +>inferredTypes : Type[] +>Type : Type + + failedTypeParameterIndex?: number; +>failedTypeParameterIndex : number + } + interface DiagnosticMessage { +>DiagnosticMessage : DiagnosticMessage + + key: string; +>key : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + isEarly?: boolean; +>isEarly : boolean + } + interface DiagnosticMessageChain { +>DiagnosticMessageChain : DiagnosticMessageChain + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + next?: DiagnosticMessageChain; +>next : DiagnosticMessageChain +>DiagnosticMessageChain : DiagnosticMessageChain + } + interface Diagnostic { +>Diagnostic : Diagnostic + + file: SourceFile; +>file : SourceFile +>SourceFile : SourceFile + + start: number; +>start : number + + length: number; +>length : number + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; +>isEarly : boolean + } + enum DiagnosticCategory { +>DiagnosticCategory : DiagnosticCategory + + Warning = 0, +>Warning : DiagnosticCategory + + Error = 1, +>Error : DiagnosticCategory + + Message = 2, +>Message : DiagnosticCategory + } + interface CompilerOptions { +>CompilerOptions : CompilerOptions + + allowNonTsExtensions?: boolean; +>allowNonTsExtensions : boolean + + charset?: string; +>charset : string + + codepage?: number; +>codepage : number + + declaration?: boolean; +>declaration : boolean + + diagnostics?: boolean; +>diagnostics : boolean + + emitBOM?: boolean; +>emitBOM : boolean + + help?: boolean; +>help : boolean + + listFiles?: boolean; +>listFiles : boolean + + locale?: string; +>locale : string + + mapRoot?: string; +>mapRoot : string + + module?: ModuleKind; +>module : ModuleKind +>ModuleKind : ModuleKind + + noEmit?: boolean; +>noEmit : boolean + + noEmitOnError?: boolean; +>noEmitOnError : boolean + + noErrorTruncation?: boolean; +>noErrorTruncation : boolean + + noImplicitAny?: boolean; +>noImplicitAny : boolean + + noLib?: boolean; +>noLib : boolean + + noLibCheck?: boolean; +>noLibCheck : boolean + + noResolve?: boolean; +>noResolve : boolean + + out?: string; +>out : string + + outDir?: string; +>outDir : string + + preserveConstEnums?: boolean; +>preserveConstEnums : boolean + + project?: string; +>project : string + + removeComments?: boolean; +>removeComments : boolean + + sourceMap?: boolean; +>sourceMap : boolean + + sourceRoot?: string; +>sourceRoot : string + + suppressImplicitAnyIndexErrors?: boolean; +>suppressImplicitAnyIndexErrors : boolean + + target?: ScriptTarget; +>target : ScriptTarget +>ScriptTarget : ScriptTarget + + version?: boolean; +>version : boolean + + watch?: boolean; +>watch : boolean + + [option: string]: string | number | boolean; +>option : string + } + const enum ModuleKind { +>ModuleKind : ModuleKind + + None = 0, +>None : ModuleKind + + CommonJS = 1, +>CommonJS : ModuleKind + + AMD = 2, +>AMD : ModuleKind + } + interface LineAndCharacter { +>LineAndCharacter : LineAndCharacter + + line: number; +>line : number + + character: number; +>character : number + } + const enum ScriptTarget { +>ScriptTarget : ScriptTarget + + ES3 = 0, +>ES3 : ScriptTarget + + ES5 = 1, +>ES5 : ScriptTarget + + ES6 = 2, +>ES6 : ScriptTarget + + Latest = 2, +>Latest : ScriptTarget + } + interface ParsedCommandLine { +>ParsedCommandLine : ParsedCommandLine + + options: CompilerOptions; +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + filenames: string[]; +>filenames : string[] + + errors: Diagnostic[]; +>errors : Diagnostic[] +>Diagnostic : Diagnostic + } + interface CommandLineOption { +>CommandLineOption : CommandLineOption + + name: string; +>name : string + + type: string | Map; +>type : string | Map +>Map : Map + + isFilePath?: boolean; +>isFilePath : boolean + + shortName?: string; +>shortName : string + + description?: DiagnosticMessage; +>description : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + paramType?: DiagnosticMessage; +>paramType : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + error?: DiagnosticMessage; +>error : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + } + const enum CharacterCodes { +>CharacterCodes : CharacterCodes + + nullCharacter = 0, +>nullCharacter : CharacterCodes + + maxAsciiCharacter = 127, +>maxAsciiCharacter : CharacterCodes + + lineFeed = 10, +>lineFeed : CharacterCodes + + carriageReturn = 13, +>carriageReturn : CharacterCodes + + lineSeparator = 8232, +>lineSeparator : CharacterCodes + + paragraphSeparator = 8233, +>paragraphSeparator : CharacterCodes + + nextLine = 133, +>nextLine : CharacterCodes + + space = 32, +>space : CharacterCodes + + nonBreakingSpace = 160, +>nonBreakingSpace : CharacterCodes + + enQuad = 8192, +>enQuad : CharacterCodes + + emQuad = 8193, +>emQuad : CharacterCodes + + enSpace = 8194, +>enSpace : CharacterCodes + + emSpace = 8195, +>emSpace : CharacterCodes + + threePerEmSpace = 8196, +>threePerEmSpace : CharacterCodes + + fourPerEmSpace = 8197, +>fourPerEmSpace : CharacterCodes + + sixPerEmSpace = 8198, +>sixPerEmSpace : CharacterCodes + + figureSpace = 8199, +>figureSpace : CharacterCodes + + punctuationSpace = 8200, +>punctuationSpace : CharacterCodes + + thinSpace = 8201, +>thinSpace : CharacterCodes + + hairSpace = 8202, +>hairSpace : CharacterCodes + + zeroWidthSpace = 8203, +>zeroWidthSpace : CharacterCodes + + narrowNoBreakSpace = 8239, +>narrowNoBreakSpace : CharacterCodes + + ideographicSpace = 12288, +>ideographicSpace : CharacterCodes + + mathematicalSpace = 8287, +>mathematicalSpace : CharacterCodes + + ogham = 5760, +>ogham : CharacterCodes + + _ = 95, +>_ : CharacterCodes + + $ = 36, +>$ : CharacterCodes + + _0 = 48, +>_0 : CharacterCodes + + _1 = 49, +>_1 : CharacterCodes + + _2 = 50, +>_2 : CharacterCodes + + _3 = 51, +>_3 : CharacterCodes + + _4 = 52, +>_4 : CharacterCodes + + _5 = 53, +>_5 : CharacterCodes + + _6 = 54, +>_6 : CharacterCodes + + _7 = 55, +>_7 : CharacterCodes + + _8 = 56, +>_8 : CharacterCodes + + _9 = 57, +>_9 : CharacterCodes + + a = 97, +>a : CharacterCodes + + b = 98, +>b : CharacterCodes + + c = 99, +>c : CharacterCodes + + d = 100, +>d : CharacterCodes + + e = 101, +>e : CharacterCodes + + f = 102, +>f : CharacterCodes + + g = 103, +>g : CharacterCodes + + h = 104, +>h : CharacterCodes + + i = 105, +>i : CharacterCodes + + j = 106, +>j : CharacterCodes + + k = 107, +>k : CharacterCodes + + l = 108, +>l : CharacterCodes + + m = 109, +>m : CharacterCodes + + n = 110, +>n : CharacterCodes + + o = 111, +>o : CharacterCodes + + p = 112, +>p : CharacterCodes + + q = 113, +>q : CharacterCodes + + r = 114, +>r : CharacterCodes + + s = 115, +>s : CharacterCodes + + t = 116, +>t : CharacterCodes + + u = 117, +>u : CharacterCodes + + v = 118, +>v : CharacterCodes + + w = 119, +>w : CharacterCodes + + x = 120, +>x : CharacterCodes + + y = 121, +>y : CharacterCodes + + z = 122, +>z : CharacterCodes + + A = 65, +>A : CharacterCodes + + B = 66, +>B : CharacterCodes + + C = 67, +>C : CharacterCodes + + D = 68, +>D : CharacterCodes + + E = 69, +>E : CharacterCodes + + F = 70, +>F : CharacterCodes + + G = 71, +>G : CharacterCodes + + H = 72, +>H : CharacterCodes + + I = 73, +>I : CharacterCodes + + J = 74, +>J : CharacterCodes + + K = 75, +>K : CharacterCodes + + L = 76, +>L : CharacterCodes + + M = 77, +>M : CharacterCodes + + N = 78, +>N : CharacterCodes + + O = 79, +>O : CharacterCodes + + P = 80, +>P : CharacterCodes + + Q = 81, +>Q : CharacterCodes + + R = 82, +>R : CharacterCodes + + S = 83, +>S : CharacterCodes + + T = 84, +>T : CharacterCodes + + U = 85, +>U : CharacterCodes + + V = 86, +>V : CharacterCodes + + W = 87, +>W : CharacterCodes + + X = 88, +>X : CharacterCodes + + Y = 89, +>Y : CharacterCodes + + Z = 90, +>Z : CharacterCodes + + ampersand = 38, +>ampersand : CharacterCodes + + asterisk = 42, +>asterisk : CharacterCodes + + at = 64, +>at : CharacterCodes + + backslash = 92, +>backslash : CharacterCodes + + backtick = 96, +>backtick : CharacterCodes + + bar = 124, +>bar : CharacterCodes + + caret = 94, +>caret : CharacterCodes + + closeBrace = 125, +>closeBrace : CharacterCodes + + closeBracket = 93, +>closeBracket : CharacterCodes + + closeParen = 41, +>closeParen : CharacterCodes + + colon = 58, +>colon : CharacterCodes + + comma = 44, +>comma : CharacterCodes + + dot = 46, +>dot : CharacterCodes + + doubleQuote = 34, +>doubleQuote : CharacterCodes + + equals = 61, +>equals : CharacterCodes + + exclamation = 33, +>exclamation : CharacterCodes + + greaterThan = 62, +>greaterThan : CharacterCodes + + lessThan = 60, +>lessThan : CharacterCodes + + minus = 45, +>minus : CharacterCodes + + openBrace = 123, +>openBrace : CharacterCodes + + openBracket = 91, +>openBracket : CharacterCodes + + openParen = 40, +>openParen : CharacterCodes + + percent = 37, +>percent : CharacterCodes + + plus = 43, +>plus : CharacterCodes + + question = 63, +>question : CharacterCodes + + semicolon = 59, +>semicolon : CharacterCodes + + singleQuote = 39, +>singleQuote : CharacterCodes + + slash = 47, +>slash : CharacterCodes + + tilde = 126, +>tilde : CharacterCodes + + backspace = 8, +>backspace : CharacterCodes + + formFeed = 12, +>formFeed : CharacterCodes + + byteOrderMark = 65279, +>byteOrderMark : CharacterCodes + + tab = 9, +>tab : CharacterCodes + + verticalTab = 11, +>verticalTab : CharacterCodes + } + interface CancellationToken { +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + } + interface CompilerHost { +>CompilerHost : CompilerHost + + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; +>getSourceFile : (filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void) => SourceFile +>filename : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>onError : (message: string) => void +>message : string +>SourceFile : SourceFile + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; +>writeFile : (filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void) => void +>filename : string +>data : string +>writeByteOrderMark : boolean +>onError : (message: string) => void +>message : string + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getCanonicalFileName(fileName: string): string; +>getCanonicalFileName : (fileName: string) => string +>fileName : string + + useCaseSensitiveFileNames(): boolean; +>useCaseSensitiveFileNames : () => boolean + + getNewLine(): string; +>getNewLine : () => string + } + interface TextSpan { +>TextSpan : TextSpan + + start: number; +>start : number + + length: number; +>length : number + } + interface TextChangeRange { +>TextChangeRange : TextChangeRange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newLength: number; +>newLength : number + } +} +declare module "typescript" { + interface ErrorCallback { +>ErrorCallback : ErrorCallback + + (message: DiagnosticMessage, length: number): void; +>message : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage +>length : number + } + interface Scanner { +>Scanner : Scanner + + getStartPos(): number; +>getStartPos : () => number + + getToken(): SyntaxKind; +>getToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + getTextPos(): number; +>getTextPos : () => number + + getTokenPos(): number; +>getTokenPos : () => number + + getTokenText(): string; +>getTokenText : () => string + + getTokenValue(): string; +>getTokenValue : () => string + + hasPrecedingLineBreak(): boolean; +>hasPrecedingLineBreak : () => boolean + + isIdentifier(): boolean; +>isIdentifier : () => boolean + + isReservedWord(): boolean; +>isReservedWord : () => boolean + + isUnterminated(): boolean; +>isUnterminated : () => boolean + + reScanGreaterToken(): SyntaxKind; +>reScanGreaterToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanSlashToken(): SyntaxKind; +>reScanSlashToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanTemplateToken(): SyntaxKind; +>reScanTemplateToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + scan(): SyntaxKind; +>scan : () => SyntaxKind +>SyntaxKind : SyntaxKind + + setText(text: string): void; +>setText : (text: string) => void +>text : string + + setTextPos(textPos: number): void; +>setTextPos : (textPos: number) => void +>textPos : number + + lookAhead(callback: () => T): T; +>lookAhead : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + + tryScan(callback: () => T): T; +>tryScan : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + } + function tokenToString(t: SyntaxKind): string; +>tokenToString : (t: SyntaxKind) => string +>t : SyntaxKind +>SyntaxKind : SyntaxKind + + function computeLineStarts(text: string): number[]; +>computeLineStarts : (text: string) => number[] +>text : string + + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; +>getPositionFromLineAndCharacter : (lineStarts: number[], line: number, character: number) => number +>lineStarts : number[] +>line : number +>character : number + + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { +>getLineAndCharacterOfPosition : (lineStarts: number[], position: number) => { line: number; character: number; } +>lineStarts : number[] +>position : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function positionToLineAndCharacter(text: string, pos: number): { +>positionToLineAndCharacter : (text: string, pos: number) => { line: number; character: number; } +>text : string +>pos : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function isWhiteSpace(ch: number): boolean; +>isWhiteSpace : (ch: number) => boolean +>ch : number + + function isLineBreak(ch: number): boolean; +>isLineBreak : (ch: number) => boolean +>ch : number + + function isOctalDigit(ch: number): boolean; +>isOctalDigit : (ch: number) => boolean +>ch : number + + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; +>skipTrivia : (text: string, pos: number, stopAfterLineBreak?: boolean) => number +>text : string +>pos : number +>stopAfterLineBreak : boolean + + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; +>getLeadingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; +>getTrailingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierStart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierPart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +>createScanner : (languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback) => Scanner +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>skipTrivia : boolean +>text : string +>onError : ErrorCallback +>ErrorCallback : ErrorCallback +>Scanner : Scanner +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; +>getNodeConstructor : (kind: SyntaxKind) => new () => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function createNode(kind: SyntaxKind): Node; +>createNode : (kind: SyntaxKind) => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; +>forEachChild : (node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T) => T +>T : T +>node : Node +>Node : Node +>cbNode : (node: Node) => T +>node : Node +>Node : Node +>T : T +>cbNodeArray : (nodes: Node[]) => T +>nodes : Node[] +>Node : Node +>T : T +>T : T + + function modifierToFlag(token: SyntaxKind): NodeFlags; +>modifierToFlag : (token: SyntaxKind) => NodeFlags +>token : SyntaxKind +>SyntaxKind : SyntaxKind +>NodeFlags : NodeFlags + + function isEvalOrArgumentsIdentifier(node: Node): boolean; +>isEvalOrArgumentsIdentifier : (node: Node) => boolean +>node : Node +>Node : Node + + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; +>createSourceFile : (filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean) => SourceFile +>filename : string +>sourceText : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>setParentNodes : boolean +>SourceFile : SourceFile + + function isLeftHandSideExpression(expr: Expression): boolean; +>isLeftHandSideExpression : (expr: Expression) => boolean +>expr : Expression +>Expression : Expression + + function isAssignmentOperator(token: SyntaxKind): boolean; +>isAssignmentOperator : (token: SyntaxKind) => boolean +>token : SyntaxKind +>SyntaxKind : SyntaxKind +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +>createTypeChecker : (host: TypeCheckerHost, produceDiagnostics: boolean) => TypeChecker +>host : TypeCheckerHost +>TypeCheckerHost : TypeCheckerHost +>produceDiagnostics : boolean +>TypeChecker : TypeChecker +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; +>createCompilerHost : (options: CompilerOptions) => CompilerHost +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>CompilerHost : CompilerHost + + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +>createProgram : (rootNames: string[], options: CompilerOptions, host: CompilerHost) => Program +>rootNames : string[] +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>host : CompilerHost +>CompilerHost : CompilerHost +>Program : Program +} +declare module "typescript" { + var servicesVersion: string; +>servicesVersion : string + + interface Node { +>Node : Node + + getSourceFile(): SourceFile; +>getSourceFile : () => SourceFile +>SourceFile : SourceFile + + getChildCount(sourceFile?: SourceFile): number; +>getChildCount : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getChildAt(index: number, sourceFile?: SourceFile): Node; +>getChildAt : (index: number, sourceFile?: SourceFile) => Node +>index : number +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getChildren(sourceFile?: SourceFile): Node[]; +>getChildren : (sourceFile?: SourceFile) => Node[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getStart(sourceFile?: SourceFile): number; +>getStart : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullStart(): number; +>getFullStart : () => number + + getEnd(): number; +>getEnd : () => number + + getWidth(sourceFile?: SourceFile): number; +>getWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullWidth(): number; +>getFullWidth : () => number + + getLeadingTriviaWidth(sourceFile?: SourceFile): number; +>getLeadingTriviaWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullText(sourceFile?: SourceFile): string; +>getFullText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getText(sourceFile?: SourceFile): string; +>getText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFirstToken(sourceFile?: SourceFile): Node; +>getFirstToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getLastToken(sourceFile?: SourceFile): Node; +>getLastToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + } + interface Symbol { +>Symbol : Symbol + + getFlags(): SymbolFlags; +>getFlags : () => SymbolFlags +>SymbolFlags : SymbolFlags + + getName(): string; +>getName : () => string + + getDeclarations(): Declaration[]; +>getDeclarations : () => Declaration[] +>Declaration : Declaration + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface Type { +>Type : Type + + getFlags(): TypeFlags; +>getFlags : () => TypeFlags +>TypeFlags : TypeFlags + + getSymbol(): Symbol; +>getSymbol : () => Symbol +>Symbol : Symbol + + getProperties(): Symbol[]; +>getProperties : () => Symbol[] +>Symbol : Symbol + + getProperty(propertyName: string): Symbol; +>getProperty : (propertyName: string) => Symbol +>propertyName : string +>Symbol : Symbol + + getApparentProperties(): Symbol[]; +>getApparentProperties : () => Symbol[] +>Symbol : Symbol + + getCallSignatures(): Signature[]; +>getCallSignatures : () => Signature[] +>Signature : Signature + + getConstructSignatures(): Signature[]; +>getConstructSignatures : () => Signature[] +>Signature : Signature + + getStringIndexType(): Type; +>getStringIndexType : () => Type +>Type : Type + + getNumberIndexType(): Type; +>getNumberIndexType : () => Type +>Type : Type + } + interface Signature { +>Signature : Signature + + getDeclaration(): SignatureDeclaration; +>getDeclaration : () => SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + getTypeParameters(): Type[]; +>getTypeParameters : () => Type[] +>Type : Type + + getParameters(): Symbol[]; +>getParameters : () => Symbol[] +>Symbol : Symbol + + getReturnType(): Type; +>getReturnType : () => Type +>Type : Type + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface SourceFile { +>SourceFile : SourceFile + + version: string; +>version : string + + scriptSnapshot: IScriptSnapshot; +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot + + nameTable: Map; +>nameTable : Map +>Map : Map + + getNamedDeclarations(): Declaration[]; +>getNamedDeclarations : () => Declaration[] +>Declaration : Declaration + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { +>IScriptSnapshot : IScriptSnapshot + + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; +>getText : (start: number, end: number) => string +>start : number +>end : number + + /** Gets the length of this script snapshot. */ + getLength(): number; +>getLength : () => number + + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; +>getChangeRange : (oldSnapshot: IScriptSnapshot) => TextChangeRange +>oldSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>TextChangeRange : TextChangeRange + } + module ScriptSnapshot { +>ScriptSnapshot : typeof ScriptSnapshot + + function fromString(text: string): IScriptSnapshot; +>fromString : (text: string) => IScriptSnapshot +>text : string +>IScriptSnapshot : IScriptSnapshot + } + interface PreProcessedFileInfo { +>PreProcessedFileInfo : PreProcessedFileInfo + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + importedFiles: FileReference[]; +>importedFiles : FileReference[] +>FileReference : FileReference + + isLibFile: boolean; +>isLibFile : boolean + } + interface LanguageServiceHost { +>LanguageServiceHost : LanguageServiceHost + + getCompilationSettings(): CompilerOptions; +>getCompilationSettings : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getNewLine?(): string; +>getNewLine : () => string + + getScriptFileNames(): string[]; +>getScriptFileNames : () => string[] + + getScriptVersion(fileName: string): string; +>getScriptVersion : (fileName: string) => string +>fileName : string + + getScriptSnapshot(fileName: string): IScriptSnapshot; +>getScriptSnapshot : (fileName: string) => IScriptSnapshot +>fileName : string +>IScriptSnapshot : IScriptSnapshot + + getLocalizedDiagnosticMessages?(): any; +>getLocalizedDiagnosticMessages : () => any + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + log?(s: string): void; +>log : (s: string) => void +>s : string + + trace?(s: string): void; +>trace : (s: string) => void +>s : string + + error?(s: string): void; +>error : (s: string) => void +>s : string + } + interface LanguageService { +>LanguageService : LanguageService + + cleanupSemanticCache(): void; +>cleanupSemanticCache : () => void + + getSyntacticDiagnostics(fileName: string): Diagnostic[]; +>getSyntacticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getSemanticDiagnostics(fileName: string): Diagnostic[]; +>getSemanticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getCompilerOptionsDiagnostics(): Diagnostic[]; +>getCompilerOptionsDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSyntacticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSemanticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; +>getCompletionsAtPosition : (fileName: string, position: number) => CompletionInfo +>fileName : string +>position : number +>CompletionInfo : CompletionInfo + + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; +>getCompletionEntryDetails : (fileName: string, position: number, entryName: string) => CompletionEntryDetails +>fileName : string +>position : number +>entryName : string +>CompletionEntryDetails : CompletionEntryDetails + + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; +>getQuickInfoAtPosition : (fileName: string, position: number) => QuickInfo +>fileName : string +>position : number +>QuickInfo : QuickInfo + + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; +>getNameOrDottedNameSpan : (fileName: string, startPos: number, endPos: number) => TextSpan +>fileName : string +>startPos : number +>endPos : number +>TextSpan : TextSpan + + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; +>getBreakpointStatementAtPosition : (fileName: string, position: number) => TextSpan +>fileName : string +>position : number +>TextSpan : TextSpan + + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; +>getSignatureHelpItems : (fileName: string, position: number) => SignatureHelpItems +>fileName : string +>position : number +>SignatureHelpItems : SignatureHelpItems + + getRenameInfo(fileName: string, position: number): RenameInfo; +>getRenameInfo : (fileName: string, position: number) => RenameInfo +>fileName : string +>position : number +>RenameInfo : RenameInfo + + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; +>findRenameLocations : (fileName: string, position: number, findInStrings: boolean, findInComments: boolean) => RenameLocation[] +>fileName : string +>position : number +>findInStrings : boolean +>findInComments : boolean +>RenameLocation : RenameLocation + + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; +>getDefinitionAtPosition : (fileName: string, position: number) => DefinitionInfo[] +>fileName : string +>position : number +>DefinitionInfo : DefinitionInfo + + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getReferencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getOccurrencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getNavigateToItems(searchValue: string): NavigateToItem[]; +>getNavigateToItems : (searchValue: string) => NavigateToItem[] +>searchValue : string +>NavigateToItem : NavigateToItem + + getNavigationBarItems(fileName: string): NavigationBarItem[]; +>getNavigationBarItems : (fileName: string) => NavigationBarItem[] +>fileName : string +>NavigationBarItem : NavigationBarItem + + getOutliningSpans(fileName: string): OutliningSpan[]; +>getOutliningSpans : (fileName: string) => OutliningSpan[] +>fileName : string +>OutliningSpan : OutliningSpan + + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; +>getTodoComments : (fileName: string, descriptors: TodoCommentDescriptor[]) => TodoComment[] +>fileName : string +>descriptors : TodoCommentDescriptor[] +>TodoCommentDescriptor : TodoCommentDescriptor +>TodoComment : TodoComment + + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; +>getBraceMatchingAtPosition : (fileName: string, position: number) => TextSpan[] +>fileName : string +>position : number +>TextSpan : TextSpan + + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; +>getIndentationAtPosition : (fileName: string, position: number, options: EditorOptions) => number +>fileName : string +>position : number +>options : EditorOptions +>EditorOptions : EditorOptions + + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForRange : (fileName: string, start: number, end: number, options: FormatCodeOptions) => TextChange[] +>fileName : string +>start : number +>end : number +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForDocument : (fileName: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsAfterKeystroke : (fileName: string, position: number, key: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>position : number +>key : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getEmitOutput(fileName: string): EmitOutput; +>getEmitOutput : (fileName: string) => EmitOutput +>fileName : string +>EmitOutput : EmitOutput + + getProgram(): Program; +>getProgram : () => Program +>Program : Program + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + dispose(): void; +>dispose : () => void + } + interface ClassifiedSpan { +>ClassifiedSpan : ClassifiedSpan + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + classificationType: string; +>classificationType : string + } + interface NavigationBarItem { +>NavigationBarItem : NavigationBarItem + + text: string; +>text : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + spans: TextSpan[]; +>spans : TextSpan[] +>TextSpan : TextSpan + + childItems: NavigationBarItem[]; +>childItems : NavigationBarItem[] +>NavigationBarItem : NavigationBarItem + + indent: number; +>indent : number + + bolded: boolean; +>bolded : boolean + + grayed: boolean; +>grayed : boolean + } + interface TodoCommentDescriptor { +>TodoCommentDescriptor : TodoCommentDescriptor + + text: string; +>text : string + + priority: number; +>priority : number + } + interface TodoComment { +>TodoComment : TodoComment + + descriptor: TodoCommentDescriptor; +>descriptor : TodoCommentDescriptor +>TodoCommentDescriptor : TodoCommentDescriptor + + message: string; +>message : string + + position: number; +>position : number + } + class TextChange { +>TextChange : TextChange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newText: string; +>newText : string + } + interface RenameLocation { +>RenameLocation : RenameLocation + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + } + interface ReferenceEntry { +>ReferenceEntry : ReferenceEntry + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + + isWriteAccess: boolean; +>isWriteAccess : boolean + } + interface NavigateToItem { +>NavigateToItem : NavigateToItem + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + matchKind: string; +>matchKind : string + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + containerName: string; +>containerName : string + + containerKind: string; +>containerKind : string + } + interface EditorOptions { +>EditorOptions : EditorOptions + + IndentSize: number; +>IndentSize : number + + TabSize: number; +>TabSize : number + + NewLineCharacter: string; +>NewLineCharacter : string + + ConvertTabsToSpaces: boolean; +>ConvertTabsToSpaces : boolean + } + interface FormatCodeOptions extends EditorOptions { +>FormatCodeOptions : FormatCodeOptions +>EditorOptions : EditorOptions + + InsertSpaceAfterCommaDelimiter: boolean; +>InsertSpaceAfterCommaDelimiter : boolean + + InsertSpaceAfterSemicolonInForStatements: boolean; +>InsertSpaceAfterSemicolonInForStatements : boolean + + InsertSpaceBeforeAndAfterBinaryOperators: boolean; +>InsertSpaceBeforeAndAfterBinaryOperators : boolean + + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; +>InsertSpaceAfterKeywordsInControlFlowStatements : boolean + + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; +>InsertSpaceAfterFunctionKeywordForAnonymousFunctions : boolean + + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; +>InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis : boolean + + PlaceOpenBraceOnNewLineForFunctions: boolean; +>PlaceOpenBraceOnNewLineForFunctions : boolean + + PlaceOpenBraceOnNewLineForControlBlocks: boolean; +>PlaceOpenBraceOnNewLineForControlBlocks : boolean + } + interface DefinitionInfo { +>DefinitionInfo : DefinitionInfo + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + kind: string; +>kind : string + + name: string; +>name : string + + containerKind: string; +>containerKind : string + + containerName: string; +>containerName : string + } + enum SymbolDisplayPartKind { +>SymbolDisplayPartKind : SymbolDisplayPartKind + + aliasName = 0, +>aliasName : SymbolDisplayPartKind + + className = 1, +>className : SymbolDisplayPartKind + + enumName = 2, +>enumName : SymbolDisplayPartKind + + fieldName = 3, +>fieldName : SymbolDisplayPartKind + + interfaceName = 4, +>interfaceName : SymbolDisplayPartKind + + keyword = 5, +>keyword : SymbolDisplayPartKind + + lineBreak = 6, +>lineBreak : SymbolDisplayPartKind + + numericLiteral = 7, +>numericLiteral : SymbolDisplayPartKind + + stringLiteral = 8, +>stringLiteral : SymbolDisplayPartKind + + localName = 9, +>localName : SymbolDisplayPartKind + + methodName = 10, +>methodName : SymbolDisplayPartKind + + moduleName = 11, +>moduleName : SymbolDisplayPartKind + + operator = 12, +>operator : SymbolDisplayPartKind + + parameterName = 13, +>parameterName : SymbolDisplayPartKind + + propertyName = 14, +>propertyName : SymbolDisplayPartKind + + punctuation = 15, +>punctuation : SymbolDisplayPartKind + + space = 16, +>space : SymbolDisplayPartKind + + text = 17, +>text : SymbolDisplayPartKind + + typeParameterName = 18, +>typeParameterName : SymbolDisplayPartKind + + enumMemberName = 19, +>enumMemberName : SymbolDisplayPartKind + + functionName = 20, +>functionName : SymbolDisplayPartKind + + regularExpressionLiteral = 21, +>regularExpressionLiteral : SymbolDisplayPartKind + } + interface SymbolDisplayPart { +>SymbolDisplayPart : SymbolDisplayPart + + text: string; +>text : string + + kind: string; +>kind : string + } + interface QuickInfo { +>QuickInfo : QuickInfo + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface RenameInfo { +>RenameInfo : RenameInfo + + canRename: boolean; +>canRename : boolean + + localizedErrorMessage: string; +>localizedErrorMessage : string + + displayName: string; +>displayName : string + + fullDisplayName: string; +>fullDisplayName : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + triggerSpan: TextSpan; +>triggerSpan : TextSpan +>TextSpan : TextSpan + } + interface SignatureHelpParameter { +>SignatureHelpParameter : SignatureHelpParameter + + name: string; +>name : string + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + isOptional: boolean; +>isOptional : boolean + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { +>SignatureHelpItem : SignatureHelpItem + + isVariadic: boolean; +>isVariadic : boolean + + prefixDisplayParts: SymbolDisplayPart[]; +>prefixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + suffixDisplayParts: SymbolDisplayPart[]; +>suffixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + separatorDisplayParts: SymbolDisplayPart[]; +>separatorDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + parameters: SignatureHelpParameter[]; +>parameters : SignatureHelpParameter[] +>SignatureHelpParameter : SignatureHelpParameter + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { +>SignatureHelpItems : SignatureHelpItems + + items: SignatureHelpItem[]; +>items : SignatureHelpItem[] +>SignatureHelpItem : SignatureHelpItem + + applicableSpan: TextSpan; +>applicableSpan : TextSpan +>TextSpan : TextSpan + + selectedItemIndex: number; +>selectedItemIndex : number + + argumentIndex: number; +>argumentIndex : number + + argumentCount: number; +>argumentCount : number + } + interface CompletionInfo { +>CompletionInfo : CompletionInfo + + isMemberCompletion: boolean; +>isMemberCompletion : boolean + + entries: CompletionEntry[]; +>entries : CompletionEntry[] +>CompletionEntry : CompletionEntry + } + interface CompletionEntry { +>CompletionEntry : CompletionEntry + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + } + interface CompletionEntryDetails { +>CompletionEntryDetails : CompletionEntryDetails + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface OutliningSpan { +>OutliningSpan : OutliningSpan + + /** The span of the document to actually collapse. */ + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; +>hintSpan : TextSpan +>TextSpan : TextSpan + + /** The text to display in the editor for the collapsed region. */ + bannerText: string; +>bannerText : string + + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; +>autoCollapse : boolean + } + interface EmitOutput { +>EmitOutput : EmitOutput + + outputFiles: OutputFile[]; +>outputFiles : OutputFile[] +>OutputFile : OutputFile + + emitOutputStatus: EmitReturnStatus; +>emitOutputStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + } + const enum OutputFileType { +>OutputFileType : OutputFileType + + JavaScript = 0, +>JavaScript : OutputFileType + + SourceMap = 1, +>SourceMap : OutputFileType + + Declaration = 2, +>Declaration : OutputFileType + } + interface OutputFile { +>OutputFile : OutputFile + + name: string; +>name : string + + writeByteOrderMark: boolean; +>writeByteOrderMark : boolean + + text: string; +>text : string + } + const enum EndOfLineState { +>EndOfLineState : EndOfLineState + + Start = 0, +>Start : EndOfLineState + + InMultiLineCommentTrivia = 1, +>InMultiLineCommentTrivia : EndOfLineState + + InSingleQuoteStringLiteral = 2, +>InSingleQuoteStringLiteral : EndOfLineState + + InDoubleQuoteStringLiteral = 3, +>InDoubleQuoteStringLiteral : EndOfLineState + } + enum TokenClass { +>TokenClass : TokenClass + + Punctuation = 0, +>Punctuation : TokenClass + + Keyword = 1, +>Keyword : TokenClass + + Operator = 2, +>Operator : TokenClass + + Comment = 3, +>Comment : TokenClass + + Whitespace = 4, +>Whitespace : TokenClass + + Identifier = 5, +>Identifier : TokenClass + + NumberLiteral = 6, +>NumberLiteral : TokenClass + + StringLiteral = 7, +>StringLiteral : TokenClass + + RegExpLiteral = 8, +>RegExpLiteral : TokenClass + } + interface ClassificationResult { +>ClassificationResult : ClassificationResult + + finalLexState: EndOfLineState; +>finalLexState : EndOfLineState +>EndOfLineState : EndOfLineState + + entries: ClassificationInfo[]; +>entries : ClassificationInfo[] +>ClassificationInfo : ClassificationInfo + } + interface ClassificationInfo { +>ClassificationInfo : ClassificationInfo + + length: number; +>length : number + + classification: TokenClass; +>classification : TokenClass +>TokenClass : TokenClass + } + interface Classifier { +>Classifier : Classifier + + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; +>getClassificationsForLine : (text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean) => ClassificationResult +>text : string +>lexState : EndOfLineState +>EndOfLineState : EndOfLineState +>classifyKeywordsInGenerics : boolean +>ClassificationResult : ClassificationResult + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { +>DocumentRegistry : DocumentRegistry + + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; +>acquireDocument : (filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string) => SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>SourceFile : SourceFile + + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateDocument : (sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; +>releaseDocument : (filename: string, compilationSettings: CompilerOptions) => void +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions + } + class ScriptElementKind { +>ScriptElementKind : ScriptElementKind + + static unknown: string; +>unknown : string + + static keyword: string; +>keyword : string + + static scriptElement: string; +>scriptElement : string + + static moduleElement: string; +>moduleElement : string + + static classElement: string; +>classElement : string + + static interfaceElement: string; +>interfaceElement : string + + static typeElement: string; +>typeElement : string + + static enumElement: string; +>enumElement : string + + static variableElement: string; +>variableElement : string + + static localVariableElement: string; +>localVariableElement : string + + static functionElement: string; +>functionElement : string + + static localFunctionElement: string; +>localFunctionElement : string + + static memberFunctionElement: string; +>memberFunctionElement : string + + static memberGetAccessorElement: string; +>memberGetAccessorElement : string + + static memberSetAccessorElement: string; +>memberSetAccessorElement : string + + static memberVariableElement: string; +>memberVariableElement : string + + static constructorImplementationElement: string; +>constructorImplementationElement : string + + static callSignatureElement: string; +>callSignatureElement : string + + static indexSignatureElement: string; +>indexSignatureElement : string + + static constructSignatureElement: string; +>constructSignatureElement : string + + static parameterElement: string; +>parameterElement : string + + static typeParameterElement: string; +>typeParameterElement : string + + static primitiveType: string; +>primitiveType : string + + static label: string; +>label : string + + static alias: string; +>alias : string + + static constElement: string; +>constElement : string + + static letElement: string; +>letElement : string + } + class ScriptElementKindModifier { +>ScriptElementKindModifier : ScriptElementKindModifier + + static none: string; +>none : string + + static publicMemberModifier: string; +>publicMemberModifier : string + + static privateMemberModifier: string; +>privateMemberModifier : string + + static protectedMemberModifier: string; +>protectedMemberModifier : string + + static exportedModifier: string; +>exportedModifier : string + + static ambientModifier: string; +>ambientModifier : string + + static staticModifier: string; +>staticModifier : string + } + class ClassificationTypeNames { +>ClassificationTypeNames : ClassificationTypeNames + + static comment: string; +>comment : string + + static identifier: string; +>identifier : string + + static keyword: string; +>keyword : string + + static numericLiteral: string; +>numericLiteral : string + + static operator: string; +>operator : string + + static stringLiteral: string; +>stringLiteral : string + + static whiteSpace: string; +>whiteSpace : string + + static text: string; +>text : string + + static punctuation: string; +>punctuation : string + + static className: string; +>className : string + + static enumName: string; +>enumName : string + + static interfaceName: string; +>interfaceName : string + + static moduleName: string; +>moduleName : string + + static typeParameterName: string; +>typeParameterName : string + + static typeAlias: string; +>typeAlias : string + } + interface DisplayPartsSymbolWriter extends SymbolWriter { +>DisplayPartsSymbolWriter : DisplayPartsSymbolWriter +>SymbolWriter : SymbolWriter + + displayParts(): SymbolDisplayPart[]; +>displayParts : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; +>displayPartsToString : (displayParts: SymbolDisplayPart[]) => string +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + function getDefaultCompilerOptions(): CompilerOptions; +>getDefaultCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + class OperationCanceledException { +>OperationCanceledException : OperationCanceledException + } + class CancellationTokenObject { +>CancellationTokenObject : CancellationTokenObject + + private cancellationToken; +>cancellationToken : any + + static None: CancellationTokenObject; +>None : CancellationTokenObject +>CancellationTokenObject : CancellationTokenObject + + constructor(cancellationToken: CancellationToken); +>cancellationToken : CancellationToken +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + + throwIfCancellationRequested(): void; +>throwIfCancellationRequested : () => void + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; +>createLanguageServiceSourceFile : (filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean) => SourceFile +>filename : string +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>scriptTarget : ScriptTarget +>ScriptTarget : ScriptTarget +>version : string +>setNodeParents : boolean +>SourceFile : SourceFile + + var disableIncrementalParsing: boolean; +>disableIncrementalParsing : boolean + + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + function createDocumentRegistry(): DocumentRegistry; +>createDocumentRegistry : () => DocumentRegistry +>DocumentRegistry : DocumentRegistry + + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; +>preProcessFile : (sourceText: string, readImportFiles?: boolean) => PreProcessedFileInfo +>sourceText : string +>readImportFiles : boolean +>PreProcessedFileInfo : PreProcessedFileInfo + + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; +>createLanguageService : (host: LanguageServiceHost, documentRegistry?: DocumentRegistry) => LanguageService +>host : LanguageServiceHost +>LanguageServiceHost : LanguageServiceHost +>documentRegistry : DocumentRegistry +>DocumentRegistry : DocumentRegistry +>LanguageService : LanguageService + + function createClassifier(): Classifier; +>createClassifier : () => Classifier +>Classifier : Classifier + + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +>getDefaultLibFilePath : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions +} + diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js new file mode 100644 index 00000000000..c740e8078e1 --- /dev/null +++ b/tests/baselines/reference/APISample_watcher.js @@ -0,0 +1,2057 @@ +//// [tests/cases/compiler/APISample_watcher.ts] //// + +//// [APISample_watcher.ts] + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; +declare var path: any; + +import ts = require("typescript"); + +function watch(rootFilenames: string[], options: ts.CompilerOptions) { + var files: ts.Map<{ version: number }> = {}; + + // initialize the list of files + rootFilenames.forEach(filename => { + files[filename] = { version: 0 }; + }); + + // Create the language service host to allow the LS to communicate with the host + var servicesHost: ts.LanguageServiceHost = { + getScriptFileNames: () => rootFilenames, + getScriptVersion: (filename) => files[filename] && files[filename].version.toString(), + getScriptSnapshot: (filename) => { + if (!fs.existsSync(filename)) { + return undefined; + } + + return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); + }, + getCurrentDirectory: () => process.cwd(), + getCompilationSettings: () => options, + getDefaultLibFilename: (options) => ts.getDefaultLibFilePath(options), + }; + + // Create the language service files + var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) + + // Now let's watch the files + rootFilenames.forEach(filename => { + // First time around, emit all files + emitFile(filename); + + // Add a watch on the file to handle next change + fs.watchFile(filename, + { persistent: true, interval: 250 }, + (curr, prev) => { + // Check timestamp + if (+curr.mtime <= +prev.mtime) { + return; + } + + // Update the version to signal a change in the file + files[filename].version++; + + // write the changes to disk + emitFile(filename); + }); + }); + + function emitFile(filename: string) { + var output = services.getEmitOutput(filename); + + if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { + console.log(`Emitting ${filename}`); + } + else { + console.log(`Emitting ${filename} failed`); + logErrors(filename); + } + + output.outputFiles.forEach(o => { + fs.writeFileSync(o.name, o.text, "utf8"); + }); + } + + function logErrors(filename: string) { + var allDiagnostics = services.getCompilerOptionsDiagnostics() + .concat(services.getSyntacticDiagnostics(filename)) + .concat(services.getSemanticDiagnostics(filename)); + + allDiagnostics.forEach(diagnostic => { + if (diagnostic.file) { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + } + else { + console.log(` Error: ${diagnostic.messageText}`); + } + }); + } +} + +// Initialize files constituting the program as all .ts files in the current directory +var currentDirectoryFiles = fs.readdirSync(process.cwd()). + filter(filename=> filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts"); + +// Start the watcher +watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); +//// [typescript.d.ts] +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { + [index: string]: T; + } + interface TextRange { + pos: number; + end: number; + } + const enum SyntaxKind { + Unknown = 0, + EndOfFileToken = 1, + SingleLineCommentTrivia = 2, + MultiLineCommentTrivia = 3, + NewLineTrivia = 4, + WhitespaceTrivia = 5, + ConflictMarkerTrivia = 6, + NumericLiteral = 7, + StringLiteral = 8, + RegularExpressionLiteral = 9, + NoSubstitutionTemplateLiteral = 10, + TemplateHead = 11, + TemplateMiddle = 12, + TemplateTail = 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 = 63, + Identifier = 64, + BreakKeyword = 65, + CaseKeyword = 66, + CatchKeyword = 67, + ClassKeyword = 68, + ConstKeyword = 69, + ContinueKeyword = 70, + DebuggerKeyword = 71, + DefaultKeyword = 72, + DeleteKeyword = 73, + DoKeyword = 74, + ElseKeyword = 75, + EnumKeyword = 76, + ExportKeyword = 77, + ExtendsKeyword = 78, + FalseKeyword = 79, + FinallyKeyword = 80, + ForKeyword = 81, + FunctionKeyword = 82, + IfKeyword = 83, + ImportKeyword = 84, + InKeyword = 85, + InstanceOfKeyword = 86, + NewKeyword = 87, + NullKeyword = 88, + ReturnKeyword = 89, + SuperKeyword = 90, + SwitchKeyword = 91, + ThisKeyword = 92, + ThrowKeyword = 93, + TrueKeyword = 94, + TryKeyword = 95, + TypeOfKeyword = 96, + VarKeyword = 97, + VoidKeyword = 98, + WhileKeyword = 99, + WithKeyword = 100, + ImplementsKeyword = 101, + InterfaceKeyword = 102, + LetKeyword = 103, + PackageKeyword = 104, + PrivateKeyword = 105, + ProtectedKeyword = 106, + PublicKeyword = 107, + StaticKeyword = 108, + YieldKeyword = 109, + AnyKeyword = 110, + BooleanKeyword = 111, + ConstructorKeyword = 112, + DeclareKeyword = 113, + GetKeyword = 114, + ModuleKeyword = 115, + RequireKeyword = 116, + NumberKeyword = 117, + SetKeyword = 118, + StringKeyword = 119, + TypeKeyword = 120, + QualifiedName = 121, + ComputedPropertyName = 122, + TypeParameter = 123, + Parameter = 124, + PropertySignature = 125, + PropertyDeclaration = 126, + MethodSignature = 127, + MethodDeclaration = 128, + Constructor = 129, + GetAccessor = 130, + SetAccessor = 131, + CallSignature = 132, + ConstructSignature = 133, + IndexSignature = 134, + TypeReference = 135, + FunctionType = 136, + ConstructorType = 137, + TypeQuery = 138, + TypeLiteral = 139, + ArrayType = 140, + TupleType = 141, + UnionType = 142, + ParenthesizedType = 143, + ObjectBindingPattern = 144, + ArrayBindingPattern = 145, + BindingElement = 146, + ArrayLiteralExpression = 147, + ObjectLiteralExpression = 148, + PropertyAccessExpression = 149, + ElementAccessExpression = 150, + CallExpression = 151, + NewExpression = 152, + TaggedTemplateExpression = 153, + TypeAssertionExpression = 154, + ParenthesizedExpression = 155, + FunctionExpression = 156, + ArrowFunction = 157, + DeleteExpression = 158, + TypeOfExpression = 159, + VoidExpression = 160, + PrefixUnaryExpression = 161, + PostfixUnaryExpression = 162, + BinaryExpression = 163, + ConditionalExpression = 164, + TemplateExpression = 165, + YieldExpression = 166, + SpreadElementExpression = 167, + OmittedExpression = 168, + TemplateSpan = 169, + Block = 170, + VariableStatement = 171, + EmptyStatement = 172, + ExpressionStatement = 173, + IfStatement = 174, + DoStatement = 175, + WhileStatement = 176, + ForStatement = 177, + ForInStatement = 178, + ContinueStatement = 179, + BreakStatement = 180, + ReturnStatement = 181, + WithStatement = 182, + SwitchStatement = 183, + LabeledStatement = 184, + ThrowStatement = 185, + TryStatement = 186, + DebuggerStatement = 187, + VariableDeclaration = 188, + VariableDeclarationList = 189, + FunctionDeclaration = 190, + ClassDeclaration = 191, + InterfaceDeclaration = 192, + TypeAliasDeclaration = 193, + EnumDeclaration = 194, + ModuleDeclaration = 195, + ModuleBlock = 196, + ImportDeclaration = 197, + ExportAssignment = 198, + ExternalModuleReference = 199, + CaseClause = 200, + DefaultClause = 201, + HeritageClause = 202, + CatchClause = 203, + PropertyAssignment = 204, + ShorthandPropertyAssignment = 205, + EnumMember = 206, + SourceFile = 207, + SyntaxList = 208, + Count = 209, + FirstAssignment = 52, + LastAssignment = 63, + FirstReservedWord = 65, + LastReservedWord = 100, + FirstKeyword = 65, + LastKeyword = 120, + FirstFutureReservedWord = 101, + LastFutureReservedWord = 109, + FirstTypeNode = 135, + LastTypeNode = 143, + FirstPunctuation = 14, + LastPunctuation = 63, + FirstToken = 0, + LastToken = 120, + FirstTriviaToken = 2, + LastTriviaToken = 6, + FirstLiteralToken = 7, + LastLiteralToken = 10, + FirstTemplateToken = 10, + LastTemplateToken = 13, + FirstBinaryOperator = 24, + LastBinaryOperator = 63, + FirstNode = 121, + } + const enum NodeFlags { + Export = 1, + Ambient = 2, + Public = 16, + Private = 32, + Protected = 64, + Static = 128, + MultiLine = 256, + Synthetic = 512, + DeclarationFile = 1024, + Let = 2048, + Const = 4096, + OctalLiteral = 8192, + Modifier = 243, + AccessibilityModifier = 112, + BlockScoped = 6144, + } + const enum ParserContextFlags { + StrictMode = 1, + DisallowIn = 2, + Yield = 4, + GeneratorParameter = 8, + ThisNodeHasError = 16, + ParserGeneratedFlags = 31, + ThisNodeOrAnySubNodesHasError = 32, + HasAggregatedChildData = 64, + } + interface Node extends TextRange { + kind: SyntaxKind; + flags: NodeFlags; + parserContextFlags?: ParserContextFlags; + id?: number; + parent?: Node; + symbol?: Symbol; + locals?: SymbolTable; + nextContainer?: Node; + localSymbol?: Symbol; + modifiers?: ModifiersArray; + } + interface NodeArray extends Array, TextRange { + hasTrailingComma?: boolean; + } + interface ModifiersArray extends NodeArray { + flags: number; + } + interface Identifier extends PrimaryExpression { + text: string; + } + interface QualifiedName extends Node { + left: EntityName; + right: Identifier; + } + type EntityName = Identifier | QualifiedName; + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; + interface Declaration extends Node { + _declarationBrand: any; + name?: DeclarationName; + } + interface ComputedPropertyName extends Node { + expression: Expression; + } + interface TypeParameterDeclaration extends Declaration { + name: Identifier; + constraint?: TypeNode; + expression?: Expression; + } + interface SignatureDeclaration extends Declaration { + typeParameters?: NodeArray; + parameters: NodeArray; + type?: TypeNode; + } + interface VariableDeclaration extends Declaration { + parent?: VariableDeclarationList; + name: Identifier | BindingPattern; + type?: TypeNode; + initializer?: Expression; + } + interface VariableDeclarationList extends Node { + declarations: NodeArray; + } + interface ParameterDeclaration extends Declaration { + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingElement extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: Identifier | BindingPattern; + initializer?: Expression; + } + interface PropertyDeclaration extends Declaration, ClassElement { + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface ObjectLiteralElement extends Declaration { + _objectLiteralBrandBrand: any; + } + interface PropertyAssignment extends ObjectLiteralElement { + _propertyAssignmentBrand: any; + name: DeclarationName; + questionToken?: Node; + initializer: Expression; + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { + name: Identifier; + questionToken?: Node; + } + interface VariableLikeDeclaration extends Declaration { + propertyName?: Identifier; + dotDotDotToken?: Node; + name: DeclarationName; + questionToken?: Node; + type?: TypeNode; + initializer?: Expression; + } + interface BindingPattern extends Node { + elements: NodeArray; + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { + _functionLikeDeclarationBrand: any; + asteriskToken?: Node; + questionToken?: Node; + body?: Block | Expression; + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { + name: Identifier; + body?: Block; + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + body?: Block; + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { + body?: Block; + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { + _accessorDeclarationBrand: any; + body: Block; + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { + _indexSignatureDeclarationBrand: any; + } + interface TypeNode extends Node { + _typeNodeBrand: any; + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { + _functionOrConstructorTypeNodeBrand: any; + } + interface TypeReferenceNode extends TypeNode { + typeName: EntityName; + typeArguments?: NodeArray; + } + interface TypeQueryNode extends TypeNode { + exprName: EntityName; + } + interface TypeLiteralNode extends TypeNode, Declaration { + members: NodeArray; + } + interface ArrayTypeNode extends TypeNode { + elementType: TypeNode; + } + interface TupleTypeNode extends TypeNode { + elementTypes: NodeArray; + } + interface UnionTypeNode extends TypeNode { + types: NodeArray; + } + interface ParenthesizedTypeNode extends TypeNode { + type: TypeNode; + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { + } + interface Expression extends Node { + _expressionBrand: any; + contextualType?: Type; + } + interface UnaryExpression extends Expression { + _unaryExpressionBrand: any; + } + interface PrefixUnaryExpression extends UnaryExpression { + operator: SyntaxKind; + operand: UnaryExpression; + } + interface PostfixUnaryExpression extends PostfixExpression { + operand: LeftHandSideExpression; + operator: SyntaxKind; + } + interface PostfixExpression extends UnaryExpression { + _postfixExpressionBrand: any; + } + interface LeftHandSideExpression extends PostfixExpression { + _leftHandSideExpressionBrand: any; + } + interface MemberExpression extends LeftHandSideExpression { + _memberExpressionBrand: any; + } + interface PrimaryExpression extends MemberExpression { + _primaryExpressionBrand: any; + } + interface DeleteExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface TypeOfExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface VoidExpression extends UnaryExpression { + expression: UnaryExpression; + } + interface YieldExpression extends Expression { + asteriskToken?: Node; + expression: Expression; + } + interface BinaryExpression extends Expression { + left: Expression; + operator: SyntaxKind; + right: Expression; + } + interface ConditionalExpression extends Expression { + condition: Expression; + whenTrue: Expression; + whenFalse: Expression; + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { + name?: Identifier; + body: Block | Expression; + } + interface LiteralExpression extends PrimaryExpression { + text: string; + isUnterminated?: boolean; + } + interface StringLiteralExpression extends LiteralExpression { + _stringLiteralExpressionBrand: any; + } + interface TemplateExpression extends PrimaryExpression { + head: LiteralExpression; + templateSpans: NodeArray; + } + interface TemplateSpan extends Node { + expression: Expression; + literal: LiteralExpression; + } + interface ParenthesizedExpression extends PrimaryExpression { + expression: Expression; + } + interface ArrayLiteralExpression extends PrimaryExpression { + elements: NodeArray; + } + interface SpreadElementExpression extends Expression { + expression: Expression; + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { + properties: NodeArray; + } + interface PropertyAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + name: Identifier; + } + interface ElementAccessExpression extends MemberExpression { + expression: LeftHandSideExpression; + argumentExpression?: Expression; + } + interface CallExpression extends LeftHandSideExpression { + expression: LeftHandSideExpression; + typeArguments?: NodeArray; + arguments: NodeArray; + } + interface NewExpression extends CallExpression, PrimaryExpression { + } + interface TaggedTemplateExpression extends MemberExpression { + tag: LeftHandSideExpression; + template: LiteralExpression | TemplateExpression; + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; + interface TypeAssertion extends UnaryExpression { + type: TypeNode; + expression: UnaryExpression; + } + interface Statement extends Node, ModuleElement { + _statementBrand: any; + } + interface Block extends Statement { + statements: NodeArray; + } + interface VariableStatement extends Statement { + declarationList: VariableDeclarationList; + } + interface ExpressionStatement extends Statement { + expression: Expression; + } + interface IfStatement extends Statement { + expression: Expression; + thenStatement: Statement; + elseStatement?: Statement; + } + interface IterationStatement extends Statement { + statement: Statement; + } + interface DoStatement extends IterationStatement { + expression: Expression; + } + interface WhileStatement extends IterationStatement { + expression: Expression; + } + interface ForStatement extends IterationStatement { + initializer?: VariableDeclarationList | Expression; + condition?: Expression; + iterator?: Expression; + } + interface ForInStatement extends IterationStatement { + initializer: VariableDeclarationList | Expression; + expression: Expression; + } + interface BreakOrContinueStatement extends Statement { + label?: Identifier; + } + interface ReturnStatement extends Statement { + expression?: Expression; + } + interface WithStatement extends Statement { + expression: Expression; + statement: Statement; + } + interface SwitchStatement extends Statement { + expression: Expression; + clauses: NodeArray; + } + interface CaseClause extends Node { + expression?: Expression; + statements: NodeArray; + } + interface DefaultClause extends Node { + statements: NodeArray; + } + type CaseOrDefaultClause = CaseClause | DefaultClause; + interface LabeledStatement extends Statement { + label: Identifier; + statement: Statement; + } + interface ThrowStatement extends Statement { + expression: Expression; + } + interface TryStatement extends Statement { + tryBlock: Block; + catchClause?: CatchClause; + finallyBlock?: Block; + } + interface CatchClause extends Declaration { + name: Identifier; + type?: TypeNode; + block: Block; + } + interface ModuleElement extends Node { + _moduleElementBrand: any; + } + interface ClassDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface ClassElement extends Declaration { + _classElementBrand: any; + } + interface InterfaceDeclaration extends Declaration, ModuleElement { + name: Identifier; + typeParameters?: NodeArray; + heritageClauses?: NodeArray; + members: NodeArray; + } + interface HeritageClause extends Node { + token: SyntaxKind; + types?: NodeArray; + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { + name: Identifier; + type: TypeNode; + } + interface EnumMember extends Declaration { + name: DeclarationName; + initializer?: Expression; + } + interface EnumDeclaration extends Declaration, ModuleElement { + name: Identifier; + members: NodeArray; + } + interface ModuleDeclaration extends Declaration, ModuleElement { + name: Identifier | LiteralExpression; + body: ModuleBlock | ModuleDeclaration; + } + interface ModuleBlock extends Node, ModuleElement { + statements: NodeArray; + } + interface ImportDeclaration extends Declaration, ModuleElement { + name: Identifier; + moduleReference: EntityName | ExternalModuleReference; + } + interface ExternalModuleReference extends Node { + expression?: Expression; + } + interface ExportAssignment extends Statement, ModuleElement { + exportName: Identifier; + } + interface FileReference extends TextRange { + filename: string; + } + interface CommentRange extends TextRange { + hasTrailingNewLine?: boolean; + } + interface SourceFile extends Declaration { + statements: NodeArray; + endOfFileToken: Node; + filename: string; + text: string; + getLineAndCharacterFromPosition(position: number): LineAndCharacter; + getPositionFromLineAndCharacter(line: number, character: number): number; + getLineStarts(): number[]; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; + amdDependencies: string[]; + amdModuleName: string; + referencedFiles: FileReference[]; + referenceDiagnostics: Diagnostic[]; + parseDiagnostics: Diagnostic[]; + getSyntacticDiagnostics(): Diagnostic[]; + semanticDiagnostics: Diagnostic[]; + hasNoDefaultLib: boolean; + externalModuleIndicator: Node; + nodeCount: number; + identifierCount: number; + symbolCount: number; + languageVersion: ScriptTarget; + identifiers: Map; + } + interface ScriptReferenceHost { + getCompilerOptions(): CompilerOptions; + getSourceFile(filename: string): SourceFile; + getCurrentDirectory(): string; + } + interface Program extends ScriptReferenceHost { + getSourceFiles(): SourceFile[]; + getCompilerHost(): CompilerHost; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; + getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getCommonSourceDirectory(): string; + emitFiles(targetSourceFile?: SourceFile): EmitResult; + isEmitBlocked(sourceFile?: SourceFile): boolean; + } + interface SourceMapSpan { + emittedLine: number; + emittedColumn: number; + sourceLine: number; + sourceColumn: number; + nameIndex?: number; + sourceIndex: number; + } + interface SourceMapData { + sourceMapFilePath: string; + jsSourceMappingURL: string; + sourceMapFile: string; + sourceMapSourceRoot: string; + sourceMapSources: string[]; + inputSourceFileNames: string[]; + sourceMapNames?: string[]; + sourceMapMappings: string; + sourceMapDecodedMappings: SourceMapSpan[]; + } + enum EmitReturnStatus { + Succeeded = 0, + AllOutputGenerationSkipped = 1, + JSGeneratedWithSemanticErrors = 2, + DeclarationGenerationSkipped = 3, + EmitErrorsEncountered = 4, + CompilerOptionsErrors = 5, + } + interface EmitResult { + emitResultStatus: EmitReturnStatus; + diagnostics: Diagnostic[]; + sourceMaps: SourceMapData[]; + } + interface TypeCheckerHost { + getCompilerOptions(): CompilerOptions; + getCompilerHost(): CompilerHost; + getSourceFiles(): SourceFile[]; + getSourceFile(filename: string): SourceFile; + } + interface TypeChecker { + getEmitResolver(): EmitResolver; + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getGlobalDiagnostics(): Diagnostic[]; + getNodeCount(): number; + getIdentifierCount(): number; + getSymbolCount(): number; + getTypeCount(): number; + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; + getDeclaredTypeOfSymbol(symbol: Symbol): Type; + getPropertiesOfType(type: Type): Symbol[]; + getPropertyOfType(type: Type, propertyName: string): Symbol; + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; + getIndexTypeOfType(type: Type, kind: IndexKind): Type; + getReturnTypeOfSignature(signature: Signature): Type; + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; + getSymbolAtLocation(node: Node): Symbol; + getShorthandAssignmentValueSymbol(location: Node): Symbol; + getTypeAtLocation(node: Node): Type; + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; + getSymbolDisplayBuilder(): SymbolDisplayBuilder; + getFullyQualifiedName(symbol: Symbol): string; + getAugmentedPropertiesOfType(type: Type): Symbol[]; + getRootSymbols(symbol: Symbol): Symbol[]; + getContextualType(node: Expression): Type; + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + isUndefinedSymbol(symbol: Symbol): boolean; + isArgumentsSymbol(symbol: Symbol): boolean; + getEnumMemberValue(node: EnumMember): number; + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; + getAliasedSymbol(symbol: Symbol): Symbol; + } + interface SymbolDisplayBuilder { + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + } + interface SymbolWriter { + writeKeyword(text: string): void; + writeOperator(text: string): void; + writePunctuation(text: string): void; + writeSpace(text: string): void; + writeStringLiteral(text: string): void; + writeParameter(text: string): void; + writeSymbol(text: string, symbol: Symbol): void; + writeLine(): void; + increaseIndent(): void; + decreaseIndent(): void; + clear(): void; + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; + } + const enum TypeFormatFlags { + None = 0, + WriteArrayAsGenericType = 1, + UseTypeOfFunction = 2, + NoTruncation = 4, + WriteArrowStyleSignature = 8, + WriteOwnNameForAnyLike = 16, + WriteTypeArgumentsOfSignature = 32, + InElementType = 64, + } + const enum SymbolFormatFlags { + None = 0, + WriteTypeParametersOrArguments = 1, + UseOnlyExternalAliasing = 2, + } + const enum SymbolAccessibility { + Accessible = 0, + NotAccessible = 1, + CannotBeNamed = 2, + } + interface SymbolVisibilityResult { + accessibility: SymbolAccessibility; + aliasesToMakeVisible?: ImportDeclaration[]; + errorSymbolName?: string; + errorNode?: Node; + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { + errorModuleName?: string; + } + interface EmitResolver { + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; + getExpressionNamePrefix(node: Identifier): string; + getExportAssignmentName(node: SourceFile): string; + isReferencedImportDeclaration(node: ImportDeclaration): boolean; + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; + getNodeCheckFlags(node: Node): NodeCheckFlags; + getEnumMemberValue(node: EnumMember): number; + hasSemanticErrors(sourceFile?: SourceFile): boolean; + isDeclarationVisible(node: Declaration): boolean; + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, 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; + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + isUnknownIdentifier(location: Node, name: string): boolean; + } + const enum SymbolFlags { + FunctionScopedVariable = 1, + BlockScopedVariable = 2, + Property = 4, + EnumMember = 8, + Function = 16, + Class = 32, + Interface = 64, + ConstEnum = 128, + RegularEnum = 256, + ValueModule = 512, + NamespaceModule = 1024, + TypeLiteral = 2048, + ObjectLiteral = 4096, + Method = 8192, + Constructor = 16384, + GetAccessor = 32768, + SetAccessor = 65536, + Signature = 131072, + TypeParameter = 262144, + TypeAlias = 524288, + ExportValue = 1048576, + ExportType = 2097152, + ExportNamespace = 4194304, + Import = 8388608, + Instantiated = 16777216, + Merged = 33554432, + Transient = 67108864, + Prototype = 134217728, + UnionProperty = 268435456, + Optional = 536870912, + Enum = 384, + Variable = 3, + Value = 107455, + Type = 793056, + Namespace = 1536, + Module = 1536, + Accessor = 98304, + FunctionScopedVariableExcludes = 107454, + BlockScopedVariableExcludes = 107455, + ParameterExcludes = 107455, + PropertyExcludes = 107455, + EnumMemberExcludes = 107455, + FunctionExcludes = 106927, + ClassExcludes = 899583, + InterfaceExcludes = 792992, + RegularEnumExcludes = 899327, + ConstEnumExcludes = 899967, + ValueModuleExcludes = 106639, + NamespaceModuleExcludes = 0, + MethodExcludes = 99263, + GetAccessorExcludes = 41919, + SetAccessorExcludes = 74687, + TypeParameterExcludes = 530912, + TypeAliasExcludes = 793056, + ImportExcludes = 8388608, + ModuleMember = 8914931, + ExportHasLocal = 944, + HasLocals = 255504, + HasExports = 1952, + HasMembers = 6240, + IsContainer = 262128, + PropertyOrAccessor = 98308, + Export = 7340032, + } + interface Symbol { + flags: SymbolFlags; + name: string; + id?: number; + mergeId?: number; + declarations?: Declaration[]; + parent?: Symbol; + members?: SymbolTable; + exports?: SymbolTable; + exportSymbol?: Symbol; + valueDeclaration?: Declaration; + constEnumOnlyModule?: boolean; + } + interface SymbolLinks { + target?: Symbol; + type?: Type; + declaredType?: Type; + mapper?: TypeMapper; + referenced?: boolean; + exportAssignSymbol?: Symbol; + unionType?: UnionType; + } + interface TransientSymbol extends Symbol, SymbolLinks { + } + interface SymbolTable { + [index: string]: Symbol; + } + const enum NodeCheckFlags { + TypeChecked = 1, + LexicalThis = 2, + CaptureThis = 4, + EmitExtends = 8, + SuperInstance = 16, + SuperStatic = 32, + ContextChecked = 64, + EnumValuesComputed = 128, + } + interface NodeLinks { + resolvedType?: Type; + resolvedSignature?: Signature; + resolvedSymbol?: Symbol; + flags?: NodeCheckFlags; + enumMemberValue?: number; + isIllegalTypeReferenceInConstraint?: boolean; + isVisible?: boolean; + localModuleName?: string; + assignmentChecks?: Map; + hasReportedStatementInAmbientContext?: boolean; + importOnRightSide?: Symbol; + } + const enum TypeFlags { + Any = 1, + String = 2, + Number = 4, + Boolean = 8, + Void = 16, + Undefined = 32, + Null = 64, + Enum = 128, + StringLiteral = 256, + TypeParameter = 512, + Class = 1024, + Interface = 2048, + Reference = 4096, + Tuple = 8192, + Union = 16384, + Anonymous = 32768, + FromSignature = 65536, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, + Intrinsic = 127, + Primitive = 510, + StringLike = 258, + NumberLike = 132, + ObjectType = 48128, + RequiresWidening = 786432, + } + interface Type { + flags: TypeFlags; + id: number; + symbol?: Symbol; + } + interface IntrinsicType extends Type { + intrinsicName: string; + } + interface StringLiteralType extends Type { + text: string; + } + interface ObjectType extends Type { + } + interface InterfaceType extends ObjectType { + typeParameters: TypeParameter[]; + baseTypes: ObjectType[]; + declaredProperties: Symbol[]; + declaredCallSignatures: Signature[]; + declaredConstructSignatures: Signature[]; + declaredStringIndexType: Type; + declaredNumberIndexType: Type; + } + interface TypeReference extends ObjectType { + target: GenericType; + typeArguments: Type[]; + } + interface GenericType extends InterfaceType, TypeReference { + instantiations: Map; + } + interface TupleType extends ObjectType { + elementTypes: Type[]; + baseArrayType: TypeReference; + } + interface UnionType extends Type { + types: Type[]; + resolvedProperties: SymbolTable; + } + interface ResolvedType extends ObjectType, UnionType { + members: SymbolTable; + properties: Symbol[]; + callSignatures: Signature[]; + constructSignatures: Signature[]; + stringIndexType: Type; + numberIndexType: Type; + } + interface TypeParameter extends Type { + constraint: Type; + target?: TypeParameter; + mapper?: TypeMapper; + } + const enum SignatureKind { + Call = 0, + Construct = 1, + } + interface Signature { + declaration: SignatureDeclaration; + typeParameters: TypeParameter[]; + parameters: Symbol[]; + resolvedReturnType: Type; + minArgumentCount: number; + hasRestParameter: boolean; + hasStringLiterals: boolean; + target?: Signature; + mapper?: TypeMapper; + unionSignatures?: Signature[]; + erasedSignatureCache?: Signature; + isolatedSignatureType?: ObjectType; + } + const enum IndexKind { + String = 0, + Number = 1, + } + interface TypeMapper { + (t: Type): Type; + } + interface TypeInferences { + primary: Type[]; + secondary: Type[]; + } + interface InferenceContext { + typeParameters: TypeParameter[]; + inferUnionTypes: boolean; + inferences: TypeInferences[]; + inferredTypes: Type[]; + failedTypeParameterIndex?: number; + } + interface DiagnosticMessage { + key: string; + category: DiagnosticCategory; + code: number; + isEarly?: boolean; + } + interface DiagnosticMessageChain { + messageText: string; + category: DiagnosticCategory; + code: number; + next?: DiagnosticMessageChain; + } + interface Diagnostic { + file: SourceFile; + start: number; + length: number; + messageText: string; + category: DiagnosticCategory; + code: number; + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; + } + enum DiagnosticCategory { + Warning = 0, + Error = 1, + Message = 2, + } + interface CompilerOptions { + allowNonTsExtensions?: boolean; + charset?: string; + codepage?: number; + declaration?: boolean; + diagnostics?: boolean; + emitBOM?: boolean; + help?: boolean; + listFiles?: boolean; + locale?: string; + mapRoot?: string; + module?: ModuleKind; + noEmit?: boolean; + noEmitOnError?: boolean; + noErrorTruncation?: boolean; + noImplicitAny?: boolean; + noLib?: boolean; + noLibCheck?: boolean; + noResolve?: boolean; + out?: string; + outDir?: string; + preserveConstEnums?: boolean; + project?: string; + removeComments?: boolean; + sourceMap?: boolean; + sourceRoot?: string; + suppressImplicitAnyIndexErrors?: boolean; + target?: ScriptTarget; + version?: boolean; + watch?: boolean; + [option: string]: string | number | boolean; + } + const enum ModuleKind { + None = 0, + CommonJS = 1, + AMD = 2, + } + interface LineAndCharacter { + line: number; + character: number; + } + const enum ScriptTarget { + ES3 = 0, + ES5 = 1, + ES6 = 2, + Latest = 2, + } + interface ParsedCommandLine { + options: CompilerOptions; + filenames: string[]; + errors: Diagnostic[]; + } + interface CommandLineOption { + name: string; + type: string | Map; + isFilePath?: boolean; + shortName?: string; + description?: DiagnosticMessage; + paramType?: DiagnosticMessage; + error?: DiagnosticMessage; + } + const enum CharacterCodes { + nullCharacter = 0, + maxAsciiCharacter = 127, + lineFeed = 10, + carriageReturn = 13, + lineSeparator = 8232, + paragraphSeparator = 8233, + nextLine = 133, + space = 32, + nonBreakingSpace = 160, + enQuad = 8192, + emQuad = 8193, + enSpace = 8194, + emSpace = 8195, + threePerEmSpace = 8196, + fourPerEmSpace = 8197, + sixPerEmSpace = 8198, + figureSpace = 8199, + punctuationSpace = 8200, + thinSpace = 8201, + hairSpace = 8202, + zeroWidthSpace = 8203, + narrowNoBreakSpace = 8239, + ideographicSpace = 12288, + mathematicalSpace = 8287, + ogham = 5760, + _ = 95, + $ = 36, + _0 = 48, + _1 = 49, + _2 = 50, + _3 = 51, + _4 = 52, + _5 = 53, + _6 = 54, + _7 = 55, + _8 = 56, + _9 = 57, + a = 97, + b = 98, + c = 99, + d = 100, + e = 101, + f = 102, + g = 103, + h = 104, + i = 105, + j = 106, + k = 107, + l = 108, + m = 109, + n = 110, + o = 111, + p = 112, + q = 113, + r = 114, + s = 115, + t = 116, + u = 117, + v = 118, + w = 119, + x = 120, + y = 121, + z = 122, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + ampersand = 38, + asterisk = 42, + at = 64, + backslash = 92, + backtick = 96, + bar = 124, + caret = 94, + closeBrace = 125, + closeBracket = 93, + closeParen = 41, + colon = 58, + comma = 44, + dot = 46, + doubleQuote = 34, + equals = 61, + exclamation = 33, + greaterThan = 62, + lessThan = 60, + minus = 45, + openBrace = 123, + openBracket = 91, + openParen = 40, + percent = 37, + plus = 43, + question = 63, + semicolon = 59, + singleQuote = 39, + slash = 47, + tilde = 126, + backspace = 8, + formFeed = 12, + byteOrderMark = 65279, + tab = 9, + verticalTab = 11, + } + interface CancellationToken { + isCancellationRequested(): boolean; + } + interface CompilerHost { + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFilename(options: CompilerOptions): string; + getCancellationToken?(): CancellationToken; + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + getCurrentDirectory(): string; + getCanonicalFileName(fileName: string): string; + useCaseSensitiveFileNames(): boolean; + getNewLine(): string; + } + interface TextSpan { + start: number; + length: number; + } + interface TextChangeRange { + span: TextSpan; + newLength: number; + } +} +declare module "typescript" { + interface ErrorCallback { + (message: DiagnosticMessage, length: number): void; + } + interface Scanner { + getStartPos(): number; + getToken(): SyntaxKind; + getTextPos(): number; + getTokenPos(): number; + getTokenText(): string; + getTokenValue(): string; + hasPrecedingLineBreak(): boolean; + isIdentifier(): boolean; + isReservedWord(): boolean; + isUnterminated(): boolean; + reScanGreaterToken(): SyntaxKind; + reScanSlashToken(): SyntaxKind; + reScanTemplateToken(): SyntaxKind; + scan(): SyntaxKind; + setText(text: string): void; + setTextPos(textPos: number): void; + lookAhead(callback: () => T): T; + tryScan(callback: () => T): T; + } + function tokenToString(t: SyntaxKind): string; + function computeLineStarts(text: string): number[]; + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { + line: number; + character: number; + }; + function positionToLineAndCharacter(text: string, pos: number): { + line: number; + character: number; + }; + function isWhiteSpace(ch: number): boolean; + function isLineBreak(ch: number): boolean; + function isOctalDigit(ch: number): boolean; + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; + function createNode(kind: SyntaxKind): Node; + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; + function modifierToFlag(token: SyntaxKind): NodeFlags; + function isEvalOrArgumentsIdentifier(node: Node): boolean; + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function isLeftHandSideExpression(expr: Expression): boolean; + function isAssignmentOperator(token: SyntaxKind): boolean; +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +} +declare module "typescript" { + var servicesVersion: string; + interface Node { + getSourceFile(): SourceFile; + getChildCount(sourceFile?: SourceFile): number; + getChildAt(index: number, sourceFile?: SourceFile): Node; + getChildren(sourceFile?: SourceFile): Node[]; + getStart(sourceFile?: SourceFile): number; + getFullStart(): number; + getEnd(): number; + getWidth(sourceFile?: SourceFile): number; + getFullWidth(): number; + getLeadingTriviaWidth(sourceFile?: SourceFile): number; + getFullText(sourceFile?: SourceFile): string; + getText(sourceFile?: SourceFile): string; + getFirstToken(sourceFile?: SourceFile): Node; + getLastToken(sourceFile?: SourceFile): Node; + } + interface Symbol { + getFlags(): SymbolFlags; + getName(): string; + getDeclarations(): Declaration[]; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface Type { + getFlags(): TypeFlags; + getSymbol(): Symbol; + getProperties(): Symbol[]; + getProperty(propertyName: string): Symbol; + getApparentProperties(): Symbol[]; + getCallSignatures(): Signature[]; + getConstructSignatures(): Signature[]; + getStringIndexType(): Type; + getNumberIndexType(): Type; + } + interface Signature { + getDeclaration(): SignatureDeclaration; + getTypeParameters(): Type[]; + getParameters(): Symbol[]; + getReturnType(): Type; + getDocumentationComment(): SymbolDisplayPart[]; + } + interface SourceFile { + version: string; + scriptSnapshot: IScriptSnapshot; + nameTable: Map; + getNamedDeclarations(): Declaration[]; + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; + /** Gets the length of this script snapshot. */ + getLength(): number; + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; + } + module ScriptSnapshot { + function fromString(text: string): IScriptSnapshot; + } + interface PreProcessedFileInfo { + referencedFiles: FileReference[]; + importedFiles: FileReference[]; + isLibFile: boolean; + } + interface LanguageServiceHost { + getCompilationSettings(): CompilerOptions; + getNewLine?(): string; + getScriptFileNames(): string[]; + getScriptVersion(fileName: string): string; + getScriptSnapshot(fileName: string): IScriptSnapshot; + getLocalizedDiagnosticMessages?(): any; + getCancellationToken?(): CancellationToken; + getCurrentDirectory(): string; + getDefaultLibFilename(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; + } + interface LanguageService { + cleanupSemanticCache(): void; + getSyntacticDiagnostics(fileName: string): Diagnostic[]; + getSemanticDiagnostics(fileName: string): Diagnostic[]; + getCompilerOptionsDiagnostics(): Diagnostic[]; + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; + getRenameInfo(fileName: string, position: number): RenameInfo; + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; + getNavigateToItems(searchValue: string): NavigateToItem[]; + getNavigationBarItems(fileName: string): NavigationBarItem[]; + getOutliningSpans(fileName: string): OutliningSpan[]; + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; + getEmitOutput(fileName: string): EmitOutput; + getProgram(): Program; + getSourceFile(filename: string): SourceFile; + dispose(): void; + } + interface ClassifiedSpan { + textSpan: TextSpan; + classificationType: string; + } + interface NavigationBarItem { + text: string; + kind: string; + kindModifiers: string; + spans: TextSpan[]; + childItems: NavigationBarItem[]; + indent: number; + bolded: boolean; + grayed: boolean; + } + interface TodoCommentDescriptor { + text: string; + priority: number; + } + interface TodoComment { + descriptor: TodoCommentDescriptor; + message: string; + position: number; + } + class TextChange { + span: TextSpan; + newText: string; + } + interface RenameLocation { + textSpan: TextSpan; + fileName: string; + } + interface ReferenceEntry { + textSpan: TextSpan; + fileName: string; + isWriteAccess: boolean; + } + interface NavigateToItem { + name: string; + kind: string; + kindModifiers: string; + matchKind: string; + fileName: string; + textSpan: TextSpan; + containerName: string; + containerKind: string; + } + interface EditorOptions { + IndentSize: number; + TabSize: number; + NewLineCharacter: string; + ConvertTabsToSpaces: boolean; + } + interface FormatCodeOptions extends EditorOptions { + InsertSpaceAfterCommaDelimiter: boolean; + InsertSpaceAfterSemicolonInForStatements: boolean; + InsertSpaceBeforeAndAfterBinaryOperators: boolean; + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; + PlaceOpenBraceOnNewLineForFunctions: boolean; + PlaceOpenBraceOnNewLineForControlBlocks: boolean; + } + interface DefinitionInfo { + fileName: string; + textSpan: TextSpan; + kind: string; + name: string; + containerKind: string; + containerName: string; + } + enum SymbolDisplayPartKind { + aliasName = 0, + className = 1, + enumName = 2, + fieldName = 3, + interfaceName = 4, + keyword = 5, + lineBreak = 6, + numericLiteral = 7, + stringLiteral = 8, + localName = 9, + methodName = 10, + moduleName = 11, + operator = 12, + parameterName = 13, + propertyName = 14, + punctuation = 15, + space = 16, + text = 17, + typeParameterName = 18, + enumMemberName = 19, + functionName = 20, + regularExpressionLiteral = 21, + } + interface SymbolDisplayPart { + text: string; + kind: string; + } + interface QuickInfo { + kind: string; + kindModifiers: string; + textSpan: TextSpan; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface RenameInfo { + canRename: boolean; + localizedErrorMessage: string; + displayName: string; + fullDisplayName: string; + kind: string; + kindModifiers: string; + triggerSpan: TextSpan; + } + interface SignatureHelpParameter { + name: string; + documentation: SymbolDisplayPart[]; + displayParts: SymbolDisplayPart[]; + isOptional: boolean; + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { + isVariadic: boolean; + prefixDisplayParts: SymbolDisplayPart[]; + suffixDisplayParts: SymbolDisplayPart[]; + separatorDisplayParts: SymbolDisplayPart[]; + parameters: SignatureHelpParameter[]; + documentation: SymbolDisplayPart[]; + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { + items: SignatureHelpItem[]; + applicableSpan: TextSpan; + selectedItemIndex: number; + argumentIndex: number; + argumentCount: number; + } + interface CompletionInfo { + isMemberCompletion: boolean; + entries: CompletionEntry[]; + } + interface CompletionEntry { + name: string; + kind: string; + kindModifiers: string; + } + interface CompletionEntryDetails { + name: string; + kind: string; + kindModifiers: string; + displayParts: SymbolDisplayPart[]; + documentation: SymbolDisplayPart[]; + } + interface OutliningSpan { + /** The span of the document to actually collapse. */ + textSpan: TextSpan; + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; + /** The text to display in the editor for the collapsed region. */ + bannerText: string; + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; + } + interface EmitOutput { + outputFiles: OutputFile[]; + emitOutputStatus: EmitReturnStatus; + } + const enum OutputFileType { + JavaScript = 0, + SourceMap = 1, + Declaration = 2, + } + interface OutputFile { + name: string; + writeByteOrderMark: boolean; + text: string; + } + const enum EndOfLineState { + Start = 0, + InMultiLineCommentTrivia = 1, + InSingleQuoteStringLiteral = 2, + InDoubleQuoteStringLiteral = 3, + } + enum TokenClass { + Punctuation = 0, + Keyword = 1, + Operator = 2, + Comment = 3, + Whitespace = 4, + Identifier = 5, + NumberLiteral = 6, + StringLiteral = 7, + RegExpLiteral = 8, + } + interface ClassificationResult { + finalLexState: EndOfLineState; + entries: ClassificationInfo[]; + } + interface ClassificationInfo { + length: number; + classification: TokenClass; + } + interface Classifier { + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + } + class ScriptElementKind { + static unknown: string; + static keyword: string; + static scriptElement: string; + static moduleElement: string; + static classElement: string; + static interfaceElement: string; + static typeElement: string; + static enumElement: string; + static variableElement: string; + static localVariableElement: string; + static functionElement: string; + static localFunctionElement: string; + static memberFunctionElement: string; + static memberGetAccessorElement: string; + static memberSetAccessorElement: string; + static memberVariableElement: string; + static constructorImplementationElement: string; + static callSignatureElement: string; + static indexSignatureElement: string; + static constructSignatureElement: string; + static parameterElement: string; + static typeParameterElement: string; + static primitiveType: string; + static label: string; + static alias: string; + static constElement: string; + static letElement: string; + } + class ScriptElementKindModifier { + static none: string; + static publicMemberModifier: string; + static privateMemberModifier: string; + static protectedMemberModifier: string; + static exportedModifier: string; + static ambientModifier: string; + static staticModifier: string; + } + class ClassificationTypeNames { + static comment: string; + static identifier: string; + static keyword: string; + static numericLiteral: string; + static operator: string; + static stringLiteral: string; + static whiteSpace: string; + static text: string; + static punctuation: string; + static className: string; + static enumName: string; + static interfaceName: string; + static moduleName: string; + static typeParameterName: string; + static typeAlias: string; + } + interface DisplayPartsSymbolWriter extends SymbolWriter { + displayParts(): SymbolDisplayPart[]; + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; + function getDefaultCompilerOptions(): CompilerOptions; + class OperationCanceledException { + } + class CancellationTokenObject { + private cancellationToken; + static None: CancellationTokenObject; + constructor(cancellationToken: CancellationToken); + isCancellationRequested(): boolean; + throwIfCancellationRequested(): void; + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; + var disableIncrementalParsing: boolean; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function createDocumentRegistry(): DocumentRegistry; + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +} + + +//// [APISample_watcher.js] +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ +var ts = require("typescript"); +function watch(rootFilenames, options) { + var files = {}; + // initialize the list of files + rootFilenames.forEach(function (filename) { + files[filename] = { version: 0 }; + }); + // Create the language service host to allow the LS to communicate with the host + var servicesHost = { + getScriptFileNames: function () { return rootFilenames; }, + getScriptVersion: function (filename) { return files[filename] && files[filename].version.toString(); }, + getScriptSnapshot: function (filename) { + if (!fs.existsSync(filename)) { + return undefined; + } + return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); + }, + getCurrentDirectory: function () { return process.cwd(); }, + getCompilationSettings: function () { return options; }, + getDefaultLibFilename: function (options) { return ts.getDefaultLibFilePath(options); } + }; + // Create the language service files + var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()); + // Now let's watch the files + rootFilenames.forEach(function (filename) { + // First time around, emit all files + emitFile(filename); + // Add a watch on the file to handle next change + fs.watchFile(filename, { persistent: true, interval: 250 }, function (curr, prev) { + // Check timestamp + if (+curr.mtime <= +prev.mtime) { + return; + } + // Update the version to signal a change in the file + files[filename].version++; + // write the changes to disk + emitFile(filename); + }); + }); + function emitFile(filename) { + var output = services.getEmitOutput(filename); + if (output.emitOutputStatus === 0 /* Succeeded */) { + console.log("Emitting " + filename); + } + else { + console.log("Emitting " + filename + " failed"); + logErrors(filename); + } + output.outputFiles.forEach(function (o) { + fs.writeFileSync(o.name, o.text, "utf8"); + }); + } + function logErrors(filename) { + var allDiagnostics = services.getCompilerOptionsDiagnostics().concat(services.getSyntacticDiagnostics(filename)).concat(services.getSemanticDiagnostics(filename)); + allDiagnostics.forEach(function (diagnostic) { + if (diagnostic.file) { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(" Error " + diagnostic.file.filename + " (" + lineChar.line + "," + lineChar.character + "): " + diagnostic.messageText); + } + else { + console.log(" Error: " + diagnostic.messageText); + } + }); + } +} +// Initialize files constituting the program as all .ts files in the current directory +var currentDirectoryFiles = fs.readdirSync(process.cwd()).filter(function (filename) { return filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts"; }); +// Start the watcher +watch(currentDirectoryFiles, { module: 1 /* CommonJS */ }); diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types new file mode 100644 index 00000000000..386302774b0 --- /dev/null +++ b/tests/baselines/reference/APISample_watcher.types @@ -0,0 +1,6226 @@ +=== tests/cases/compiler/APISample_watcher.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : any + +declare var console: any; +>console : any + +declare var fs: any; +>fs : any + +declare var path: any; +>path : any + +import ts = require("typescript"); +>ts : typeof ts + +function watch(rootFilenames: string[], options: ts.CompilerOptions) { +>watch : (rootFilenames: string[], options: ts.CompilerOptions) => void +>rootFilenames : string[] +>options : ts.CompilerOptions +>ts : unknown +>CompilerOptions : ts.CompilerOptions + + var files: ts.Map<{ version: number }> = {}; +>files : ts.Map<{ version: number; }> +>ts : unknown +>Map : ts.Map +>version : number +>{} : { [x: string]: undefined; } + + // initialize the list of files + rootFilenames.forEach(filename => { +>rootFilenames.forEach(filename => { files[filename] = { version: 0 }; }) : void +>rootFilenames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>rootFilenames : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>filename => { files[filename] = { version: 0 }; } : (filename: string) => void +>filename : string + + files[filename] = { version: 0 }; +>files[filename] = { version: 0 } : { version: number; } +>files[filename] : { version: number; } +>files : ts.Map<{ version: number; }> +>filename : string +>{ version: 0 } : { version: number; } +>version : number + + }); + + // Create the language service host to allow the LS to communicate with the host + var servicesHost: ts.LanguageServiceHost = { +>servicesHost : ts.LanguageServiceHost +>ts : unknown +>LanguageServiceHost : ts.LanguageServiceHost +>{ getScriptFileNames: () => rootFilenames, getScriptVersion: (filename) => files[filename] && files[filename].version.toString(), getScriptSnapshot: (filename) => { if (!fs.existsSync(filename)) { return undefined; } return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); }, getCurrentDirectory: () => process.cwd(), getCompilationSettings: () => options, getDefaultLibFilename: (options) => ts.getDefaultLibFilePath(options), } : { getScriptFileNames: () => string[]; getScriptVersion: (filename: string) => string; getScriptSnapshot: (filename: string) => ts.IScriptSnapshot; getCurrentDirectory: () => any; getCompilationSettings: () => ts.CompilerOptions; getDefaultLibFilename: (options: ts.CompilerOptions) => string; } + + getScriptFileNames: () => rootFilenames, +>getScriptFileNames : () => string[] +>() => rootFilenames : () => string[] +>rootFilenames : string[] + + getScriptVersion: (filename) => files[filename] && files[filename].version.toString(), +>getScriptVersion : (filename: string) => string +>(filename) => files[filename] && files[filename].version.toString() : (filename: string) => string +>filename : string +>files[filename] && files[filename].version.toString() : string +>files[filename] : { version: number; } +>files : ts.Map<{ version: number; }> +>filename : string +>files[filename].version.toString() : string +>files[filename].version.toString : (radix?: number) => string +>files[filename].version : number +>files[filename] : { version: number; } +>files : ts.Map<{ version: number; }> +>filename : string +>version : number +>toString : (radix?: number) => string + + getScriptSnapshot: (filename) => { +>getScriptSnapshot : (filename: string) => ts.IScriptSnapshot +>(filename) => { if (!fs.existsSync(filename)) { return undefined; } return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); } : (filename: string) => ts.IScriptSnapshot +>filename : string + + if (!fs.existsSync(filename)) { +>!fs.existsSync(filename) : boolean +>fs.existsSync(filename) : any +>fs.existsSync : any +>fs : any +>existsSync : any +>filename : string + + return undefined; +>undefined : undefined + } + + return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); +>ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()) : ts.IScriptSnapshot +>ts.ScriptSnapshot.fromString : (text: string) => ts.IScriptSnapshot +>ts.ScriptSnapshot : typeof ts.ScriptSnapshot +>ts : typeof ts +>ScriptSnapshot : typeof ts.ScriptSnapshot +>fromString : (text: string) => ts.IScriptSnapshot +>fs.readFileSync(filename).toString() : any +>fs.readFileSync(filename).toString : any +>fs.readFileSync(filename) : any +>fs.readFileSync : any +>fs : any +>readFileSync : any +>filename : string +>toString : any + + }, + getCurrentDirectory: () => process.cwd(), +>getCurrentDirectory : () => any +>() => process.cwd() : () => any +>process.cwd() : any +>process.cwd : any +>process : any +>cwd : any + + getCompilationSettings: () => options, +>getCompilationSettings : () => ts.CompilerOptions +>() => options : () => ts.CompilerOptions +>options : ts.CompilerOptions + + getDefaultLibFilename: (options) => ts.getDefaultLibFilePath(options), +>getDefaultLibFilename : (options: ts.CompilerOptions) => string +>(options) => ts.getDefaultLibFilePath(options) : (options: ts.CompilerOptions) => string +>options : ts.CompilerOptions +>ts.getDefaultLibFilePath(options) : string +>ts.getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>ts : typeof ts +>getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>options : ts.CompilerOptions + + }; + + // Create the language service files + var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) +>services : ts.LanguageService +>ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) : ts.LanguageService +>ts.createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService +>ts : typeof ts +>createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService +>servicesHost : ts.LanguageServiceHost +>ts.createDocumentRegistry() : ts.DocumentRegistry +>ts.createDocumentRegistry : () => ts.DocumentRegistry +>ts : typeof ts +>createDocumentRegistry : () => ts.DocumentRegistry + + // Now let's watch the files + rootFilenames.forEach(filename => { +>rootFilenames.forEach(filename => { // First time around, emit all files emitFile(filename); // Add a watch on the file to handle next change fs.watchFile(filename, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[filename].version++; // write the changes to disk emitFile(filename); }); }) : void +>rootFilenames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>rootFilenames : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>filename => { // First time around, emit all files emitFile(filename); // Add a watch on the file to handle next change fs.watchFile(filename, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[filename].version++; // write the changes to disk emitFile(filename); }); } : (filename: string) => void +>filename : string + + // First time around, emit all files + emitFile(filename); +>emitFile(filename) : void +>emitFile : (filename: string) => void +>filename : string + + // Add a watch on the file to handle next change + fs.watchFile(filename, +>fs.watchFile(filename, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[filename].version++; // write the changes to disk emitFile(filename); }) : any +>fs.watchFile : any +>fs : any +>watchFile : any +>filename : string + + { persistent: true, interval: 250 }, +>{ persistent: true, interval: 250 } : { persistent: boolean; interval: number; } +>persistent : boolean +>interval : number + + (curr, prev) => { +>(curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[filename].version++; // write the changes to disk emitFile(filename); } : (curr: any, prev: any) => void +>curr : any +>prev : any + + // Check timestamp + if (+curr.mtime <= +prev.mtime) { +>+curr.mtime <= +prev.mtime : boolean +>+curr.mtime : number +>curr.mtime : any +>curr : any +>mtime : any +>+prev.mtime : number +>prev.mtime : any +>prev : any +>mtime : any + + return; + } + + // Update the version to signal a change in the file + files[filename].version++; +>files[filename].version++ : number +>files[filename].version : number +>files[filename] : { version: number; } +>files : ts.Map<{ version: number; }> +>filename : string +>version : number + + // write the changes to disk + emitFile(filename); +>emitFile(filename) : void +>emitFile : (filename: string) => void +>filename : string + + }); + }); + + function emitFile(filename: string) { +>emitFile : (filename: string) => void +>filename : string + + var output = services.getEmitOutput(filename); +>output : ts.EmitOutput +>services.getEmitOutput(filename) : ts.EmitOutput +>services.getEmitOutput : (fileName: string) => ts.EmitOutput +>services : ts.LanguageService +>getEmitOutput : (fileName: string) => ts.EmitOutput +>filename : string + + if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { +>output.emitOutputStatus === ts.EmitReturnStatus.Succeeded : boolean +>output.emitOutputStatus : ts.EmitReturnStatus +>output : ts.EmitOutput +>emitOutputStatus : ts.EmitReturnStatus +>ts.EmitReturnStatus.Succeeded : ts.EmitReturnStatus +>ts.EmitReturnStatus : typeof ts.EmitReturnStatus +>ts : typeof ts +>EmitReturnStatus : typeof ts.EmitReturnStatus +>Succeeded : ts.EmitReturnStatus + + console.log(`Emitting ${filename}`); +>console.log(`Emitting ${filename}`) : any +>console.log : any +>console : any +>log : any +>filename : string + } + else { + console.log(`Emitting ${filename} failed`); +>console.log(`Emitting ${filename} failed`) : any +>console.log : any +>console : any +>log : any +>filename : string + + logErrors(filename); +>logErrors(filename) : void +>logErrors : (filename: string) => void +>filename : string + } + + output.outputFiles.forEach(o => { +>output.outputFiles.forEach(o => { fs.writeFileSync(o.name, o.text, "utf8"); }) : void +>output.outputFiles.forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void +>output.outputFiles : ts.OutputFile[] +>output : ts.EmitOutput +>outputFiles : ts.OutputFile[] +>forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void +>o => { fs.writeFileSync(o.name, o.text, "utf8"); } : (o: ts.OutputFile) => void +>o : ts.OutputFile + + fs.writeFileSync(o.name, o.text, "utf8"); +>fs.writeFileSync(o.name, o.text, "utf8") : any +>fs.writeFileSync : any +>fs : any +>writeFileSync : any +>o.name : string +>o : ts.OutputFile +>name : string +>o.text : string +>o : ts.OutputFile +>text : string + + }); + } + + function logErrors(filename: string) { +>logErrors : (filename: string) => void +>filename : string + + var allDiagnostics = services.getCompilerOptionsDiagnostics() +>allDiagnostics : ts.Diagnostic[] +>services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(filename)) .concat(services.getSemanticDiagnostics(filename)) : ts.Diagnostic[] +>services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(filename)) .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(filename)) : ts.Diagnostic[] +>services.getCompilerOptionsDiagnostics() .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>services.getCompilerOptionsDiagnostics() : ts.Diagnostic[] +>services.getCompilerOptionsDiagnostics : () => ts.Diagnostic[] +>services : ts.LanguageService +>getCompilerOptionsDiagnostics : () => ts.Diagnostic[] + + .concat(services.getSyntacticDiagnostics(filename)) +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>services.getSyntacticDiagnostics(filename) : ts.Diagnostic[] +>services.getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[] +>services : ts.LanguageService +>getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[] +>filename : string + + .concat(services.getSemanticDiagnostics(filename)); +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>services.getSemanticDiagnostics(filename) : ts.Diagnostic[] +>services.getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[] +>services : ts.LanguageService +>getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[] +>filename : string + + allDiagnostics.forEach(diagnostic => { +>allDiagnostics.forEach(diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); } else { console.log(` Error: ${diagnostic.messageText}`); } }) : void +>allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>allDiagnostics : ts.Diagnostic[] +>forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); } else { console.log(` Error: ${diagnostic.messageText}`); } } : (diagnostic: ts.Diagnostic) => void +>diagnostic : ts.Diagnostic + + if (diagnostic.file) { +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile + + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); +>lineChar : ts.LineAndCharacter +>diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start) : ts.LineAndCharacter +>diagnostic.file.getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>getLineAndCharacterFromPosition : (position: number) => ts.LineAndCharacter +>diagnostic.start : number +>diagnostic : ts.Diagnostic +>start : number + + console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); +>console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`) : any +>console.log : any +>console : any +>log : any +>diagnostic.file.filename : string +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>filename : string +>lineChar.line : number +>lineChar : ts.LineAndCharacter +>line : number +>lineChar.character : number +>lineChar : ts.LineAndCharacter +>character : number +>diagnostic.messageText : string +>diagnostic : ts.Diagnostic +>messageText : string + } + else { + console.log(` Error: ${diagnostic.messageText}`); +>console.log(` Error: ${diagnostic.messageText}`) : any +>console.log : any +>console : any +>log : any +>diagnostic.messageText : string +>diagnostic : ts.Diagnostic +>messageText : string + } + }); + } +} + +// Initialize files constituting the program as all .ts files in the current directory +var currentDirectoryFiles = fs.readdirSync(process.cwd()). +>currentDirectoryFiles : any +>fs.readdirSync(process.cwd()). filter(filename=> filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts") : any +>fs.readdirSync(process.cwd()). filter : any +>fs.readdirSync(process.cwd()) : any +>fs.readdirSync : any +>fs : any +>readdirSync : any +>process.cwd() : any +>process.cwd : any +>process : any +>cwd : any + + filter(filename=> filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts"); +>filter : any +>filename=> filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts" : (filename: any) => boolean +>filename : any +>filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts" : boolean +>filename.length >= 3 : boolean +>filename.length : any +>filename : any +>length : any +>filename.substr(filename.length - 3, 3) === ".ts" : boolean +>filename.substr(filename.length - 3, 3) : any +>filename.substr : any +>filename : any +>substr : any +>filename.length - 3 : number +>filename.length : any +>filename : any +>length : any + +// Start the watcher +watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); +>watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }) : void +>watch : (rootFilenames: string[], options: ts.CompilerOptions) => void +>currentDirectoryFiles : any +>{ module: ts.ModuleKind.CommonJS } : { [x: string]: ts.ModuleKind; module: ts.ModuleKind; } +>module : ts.ModuleKind +>ts.ModuleKind.CommonJS : ts.ModuleKind +>ts.ModuleKind : typeof ts.ModuleKind +>ts : typeof ts +>ModuleKind : typeof ts.ModuleKind +>CommonJS : ts.ModuleKind + +=== typescript.d.ts === +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +declare module "typescript" { + interface Map { +>Map : Map +>T : T + + [index: string]: T; +>index : string +>T : T + } + interface TextRange { +>TextRange : TextRange + + pos: number; +>pos : number + + end: number; +>end : number + } + const enum SyntaxKind { +>SyntaxKind : SyntaxKind + + Unknown = 0, +>Unknown : SyntaxKind + + EndOfFileToken = 1, +>EndOfFileToken : SyntaxKind + + SingleLineCommentTrivia = 2, +>SingleLineCommentTrivia : SyntaxKind + + MultiLineCommentTrivia = 3, +>MultiLineCommentTrivia : SyntaxKind + + NewLineTrivia = 4, +>NewLineTrivia : SyntaxKind + + WhitespaceTrivia = 5, +>WhitespaceTrivia : SyntaxKind + + ConflictMarkerTrivia = 6, +>ConflictMarkerTrivia : SyntaxKind + + NumericLiteral = 7, +>NumericLiteral : SyntaxKind + + StringLiteral = 8, +>StringLiteral : SyntaxKind + + RegularExpressionLiteral = 9, +>RegularExpressionLiteral : SyntaxKind + + NoSubstitutionTemplateLiteral = 10, +>NoSubstitutionTemplateLiteral : SyntaxKind + + TemplateHead = 11, +>TemplateHead : SyntaxKind + + TemplateMiddle = 12, +>TemplateMiddle : SyntaxKind + + TemplateTail = 13, +>TemplateTail : SyntaxKind + + OpenBraceToken = 14, +>OpenBraceToken : SyntaxKind + + CloseBraceToken = 15, +>CloseBraceToken : SyntaxKind + + OpenParenToken = 16, +>OpenParenToken : SyntaxKind + + CloseParenToken = 17, +>CloseParenToken : SyntaxKind + + OpenBracketToken = 18, +>OpenBracketToken : SyntaxKind + + CloseBracketToken = 19, +>CloseBracketToken : SyntaxKind + + DotToken = 20, +>DotToken : SyntaxKind + + DotDotDotToken = 21, +>DotDotDotToken : SyntaxKind + + SemicolonToken = 22, +>SemicolonToken : SyntaxKind + + CommaToken = 23, +>CommaToken : SyntaxKind + + LessThanToken = 24, +>LessThanToken : SyntaxKind + + GreaterThanToken = 25, +>GreaterThanToken : SyntaxKind + + LessThanEqualsToken = 26, +>LessThanEqualsToken : SyntaxKind + + GreaterThanEqualsToken = 27, +>GreaterThanEqualsToken : SyntaxKind + + EqualsEqualsToken = 28, +>EqualsEqualsToken : SyntaxKind + + ExclamationEqualsToken = 29, +>ExclamationEqualsToken : SyntaxKind + + EqualsEqualsEqualsToken = 30, +>EqualsEqualsEqualsToken : SyntaxKind + + ExclamationEqualsEqualsToken = 31, +>ExclamationEqualsEqualsToken : SyntaxKind + + EqualsGreaterThanToken = 32, +>EqualsGreaterThanToken : SyntaxKind + + PlusToken = 33, +>PlusToken : SyntaxKind + + MinusToken = 34, +>MinusToken : SyntaxKind + + AsteriskToken = 35, +>AsteriskToken : SyntaxKind + + SlashToken = 36, +>SlashToken : SyntaxKind + + PercentToken = 37, +>PercentToken : SyntaxKind + + PlusPlusToken = 38, +>PlusPlusToken : SyntaxKind + + MinusMinusToken = 39, +>MinusMinusToken : SyntaxKind + + LessThanLessThanToken = 40, +>LessThanLessThanToken : SyntaxKind + + GreaterThanGreaterThanToken = 41, +>GreaterThanGreaterThanToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanToken = 42, +>GreaterThanGreaterThanGreaterThanToken : SyntaxKind + + AmpersandToken = 43, +>AmpersandToken : SyntaxKind + + BarToken = 44, +>BarToken : SyntaxKind + + CaretToken = 45, +>CaretToken : SyntaxKind + + ExclamationToken = 46, +>ExclamationToken : SyntaxKind + + TildeToken = 47, +>TildeToken : SyntaxKind + + AmpersandAmpersandToken = 48, +>AmpersandAmpersandToken : SyntaxKind + + BarBarToken = 49, +>BarBarToken : SyntaxKind + + QuestionToken = 50, +>QuestionToken : SyntaxKind + + ColonToken = 51, +>ColonToken : SyntaxKind + + EqualsToken = 52, +>EqualsToken : SyntaxKind + + PlusEqualsToken = 53, +>PlusEqualsToken : SyntaxKind + + MinusEqualsToken = 54, +>MinusEqualsToken : SyntaxKind + + AsteriskEqualsToken = 55, +>AsteriskEqualsToken : SyntaxKind + + SlashEqualsToken = 56, +>SlashEqualsToken : SyntaxKind + + PercentEqualsToken = 57, +>PercentEqualsToken : SyntaxKind + + LessThanLessThanEqualsToken = 58, +>LessThanLessThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanEqualsToken = 59, +>GreaterThanGreaterThanEqualsToken : SyntaxKind + + GreaterThanGreaterThanGreaterThanEqualsToken = 60, +>GreaterThanGreaterThanGreaterThanEqualsToken : SyntaxKind + + AmpersandEqualsToken = 61, +>AmpersandEqualsToken : SyntaxKind + + BarEqualsToken = 62, +>BarEqualsToken : SyntaxKind + + CaretEqualsToken = 63, +>CaretEqualsToken : SyntaxKind + + Identifier = 64, +>Identifier : SyntaxKind + + BreakKeyword = 65, +>BreakKeyword : SyntaxKind + + CaseKeyword = 66, +>CaseKeyword : SyntaxKind + + CatchKeyword = 67, +>CatchKeyword : SyntaxKind + + ClassKeyword = 68, +>ClassKeyword : SyntaxKind + + ConstKeyword = 69, +>ConstKeyword : SyntaxKind + + ContinueKeyword = 70, +>ContinueKeyword : SyntaxKind + + DebuggerKeyword = 71, +>DebuggerKeyword : SyntaxKind + + DefaultKeyword = 72, +>DefaultKeyword : SyntaxKind + + DeleteKeyword = 73, +>DeleteKeyword : SyntaxKind + + DoKeyword = 74, +>DoKeyword : SyntaxKind + + ElseKeyword = 75, +>ElseKeyword : SyntaxKind + + EnumKeyword = 76, +>EnumKeyword : SyntaxKind + + ExportKeyword = 77, +>ExportKeyword : SyntaxKind + + ExtendsKeyword = 78, +>ExtendsKeyword : SyntaxKind + + FalseKeyword = 79, +>FalseKeyword : SyntaxKind + + FinallyKeyword = 80, +>FinallyKeyword : SyntaxKind + + ForKeyword = 81, +>ForKeyword : SyntaxKind + + FunctionKeyword = 82, +>FunctionKeyword : SyntaxKind + + IfKeyword = 83, +>IfKeyword : SyntaxKind + + ImportKeyword = 84, +>ImportKeyword : SyntaxKind + + InKeyword = 85, +>InKeyword : SyntaxKind + + InstanceOfKeyword = 86, +>InstanceOfKeyword : SyntaxKind + + NewKeyword = 87, +>NewKeyword : SyntaxKind + + NullKeyword = 88, +>NullKeyword : SyntaxKind + + ReturnKeyword = 89, +>ReturnKeyword : SyntaxKind + + SuperKeyword = 90, +>SuperKeyword : SyntaxKind + + SwitchKeyword = 91, +>SwitchKeyword : SyntaxKind + + ThisKeyword = 92, +>ThisKeyword : SyntaxKind + + ThrowKeyword = 93, +>ThrowKeyword : SyntaxKind + + TrueKeyword = 94, +>TrueKeyword : SyntaxKind + + TryKeyword = 95, +>TryKeyword : SyntaxKind + + TypeOfKeyword = 96, +>TypeOfKeyword : SyntaxKind + + VarKeyword = 97, +>VarKeyword : SyntaxKind + + VoidKeyword = 98, +>VoidKeyword : SyntaxKind + + WhileKeyword = 99, +>WhileKeyword : SyntaxKind + + WithKeyword = 100, +>WithKeyword : SyntaxKind + + ImplementsKeyword = 101, +>ImplementsKeyword : SyntaxKind + + InterfaceKeyword = 102, +>InterfaceKeyword : SyntaxKind + + LetKeyword = 103, +>LetKeyword : SyntaxKind + + PackageKeyword = 104, +>PackageKeyword : SyntaxKind + + PrivateKeyword = 105, +>PrivateKeyword : SyntaxKind + + ProtectedKeyword = 106, +>ProtectedKeyword : SyntaxKind + + PublicKeyword = 107, +>PublicKeyword : SyntaxKind + + StaticKeyword = 108, +>StaticKeyword : SyntaxKind + + YieldKeyword = 109, +>YieldKeyword : SyntaxKind + + AnyKeyword = 110, +>AnyKeyword : SyntaxKind + + BooleanKeyword = 111, +>BooleanKeyword : SyntaxKind + + ConstructorKeyword = 112, +>ConstructorKeyword : SyntaxKind + + DeclareKeyword = 113, +>DeclareKeyword : SyntaxKind + + GetKeyword = 114, +>GetKeyword : SyntaxKind + + ModuleKeyword = 115, +>ModuleKeyword : SyntaxKind + + RequireKeyword = 116, +>RequireKeyword : SyntaxKind + + NumberKeyword = 117, +>NumberKeyword : SyntaxKind + + SetKeyword = 118, +>SetKeyword : SyntaxKind + + StringKeyword = 119, +>StringKeyword : SyntaxKind + + TypeKeyword = 120, +>TypeKeyword : SyntaxKind + + QualifiedName = 121, +>QualifiedName : SyntaxKind + + ComputedPropertyName = 122, +>ComputedPropertyName : SyntaxKind + + TypeParameter = 123, +>TypeParameter : SyntaxKind + + Parameter = 124, +>Parameter : SyntaxKind + + PropertySignature = 125, +>PropertySignature : SyntaxKind + + PropertyDeclaration = 126, +>PropertyDeclaration : SyntaxKind + + MethodSignature = 127, +>MethodSignature : SyntaxKind + + MethodDeclaration = 128, +>MethodDeclaration : SyntaxKind + + Constructor = 129, +>Constructor : SyntaxKind + + GetAccessor = 130, +>GetAccessor : SyntaxKind + + SetAccessor = 131, +>SetAccessor : SyntaxKind + + CallSignature = 132, +>CallSignature : SyntaxKind + + ConstructSignature = 133, +>ConstructSignature : SyntaxKind + + IndexSignature = 134, +>IndexSignature : SyntaxKind + + TypeReference = 135, +>TypeReference : SyntaxKind + + FunctionType = 136, +>FunctionType : SyntaxKind + + ConstructorType = 137, +>ConstructorType : SyntaxKind + + TypeQuery = 138, +>TypeQuery : SyntaxKind + + TypeLiteral = 139, +>TypeLiteral : SyntaxKind + + ArrayType = 140, +>ArrayType : SyntaxKind + + TupleType = 141, +>TupleType : SyntaxKind + + UnionType = 142, +>UnionType : SyntaxKind + + ParenthesizedType = 143, +>ParenthesizedType : SyntaxKind + + ObjectBindingPattern = 144, +>ObjectBindingPattern : SyntaxKind + + ArrayBindingPattern = 145, +>ArrayBindingPattern : SyntaxKind + + BindingElement = 146, +>BindingElement : SyntaxKind + + ArrayLiteralExpression = 147, +>ArrayLiteralExpression : SyntaxKind + + ObjectLiteralExpression = 148, +>ObjectLiteralExpression : SyntaxKind + + PropertyAccessExpression = 149, +>PropertyAccessExpression : SyntaxKind + + ElementAccessExpression = 150, +>ElementAccessExpression : SyntaxKind + + CallExpression = 151, +>CallExpression : SyntaxKind + + NewExpression = 152, +>NewExpression : SyntaxKind + + TaggedTemplateExpression = 153, +>TaggedTemplateExpression : SyntaxKind + + TypeAssertionExpression = 154, +>TypeAssertionExpression : SyntaxKind + + ParenthesizedExpression = 155, +>ParenthesizedExpression : SyntaxKind + + FunctionExpression = 156, +>FunctionExpression : SyntaxKind + + ArrowFunction = 157, +>ArrowFunction : SyntaxKind + + DeleteExpression = 158, +>DeleteExpression : SyntaxKind + + TypeOfExpression = 159, +>TypeOfExpression : SyntaxKind + + VoidExpression = 160, +>VoidExpression : SyntaxKind + + PrefixUnaryExpression = 161, +>PrefixUnaryExpression : SyntaxKind + + PostfixUnaryExpression = 162, +>PostfixUnaryExpression : SyntaxKind + + BinaryExpression = 163, +>BinaryExpression : SyntaxKind + + ConditionalExpression = 164, +>ConditionalExpression : SyntaxKind + + TemplateExpression = 165, +>TemplateExpression : SyntaxKind + + YieldExpression = 166, +>YieldExpression : SyntaxKind + + SpreadElementExpression = 167, +>SpreadElementExpression : SyntaxKind + + OmittedExpression = 168, +>OmittedExpression : SyntaxKind + + TemplateSpan = 169, +>TemplateSpan : SyntaxKind + + Block = 170, +>Block : SyntaxKind + + VariableStatement = 171, +>VariableStatement : SyntaxKind + + EmptyStatement = 172, +>EmptyStatement : SyntaxKind + + ExpressionStatement = 173, +>ExpressionStatement : SyntaxKind + + IfStatement = 174, +>IfStatement : SyntaxKind + + DoStatement = 175, +>DoStatement : SyntaxKind + + WhileStatement = 176, +>WhileStatement : SyntaxKind + + ForStatement = 177, +>ForStatement : SyntaxKind + + ForInStatement = 178, +>ForInStatement : SyntaxKind + + ContinueStatement = 179, +>ContinueStatement : SyntaxKind + + BreakStatement = 180, +>BreakStatement : SyntaxKind + + ReturnStatement = 181, +>ReturnStatement : SyntaxKind + + WithStatement = 182, +>WithStatement : SyntaxKind + + SwitchStatement = 183, +>SwitchStatement : SyntaxKind + + LabeledStatement = 184, +>LabeledStatement : SyntaxKind + + ThrowStatement = 185, +>ThrowStatement : SyntaxKind + + TryStatement = 186, +>TryStatement : SyntaxKind + + DebuggerStatement = 187, +>DebuggerStatement : SyntaxKind + + VariableDeclaration = 188, +>VariableDeclaration : SyntaxKind + + VariableDeclarationList = 189, +>VariableDeclarationList : SyntaxKind + + FunctionDeclaration = 190, +>FunctionDeclaration : SyntaxKind + + ClassDeclaration = 191, +>ClassDeclaration : SyntaxKind + + InterfaceDeclaration = 192, +>InterfaceDeclaration : SyntaxKind + + TypeAliasDeclaration = 193, +>TypeAliasDeclaration : SyntaxKind + + EnumDeclaration = 194, +>EnumDeclaration : SyntaxKind + + ModuleDeclaration = 195, +>ModuleDeclaration : SyntaxKind + + ModuleBlock = 196, +>ModuleBlock : SyntaxKind + + ImportDeclaration = 197, +>ImportDeclaration : SyntaxKind + + ExportAssignment = 198, +>ExportAssignment : SyntaxKind + + ExternalModuleReference = 199, +>ExternalModuleReference : SyntaxKind + + CaseClause = 200, +>CaseClause : SyntaxKind + + DefaultClause = 201, +>DefaultClause : SyntaxKind + + HeritageClause = 202, +>HeritageClause : SyntaxKind + + CatchClause = 203, +>CatchClause : SyntaxKind + + PropertyAssignment = 204, +>PropertyAssignment : SyntaxKind + + ShorthandPropertyAssignment = 205, +>ShorthandPropertyAssignment : SyntaxKind + + EnumMember = 206, +>EnumMember : SyntaxKind + + SourceFile = 207, +>SourceFile : SyntaxKind + + SyntaxList = 208, +>SyntaxList : SyntaxKind + + Count = 209, +>Count : SyntaxKind + + FirstAssignment = 52, +>FirstAssignment : SyntaxKind + + LastAssignment = 63, +>LastAssignment : SyntaxKind + + FirstReservedWord = 65, +>FirstReservedWord : SyntaxKind + + LastReservedWord = 100, +>LastReservedWord : SyntaxKind + + FirstKeyword = 65, +>FirstKeyword : SyntaxKind + + LastKeyword = 120, +>LastKeyword : SyntaxKind + + FirstFutureReservedWord = 101, +>FirstFutureReservedWord : SyntaxKind + + LastFutureReservedWord = 109, +>LastFutureReservedWord : SyntaxKind + + FirstTypeNode = 135, +>FirstTypeNode : SyntaxKind + + LastTypeNode = 143, +>LastTypeNode : SyntaxKind + + FirstPunctuation = 14, +>FirstPunctuation : SyntaxKind + + LastPunctuation = 63, +>LastPunctuation : SyntaxKind + + FirstToken = 0, +>FirstToken : SyntaxKind + + LastToken = 120, +>LastToken : SyntaxKind + + FirstTriviaToken = 2, +>FirstTriviaToken : SyntaxKind + + LastTriviaToken = 6, +>LastTriviaToken : SyntaxKind + + FirstLiteralToken = 7, +>FirstLiteralToken : SyntaxKind + + LastLiteralToken = 10, +>LastLiteralToken : SyntaxKind + + FirstTemplateToken = 10, +>FirstTemplateToken : SyntaxKind + + LastTemplateToken = 13, +>LastTemplateToken : SyntaxKind + + FirstBinaryOperator = 24, +>FirstBinaryOperator : SyntaxKind + + LastBinaryOperator = 63, +>LastBinaryOperator : SyntaxKind + + FirstNode = 121, +>FirstNode : SyntaxKind + } + const enum NodeFlags { +>NodeFlags : NodeFlags + + Export = 1, +>Export : NodeFlags + + Ambient = 2, +>Ambient : NodeFlags + + Public = 16, +>Public : NodeFlags + + Private = 32, +>Private : NodeFlags + + Protected = 64, +>Protected : NodeFlags + + Static = 128, +>Static : NodeFlags + + MultiLine = 256, +>MultiLine : NodeFlags + + Synthetic = 512, +>Synthetic : NodeFlags + + DeclarationFile = 1024, +>DeclarationFile : NodeFlags + + Let = 2048, +>Let : NodeFlags + + Const = 4096, +>Const : NodeFlags + + OctalLiteral = 8192, +>OctalLiteral : NodeFlags + + Modifier = 243, +>Modifier : NodeFlags + + AccessibilityModifier = 112, +>AccessibilityModifier : NodeFlags + + BlockScoped = 6144, +>BlockScoped : NodeFlags + } + const enum ParserContextFlags { +>ParserContextFlags : ParserContextFlags + + StrictMode = 1, +>StrictMode : ParserContextFlags + + DisallowIn = 2, +>DisallowIn : ParserContextFlags + + Yield = 4, +>Yield : ParserContextFlags + + GeneratorParameter = 8, +>GeneratorParameter : ParserContextFlags + + ThisNodeHasError = 16, +>ThisNodeHasError : ParserContextFlags + + ParserGeneratedFlags = 31, +>ParserGeneratedFlags : ParserContextFlags + + ThisNodeOrAnySubNodesHasError = 32, +>ThisNodeOrAnySubNodesHasError : ParserContextFlags + + HasAggregatedChildData = 64, +>HasAggregatedChildData : ParserContextFlags + } + interface Node extends TextRange { +>Node : Node +>TextRange : TextRange + + kind: SyntaxKind; +>kind : SyntaxKind +>SyntaxKind : SyntaxKind + + flags: NodeFlags; +>flags : NodeFlags +>NodeFlags : NodeFlags + + parserContextFlags?: ParserContextFlags; +>parserContextFlags : ParserContextFlags +>ParserContextFlags : ParserContextFlags + + id?: number; +>id : number + + parent?: Node; +>parent : Node +>Node : Node + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + + locals?: SymbolTable; +>locals : SymbolTable +>SymbolTable : SymbolTable + + nextContainer?: Node; +>nextContainer : Node +>Node : Node + + localSymbol?: Symbol; +>localSymbol : Symbol +>Symbol : Symbol + + modifiers?: ModifiersArray; +>modifiers : ModifiersArray +>ModifiersArray : ModifiersArray + } + interface NodeArray extends Array, TextRange { +>NodeArray : NodeArray +>T : T +>Array : T[] +>T : T +>TextRange : TextRange + + hasTrailingComma?: boolean; +>hasTrailingComma : boolean + } + interface ModifiersArray extends NodeArray { +>ModifiersArray : ModifiersArray +>NodeArray : NodeArray +>Node : Node + + flags: number; +>flags : number + } + interface Identifier extends PrimaryExpression { +>Identifier : Identifier +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + } + interface QualifiedName extends Node { +>QualifiedName : QualifiedName +>Node : Node + + left: EntityName; +>left : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + right: Identifier; +>right : Identifier +>Identifier : Identifier + } + type EntityName = Identifier | QualifiedName; +>EntityName : Identifier | QualifiedName +>Identifier : Identifier +>QualifiedName : QualifiedName + + type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern; +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>Identifier : Identifier +>LiteralExpression : LiteralExpression +>ComputedPropertyName : ComputedPropertyName +>BindingPattern : BindingPattern + + interface Declaration extends Node { +>Declaration : Declaration +>Node : Node + + _declarationBrand: any; +>_declarationBrand : any + + name?: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + } + interface ComputedPropertyName extends Node { +>ComputedPropertyName : ComputedPropertyName +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TypeParameterDeclaration extends Declaration { +>TypeParameterDeclaration : TypeParameterDeclaration +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + constraint?: TypeNode; +>constraint : TypeNode +>TypeNode : TypeNode + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface SignatureDeclaration extends Declaration { +>SignatureDeclaration : SignatureDeclaration +>Declaration : Declaration + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + parameters: NodeArray; +>parameters : NodeArray +>NodeArray : NodeArray +>ParameterDeclaration : ParameterDeclaration + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface VariableDeclaration extends Declaration { +>VariableDeclaration : VariableDeclaration +>Declaration : Declaration + + parent?: VariableDeclarationList; +>parent : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface VariableDeclarationList extends Node { +>VariableDeclarationList : VariableDeclarationList +>Node : Node + + declarations: NodeArray; +>declarations : NodeArray +>NodeArray : NodeArray +>VariableDeclaration : VariableDeclaration + } + interface ParameterDeclaration extends Declaration { +>ParameterDeclaration : ParameterDeclaration +>Declaration : Declaration + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingElement extends Declaration { +>BindingElement : BindingElement +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: Identifier | BindingPattern; +>name : Identifier | BindingPattern +>Identifier : Identifier +>BindingPattern : BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface PropertyDeclaration extends Declaration, ClassElement { +>PropertyDeclaration : PropertyDeclaration +>Declaration : Declaration +>ClassElement : ClassElement + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface ObjectLiteralElement extends Declaration { +>ObjectLiteralElement : ObjectLiteralElement +>Declaration : Declaration + + _objectLiteralBrandBrand: any; +>_objectLiteralBrandBrand : any + } + interface PropertyAssignment extends ObjectLiteralElement { +>PropertyAssignment : PropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + _propertyAssignmentBrand: any; +>_propertyAssignmentBrand : any + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + initializer: Expression; +>initializer : Expression +>Expression : Expression + } + interface ShorthandPropertyAssignment extends ObjectLiteralElement { +>ShorthandPropertyAssignment : ShorthandPropertyAssignment +>ObjectLiteralElement : ObjectLiteralElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + questionToken?: Node; +>questionToken : Node +>Node : Node + } + interface VariableLikeDeclaration extends Declaration { +>VariableLikeDeclaration : VariableLikeDeclaration +>Declaration : Declaration + + propertyName?: Identifier; +>propertyName : Identifier +>Identifier : Identifier + + dotDotDotToken?: Node; +>dotDotDotToken : Node +>Node : Node + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + questionToken?: Node; +>questionToken : Node +>Node : Node + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface BindingPattern extends Node { +>BindingPattern : BindingPattern +>Node : Node + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>BindingElement : BindingElement + } + /** + * Several node kinds share function-like features such as a signature, + * a name, and a body. These nodes should extend FunctionLikeDeclaration. + * Examples: + * FunctionDeclaration + * MethodDeclaration + * AccessorDeclaration + */ + interface FunctionLikeDeclaration extends SignatureDeclaration { +>FunctionLikeDeclaration : FunctionLikeDeclaration +>SignatureDeclaration : SignatureDeclaration + + _functionLikeDeclarationBrand: any; +>_functionLikeDeclarationBrand : any + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + questionToken?: Node; +>questionToken : Node +>Node : Node + + body?: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface FunctionDeclaration extends FunctionLikeDeclaration, Statement { +>FunctionDeclaration : FunctionDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>Statement : Statement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + body?: Block; +>body : Block +>Block : Block + } + interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>MethodDeclaration : MethodDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + body?: Block; +>body : Block +>Block : Block + } + interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement { +>ConstructorDeclaration : ConstructorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement + + body?: Block; +>body : Block +>Block : Block + } + interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement { +>AccessorDeclaration : AccessorDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration +>ClassElement : ClassElement +>ObjectLiteralElement : ObjectLiteralElement + + _accessorDeclarationBrand: any; +>_accessorDeclarationBrand : any + + body: Block; +>body : Block +>Block : Block + } + interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement { +>IndexSignatureDeclaration : IndexSignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>ClassElement : ClassElement + + _indexSignatureDeclarationBrand: any; +>_indexSignatureDeclarationBrand : any + } + interface TypeNode extends Node { +>TypeNode : TypeNode +>Node : Node + + _typeNodeBrand: any; +>_typeNodeBrand : any + } + interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration { +>FunctionOrConstructorTypeNode : FunctionOrConstructorTypeNode +>TypeNode : TypeNode +>SignatureDeclaration : SignatureDeclaration + + _functionOrConstructorTypeNodeBrand: any; +>_functionOrConstructorTypeNodeBrand : any + } + interface TypeReferenceNode extends TypeNode { +>TypeReferenceNode : TypeReferenceNode +>TypeNode : TypeNode + + typeName: EntityName; +>typeName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface TypeQueryNode extends TypeNode { +>TypeQueryNode : TypeQueryNode +>TypeNode : TypeNode + + exprName: EntityName; +>exprName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName + } + interface TypeLiteralNode extends TypeNode, Declaration { +>TypeLiteralNode : TypeLiteralNode +>TypeNode : TypeNode +>Declaration : Declaration + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Node : Node + } + interface ArrayTypeNode extends TypeNode { +>ArrayTypeNode : ArrayTypeNode +>TypeNode : TypeNode + + elementType: TypeNode; +>elementType : TypeNode +>TypeNode : TypeNode + } + interface TupleTypeNode extends TypeNode { +>TupleTypeNode : TupleTypeNode +>TypeNode : TypeNode + + elementTypes: NodeArray; +>elementTypes : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface UnionTypeNode extends TypeNode { +>UnionTypeNode : UnionTypeNode +>TypeNode : TypeNode + + types: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + } + interface ParenthesizedTypeNode extends TypeNode { +>ParenthesizedTypeNode : ParenthesizedTypeNode +>TypeNode : TypeNode + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface StringLiteralTypeNode extends LiteralExpression, TypeNode { +>StringLiteralTypeNode : StringLiteralTypeNode +>LiteralExpression : LiteralExpression +>TypeNode : TypeNode + } + interface Expression extends Node { +>Expression : Expression +>Node : Node + + _expressionBrand: any; +>_expressionBrand : any + + contextualType?: Type; +>contextualType : Type +>Type : Type + } + interface UnaryExpression extends Expression { +>UnaryExpression : UnaryExpression +>Expression : Expression + + _unaryExpressionBrand: any; +>_unaryExpressionBrand : any + } + interface PrefixUnaryExpression extends UnaryExpression { +>PrefixUnaryExpression : PrefixUnaryExpression +>UnaryExpression : UnaryExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + operand: UnaryExpression; +>operand : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface PostfixUnaryExpression extends PostfixExpression { +>PostfixUnaryExpression : PostfixUnaryExpression +>PostfixExpression : PostfixExpression + + operand: LeftHandSideExpression; +>operand : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + } + interface PostfixExpression extends UnaryExpression { +>PostfixExpression : PostfixExpression +>UnaryExpression : UnaryExpression + + _postfixExpressionBrand: any; +>_postfixExpressionBrand : any + } + interface LeftHandSideExpression extends PostfixExpression { +>LeftHandSideExpression : LeftHandSideExpression +>PostfixExpression : PostfixExpression + + _leftHandSideExpressionBrand: any; +>_leftHandSideExpressionBrand : any + } + interface MemberExpression extends LeftHandSideExpression { +>MemberExpression : MemberExpression +>LeftHandSideExpression : LeftHandSideExpression + + _memberExpressionBrand: any; +>_memberExpressionBrand : any + } + interface PrimaryExpression extends MemberExpression { +>PrimaryExpression : PrimaryExpression +>MemberExpression : MemberExpression + + _primaryExpressionBrand: any; +>_primaryExpressionBrand : any + } + interface DeleteExpression extends UnaryExpression { +>DeleteExpression : DeleteExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface TypeOfExpression extends UnaryExpression { +>TypeOfExpression : TypeOfExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface VoidExpression extends UnaryExpression { +>VoidExpression : VoidExpression +>UnaryExpression : UnaryExpression + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface YieldExpression extends Expression { +>YieldExpression : YieldExpression +>Expression : Expression + + asteriskToken?: Node; +>asteriskToken : Node +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BinaryExpression extends Expression { +>BinaryExpression : BinaryExpression +>Expression : Expression + + left: Expression; +>left : Expression +>Expression : Expression + + operator: SyntaxKind; +>operator : SyntaxKind +>SyntaxKind : SyntaxKind + + right: Expression; +>right : Expression +>Expression : Expression + } + interface ConditionalExpression extends Expression { +>ConditionalExpression : ConditionalExpression +>Expression : Expression + + condition: Expression; +>condition : Expression +>Expression : Expression + + whenTrue: Expression; +>whenTrue : Expression +>Expression : Expression + + whenFalse: Expression; +>whenFalse : Expression +>Expression : Expression + } + interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration { +>FunctionExpression : FunctionExpression +>PrimaryExpression : PrimaryExpression +>FunctionLikeDeclaration : FunctionLikeDeclaration + + name?: Identifier; +>name : Identifier +>Identifier : Identifier + + body: Block | Expression; +>body : Expression | Block +>Block : Block +>Expression : Expression + } + interface LiteralExpression extends PrimaryExpression { +>LiteralExpression : LiteralExpression +>PrimaryExpression : PrimaryExpression + + text: string; +>text : string + + isUnterminated?: boolean; +>isUnterminated : boolean + } + interface StringLiteralExpression extends LiteralExpression { +>StringLiteralExpression : StringLiteralExpression +>LiteralExpression : LiteralExpression + + _stringLiteralExpressionBrand: any; +>_stringLiteralExpressionBrand : any + } + interface TemplateExpression extends PrimaryExpression { +>TemplateExpression : TemplateExpression +>PrimaryExpression : PrimaryExpression + + head: LiteralExpression; +>head : LiteralExpression +>LiteralExpression : LiteralExpression + + templateSpans: NodeArray; +>templateSpans : NodeArray +>NodeArray : NodeArray +>TemplateSpan : TemplateSpan + } + interface TemplateSpan extends Node { +>TemplateSpan : TemplateSpan +>Node : Node + + expression: Expression; +>expression : Expression +>Expression : Expression + + literal: LiteralExpression; +>literal : LiteralExpression +>LiteralExpression : LiteralExpression + } + interface ParenthesizedExpression extends PrimaryExpression { +>ParenthesizedExpression : ParenthesizedExpression +>PrimaryExpression : PrimaryExpression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ArrayLiteralExpression extends PrimaryExpression { +>ArrayLiteralExpression : ArrayLiteralExpression +>PrimaryExpression : PrimaryExpression + + elements: NodeArray; +>elements : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface SpreadElementExpression extends Expression { +>SpreadElementExpression : SpreadElementExpression +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ObjectLiteralExpression extends PrimaryExpression, Declaration { +>ObjectLiteralExpression : ObjectLiteralExpression +>PrimaryExpression : PrimaryExpression +>Declaration : Declaration + + properties: NodeArray; +>properties : NodeArray +>NodeArray : NodeArray +>ObjectLiteralElement : ObjectLiteralElement + } + interface PropertyAccessExpression extends MemberExpression { +>PropertyAccessExpression : PropertyAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + name: Identifier; +>name : Identifier +>Identifier : Identifier + } + interface ElementAccessExpression extends MemberExpression { +>ElementAccessExpression : ElementAccessExpression +>MemberExpression : MemberExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + argumentExpression?: Expression; +>argumentExpression : Expression +>Expression : Expression + } + interface CallExpression extends LeftHandSideExpression { +>CallExpression : CallExpression +>LeftHandSideExpression : LeftHandSideExpression + + expression: LeftHandSideExpression; +>expression : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + typeArguments?: NodeArray; +>typeArguments : NodeArray +>NodeArray : NodeArray +>TypeNode : TypeNode + + arguments: NodeArray; +>arguments : NodeArray +>NodeArray : NodeArray +>Expression : Expression + } + interface NewExpression extends CallExpression, PrimaryExpression { +>NewExpression : NewExpression +>CallExpression : CallExpression +>PrimaryExpression : PrimaryExpression + } + interface TaggedTemplateExpression extends MemberExpression { +>TaggedTemplateExpression : TaggedTemplateExpression +>MemberExpression : MemberExpression + + tag: LeftHandSideExpression; +>tag : LeftHandSideExpression +>LeftHandSideExpression : LeftHandSideExpression + + template: LiteralExpression | TemplateExpression; +>template : LiteralExpression | TemplateExpression +>LiteralExpression : LiteralExpression +>TemplateExpression : TemplateExpression + } + type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression; +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>CallExpression : CallExpression +>NewExpression : NewExpression +>TaggedTemplateExpression : TaggedTemplateExpression + + interface TypeAssertion extends UnaryExpression { +>TypeAssertion : TypeAssertion +>UnaryExpression : UnaryExpression + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + expression: UnaryExpression; +>expression : UnaryExpression +>UnaryExpression : UnaryExpression + } + interface Statement extends Node, ModuleElement { +>Statement : Statement +>Node : Node +>ModuleElement : ModuleElement + + _statementBrand: any; +>_statementBrand : any + } + interface Block extends Statement { +>Block : Block +>Statement : Statement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface VariableStatement extends Statement { +>VariableStatement : VariableStatement +>Statement : Statement + + declarationList: VariableDeclarationList; +>declarationList : VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList + } + interface ExpressionStatement extends Statement { +>ExpressionStatement : ExpressionStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface IfStatement extends Statement { +>IfStatement : IfStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + thenStatement: Statement; +>thenStatement : Statement +>Statement : Statement + + elseStatement?: Statement; +>elseStatement : Statement +>Statement : Statement + } + interface IterationStatement extends Statement { +>IterationStatement : IterationStatement +>Statement : Statement + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface DoStatement extends IterationStatement { +>DoStatement : DoStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface WhileStatement extends IterationStatement { +>WhileStatement : WhileStatement +>IterationStatement : IterationStatement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface ForStatement extends IterationStatement { +>ForStatement : ForStatement +>IterationStatement : IterationStatement + + initializer?: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + condition?: Expression; +>condition : Expression +>Expression : Expression + + iterator?: Expression; +>iterator : Expression +>Expression : Expression + } + interface ForInStatement extends IterationStatement { +>ForInStatement : ForInStatement +>IterationStatement : IterationStatement + + initializer: VariableDeclarationList | Expression; +>initializer : Expression | VariableDeclarationList +>VariableDeclarationList : VariableDeclarationList +>Expression : Expression + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface BreakOrContinueStatement extends Statement { +>BreakOrContinueStatement : BreakOrContinueStatement +>Statement : Statement + + label?: Identifier; +>label : Identifier +>Identifier : Identifier + } + interface ReturnStatement extends Statement { +>ReturnStatement : ReturnStatement +>Statement : Statement + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface WithStatement extends Statement { +>WithStatement : WithStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface SwitchStatement extends Statement { +>SwitchStatement : SwitchStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + + clauses: NodeArray; +>clauses : NodeArray +>NodeArray : NodeArray +>CaseOrDefaultClause : CaseClause | DefaultClause + } + interface CaseClause extends Node { +>CaseClause : CaseClause +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + interface DefaultClause extends Node { +>DefaultClause : DefaultClause +>Node : Node + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>Statement : Statement + } + type CaseOrDefaultClause = CaseClause | DefaultClause; +>CaseOrDefaultClause : CaseClause | DefaultClause +>CaseClause : CaseClause +>DefaultClause : DefaultClause + + interface LabeledStatement extends Statement { +>LabeledStatement : LabeledStatement +>Statement : Statement + + label: Identifier; +>label : Identifier +>Identifier : Identifier + + statement: Statement; +>statement : Statement +>Statement : Statement + } + interface ThrowStatement extends Statement { +>ThrowStatement : ThrowStatement +>Statement : Statement + + expression: Expression; +>expression : Expression +>Expression : Expression + } + interface TryStatement extends Statement { +>TryStatement : TryStatement +>Statement : Statement + + tryBlock: Block; +>tryBlock : Block +>Block : Block + + catchClause?: CatchClause; +>catchClause : CatchClause +>CatchClause : CatchClause + + finallyBlock?: Block; +>finallyBlock : Block +>Block : Block + } + interface CatchClause extends Declaration { +>CatchClause : CatchClause +>Declaration : Declaration + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type?: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + + block: Block; +>block : Block +>Block : Block + } + interface ModuleElement extends Node { +>ModuleElement : ModuleElement +>Node : Node + + _moduleElementBrand: any; +>_moduleElementBrand : any + } + interface ClassDeclaration extends Declaration, ModuleElement { +>ClassDeclaration : ClassDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>ClassElement : ClassElement + } + interface ClassElement extends Declaration { +>ClassElement : ClassElement +>Declaration : Declaration + + _classElementBrand: any; +>_classElementBrand : any + } + interface InterfaceDeclaration extends Declaration, ModuleElement { +>InterfaceDeclaration : InterfaceDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + typeParameters?: NodeArray; +>typeParameters : NodeArray +>NodeArray : NodeArray +>TypeParameterDeclaration : TypeParameterDeclaration + + heritageClauses?: NodeArray; +>heritageClauses : NodeArray +>NodeArray : NodeArray +>HeritageClause : HeritageClause + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>Declaration : Declaration + } + interface HeritageClause extends Node { +>HeritageClause : HeritageClause +>Node : Node + + token: SyntaxKind; +>token : SyntaxKind +>SyntaxKind : SyntaxKind + + types?: NodeArray; +>types : NodeArray +>NodeArray : NodeArray +>TypeReferenceNode : TypeReferenceNode + } + interface TypeAliasDeclaration extends Declaration, ModuleElement { +>TypeAliasDeclaration : TypeAliasDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + type: TypeNode; +>type : TypeNode +>TypeNode : TypeNode + } + interface EnumMember extends Declaration { +>EnumMember : EnumMember +>Declaration : Declaration + + name: DeclarationName; +>name : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern +>DeclarationName : Identifier | LiteralExpression | ComputedPropertyName | BindingPattern + + initializer?: Expression; +>initializer : Expression +>Expression : Expression + } + interface EnumDeclaration extends Declaration, ModuleElement { +>EnumDeclaration : EnumDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + members: NodeArray; +>members : NodeArray +>NodeArray : NodeArray +>EnumMember : EnumMember + } + interface ModuleDeclaration extends Declaration, ModuleElement { +>ModuleDeclaration : ModuleDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier | LiteralExpression; +>name : Identifier | LiteralExpression +>Identifier : Identifier +>LiteralExpression : LiteralExpression + + body: ModuleBlock | ModuleDeclaration; +>body : ModuleDeclaration | ModuleBlock +>ModuleBlock : ModuleBlock +>ModuleDeclaration : ModuleDeclaration + } + interface ModuleBlock extends Node, ModuleElement { +>ModuleBlock : ModuleBlock +>Node : Node +>ModuleElement : ModuleElement + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + } + interface ImportDeclaration extends Declaration, ModuleElement { +>ImportDeclaration : ImportDeclaration +>Declaration : Declaration +>ModuleElement : ModuleElement + + name: Identifier; +>name : Identifier +>Identifier : Identifier + + moduleReference: EntityName | ExternalModuleReference; +>moduleReference : Identifier | QualifiedName | ExternalModuleReference +>EntityName : Identifier | QualifiedName +>ExternalModuleReference : ExternalModuleReference + } + interface ExternalModuleReference extends Node { +>ExternalModuleReference : ExternalModuleReference +>Node : Node + + expression?: Expression; +>expression : Expression +>Expression : Expression + } + interface ExportAssignment extends Statement, ModuleElement { +>ExportAssignment : ExportAssignment +>Statement : Statement +>ModuleElement : ModuleElement + + exportName: Identifier; +>exportName : Identifier +>Identifier : Identifier + } + interface FileReference extends TextRange { +>FileReference : FileReference +>TextRange : TextRange + + filename: string; +>filename : string + } + interface CommentRange extends TextRange { +>CommentRange : CommentRange +>TextRange : TextRange + + hasTrailingNewLine?: boolean; +>hasTrailingNewLine : boolean + } + interface SourceFile extends Declaration { +>SourceFile : SourceFile +>Declaration : Declaration + + statements: NodeArray; +>statements : NodeArray +>NodeArray : NodeArray +>ModuleElement : ModuleElement + + endOfFileToken: Node; +>endOfFileToken : Node +>Node : Node + + filename: string; +>filename : string + + text: string; +>text : string + + getLineAndCharacterFromPosition(position: number): LineAndCharacter; +>getLineAndCharacterFromPosition : (position: number) => LineAndCharacter +>position : number +>LineAndCharacter : LineAndCharacter + + getPositionFromLineAndCharacter(line: number, character: number): number; +>getPositionFromLineAndCharacter : (line: number, character: number) => number +>line : number +>character : number + + getLineStarts(): number[]; +>getLineStarts : () => number[] + + update(newText: string, textChangeRange: TextChangeRange): SourceFile; +>update : (newText: string, textChangeRange: TextChangeRange) => SourceFile +>newText : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + amdDependencies: string[]; +>amdDependencies : string[] + + amdModuleName: string; +>amdModuleName : string + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + referenceDiagnostics: Diagnostic[]; +>referenceDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + parseDiagnostics: Diagnostic[]; +>parseDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticDiagnostics(): Diagnostic[]; +>getSyntacticDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + semanticDiagnostics: Diagnostic[]; +>semanticDiagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + hasNoDefaultLib: boolean; +>hasNoDefaultLib : boolean + + externalModuleIndicator: Node; +>externalModuleIndicator : Node +>Node : Node + + nodeCount: number; +>nodeCount : number + + identifierCount: number; +>identifierCount : number + + symbolCount: number; +>symbolCount : number + + languageVersion: ScriptTarget; +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + identifiers: Map; +>identifiers : Map +>Map : Map + } + interface ScriptReferenceHost { +>ScriptReferenceHost : ScriptReferenceHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + } + interface Program extends ScriptReferenceHost { +>Program : Program +>ScriptReferenceHost : ScriptReferenceHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; +>getDeclarationDiagnostics : (sourceFile: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getTypeChecker(produceDiagnostics: boolean): TypeChecker; +>getTypeChecker : (produceDiagnostics: boolean) => TypeChecker +>produceDiagnostics : boolean +>TypeChecker : TypeChecker + + getCommonSourceDirectory(): string; +>getCommonSourceDirectory : () => string + + emitFiles(targetSourceFile?: SourceFile): EmitResult; +>emitFiles : (targetSourceFile?: SourceFile) => EmitResult +>targetSourceFile : SourceFile +>SourceFile : SourceFile +>EmitResult : EmitResult + + isEmitBlocked(sourceFile?: SourceFile): boolean; +>isEmitBlocked : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + } + interface SourceMapSpan { +>SourceMapSpan : SourceMapSpan + + emittedLine: number; +>emittedLine : number + + emittedColumn: number; +>emittedColumn : number + + sourceLine: number; +>sourceLine : number + + sourceColumn: number; +>sourceColumn : number + + nameIndex?: number; +>nameIndex : number + + sourceIndex: number; +>sourceIndex : number + } + interface SourceMapData { +>SourceMapData : SourceMapData + + sourceMapFilePath: string; +>sourceMapFilePath : string + + jsSourceMappingURL: string; +>jsSourceMappingURL : string + + sourceMapFile: string; +>sourceMapFile : string + + sourceMapSourceRoot: string; +>sourceMapSourceRoot : string + + sourceMapSources: string[]; +>sourceMapSources : string[] + + inputSourceFileNames: string[]; +>inputSourceFileNames : string[] + + sourceMapNames?: string[]; +>sourceMapNames : string[] + + sourceMapMappings: string; +>sourceMapMappings : string + + sourceMapDecodedMappings: SourceMapSpan[]; +>sourceMapDecodedMappings : SourceMapSpan[] +>SourceMapSpan : SourceMapSpan + } + enum EmitReturnStatus { +>EmitReturnStatus : EmitReturnStatus + + Succeeded = 0, +>Succeeded : EmitReturnStatus + + AllOutputGenerationSkipped = 1, +>AllOutputGenerationSkipped : EmitReturnStatus + + JSGeneratedWithSemanticErrors = 2, +>JSGeneratedWithSemanticErrors : EmitReturnStatus + + DeclarationGenerationSkipped = 3, +>DeclarationGenerationSkipped : EmitReturnStatus + + EmitErrorsEncountered = 4, +>EmitErrorsEncountered : EmitReturnStatus + + CompilerOptionsErrors = 5, +>CompilerOptionsErrors : EmitReturnStatus + } + interface EmitResult { +>EmitResult : EmitResult + + emitResultStatus: EmitReturnStatus; +>emitResultStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + + diagnostics: Diagnostic[]; +>diagnostics : Diagnostic[] +>Diagnostic : Diagnostic + + sourceMaps: SourceMapData[]; +>sourceMaps : SourceMapData[] +>SourceMapData : SourceMapData + } + interface TypeCheckerHost { +>TypeCheckerHost : TypeCheckerHost + + getCompilerOptions(): CompilerOptions; +>getCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getCompilerHost(): CompilerHost; +>getCompilerHost : () => CompilerHost +>CompilerHost : CompilerHost + + getSourceFiles(): SourceFile[]; +>getSourceFiles : () => SourceFile[] +>SourceFile : SourceFile + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + } + interface TypeChecker { +>TypeChecker : TypeChecker + + getEmitResolver(): EmitResolver; +>getEmitResolver : () => EmitResolver +>EmitResolver : EmitResolver + + getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; +>getDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Diagnostic : Diagnostic + + getGlobalDiagnostics(): Diagnostic[]; +>getGlobalDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getNodeCount(): number; +>getNodeCount : () => number + + getIdentifierCount(): number; +>getIdentifierCount : () => number + + getSymbolCount(): number; +>getSymbolCount : () => number + + getTypeCount(): number; +>getTypeCount : () => number + + getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; +>getTypeOfSymbolAtLocation : (symbol: Symbol, node: Node) => Type +>symbol : Symbol +>Symbol : Symbol +>node : Node +>Node : Node +>Type : Type + + getDeclaredTypeOfSymbol(symbol: Symbol): Type; +>getDeclaredTypeOfSymbol : (symbol: Symbol) => Type +>symbol : Symbol +>Symbol : Symbol +>Type : Type + + getPropertiesOfType(type: Type): Symbol[]; +>getPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getPropertyOfType(type: Type, propertyName: string): Symbol; +>getPropertyOfType : (type: Type, propertyName: string) => Symbol +>type : Type +>Type : Type +>propertyName : string +>Symbol : Symbol + + getSignaturesOfType(type: Type, kind: SignatureKind): Signature[]; +>getSignaturesOfType : (type: Type, kind: SignatureKind) => Signature[] +>type : Type +>Type : Type +>kind : SignatureKind +>SignatureKind : SignatureKind +>Signature : Signature + + getIndexTypeOfType(type: Type, kind: IndexKind): Type; +>getIndexTypeOfType : (type: Type, kind: IndexKind) => Type +>type : Type +>Type : Type +>kind : IndexKind +>IndexKind : IndexKind +>Type : Type + + getReturnTypeOfSignature(signature: Signature): Type; +>getReturnTypeOfSignature : (signature: Signature) => Type +>signature : Signature +>Signature : Signature +>Type : Type + + getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; +>getSymbolsInScope : (location: Node, meaning: SymbolFlags) => Symbol[] +>location : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>Symbol : Symbol + + getSymbolAtLocation(node: Node): Symbol; +>getSymbolAtLocation : (node: Node) => Symbol +>node : Node +>Node : Node +>Symbol : Symbol + + getShorthandAssignmentValueSymbol(location: Node): Symbol; +>getShorthandAssignmentValueSymbol : (location: Node) => Symbol +>location : Node +>Node : Node +>Symbol : Symbol + + getTypeAtLocation(node: Node): Type; +>getTypeAtLocation : (node: Node) => Type +>node : Node +>Node : Node +>Type : Type + + typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; +>typeToString : (type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => string +>type : Type +>Type : Type +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string; +>symbolToString : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => string +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + + getSymbolDisplayBuilder(): SymbolDisplayBuilder; +>getSymbolDisplayBuilder : () => SymbolDisplayBuilder +>SymbolDisplayBuilder : SymbolDisplayBuilder + + getFullyQualifiedName(symbol: Symbol): string; +>getFullyQualifiedName : (symbol: Symbol) => string +>symbol : Symbol +>Symbol : Symbol + + getAugmentedPropertiesOfType(type: Type): Symbol[]; +>getAugmentedPropertiesOfType : (type: Type) => Symbol[] +>type : Type +>Type : Type +>Symbol : Symbol + + getRootSymbols(symbol: Symbol): Symbol[]; +>getRootSymbols : (symbol: Symbol) => Symbol[] +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + + getContextualType(node: Expression): Type; +>getContextualType : (node: Expression) => Type +>node : Expression +>Expression : Expression +>Type : Type + + getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature; +>getResolvedSignature : (node: CallExpression | NewExpression | TaggedTemplateExpression, candidatesOutArray?: Signature[]) => Signature +>node : CallExpression | NewExpression | TaggedTemplateExpression +>CallLikeExpression : CallExpression | NewExpression | TaggedTemplateExpression +>candidatesOutArray : Signature[] +>Signature : Signature +>Signature : Signature + + getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature; +>getSignatureFromDeclaration : (declaration: SignatureDeclaration) => Signature +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>Signature : Signature + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + isUndefinedSymbol(symbol: Symbol): boolean; +>isUndefinedSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + isArgumentsSymbol(symbol: Symbol): boolean; +>isArgumentsSymbol : (symbol: Symbol) => boolean +>symbol : Symbol +>Symbol : Symbol + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; +>isValidPropertyAccess : (node: QualifiedName | PropertyAccessExpression, propertyName: string) => boolean +>node : QualifiedName | PropertyAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>QualifiedName : QualifiedName +>propertyName : string + + getAliasedSymbol(symbol: Symbol): Symbol; +>getAliasedSymbol : (symbol: Symbol) => Symbol +>symbol : Symbol +>Symbol : Symbol +>Symbol : Symbol + } + interface SymbolDisplayBuilder { +>SymbolDisplayBuilder : SymbolDisplayBuilder + + buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeDisplay : (type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>type : Type +>Type : Type +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; +>buildSymbolDisplay : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>flags : SymbolFormatFlags +>SymbolFormatFlags : SymbolFormatFlags + + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildSignatureDisplay : (signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signatures : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildParameterDisplay : (parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameter : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplay : (tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>tp : TypeParameter +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; +>buildTypeParameterDisplayFromSymbol : (symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags) => void +>symbol : Symbol +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaraiton : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForParametersAndDelimiters : (parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>parameters : Symbol[] +>Symbol : Symbol +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildDisplayForTypeParametersAndDelimiters : (typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + + buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; +>buildReturnTypeDisplay : (signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags) => void +>signature : Signature +>Signature : Signature +>writer : SymbolWriter +>SymbolWriter : SymbolWriter +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags + } + interface SymbolWriter { +>SymbolWriter : SymbolWriter + + writeKeyword(text: string): void; +>writeKeyword : (text: string) => void +>text : string + + writeOperator(text: string): void; +>writeOperator : (text: string) => void +>text : string + + writePunctuation(text: string): void; +>writePunctuation : (text: string) => void +>text : string + + writeSpace(text: string): void; +>writeSpace : (text: string) => void +>text : string + + writeStringLiteral(text: string): void; +>writeStringLiteral : (text: string) => void +>text : string + + writeParameter(text: string): void; +>writeParameter : (text: string) => void +>text : string + + writeSymbol(text: string, symbol: Symbol): void; +>writeSymbol : (text: string, symbol: Symbol) => void +>text : string +>symbol : Symbol +>Symbol : Symbol + + writeLine(): void; +>writeLine : () => void + + increaseIndent(): void; +>increaseIndent : () => void + + decreaseIndent(): void; +>decreaseIndent : () => void + + clear(): void; +>clear : () => void + + trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; +>trackSymbol : (symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) => void +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags + } + const enum TypeFormatFlags { +>TypeFormatFlags : TypeFormatFlags + + None = 0, +>None : TypeFormatFlags + + WriteArrayAsGenericType = 1, +>WriteArrayAsGenericType : TypeFormatFlags + + UseTypeOfFunction = 2, +>UseTypeOfFunction : TypeFormatFlags + + NoTruncation = 4, +>NoTruncation : TypeFormatFlags + + WriteArrowStyleSignature = 8, +>WriteArrowStyleSignature : TypeFormatFlags + + WriteOwnNameForAnyLike = 16, +>WriteOwnNameForAnyLike : TypeFormatFlags + + WriteTypeArgumentsOfSignature = 32, +>WriteTypeArgumentsOfSignature : TypeFormatFlags + + InElementType = 64, +>InElementType : TypeFormatFlags + } + const enum SymbolFormatFlags { +>SymbolFormatFlags : SymbolFormatFlags + + None = 0, +>None : SymbolFormatFlags + + WriteTypeParametersOrArguments = 1, +>WriteTypeParametersOrArguments : SymbolFormatFlags + + UseOnlyExternalAliasing = 2, +>UseOnlyExternalAliasing : SymbolFormatFlags + } + const enum SymbolAccessibility { +>SymbolAccessibility : SymbolAccessibility + + Accessible = 0, +>Accessible : SymbolAccessibility + + NotAccessible = 1, +>NotAccessible : SymbolAccessibility + + CannotBeNamed = 2, +>CannotBeNamed : SymbolAccessibility + } + interface SymbolVisibilityResult { +>SymbolVisibilityResult : SymbolVisibilityResult + + accessibility: SymbolAccessibility; +>accessibility : SymbolAccessibility +>SymbolAccessibility : SymbolAccessibility + + aliasesToMakeVisible?: ImportDeclaration[]; +>aliasesToMakeVisible : ImportDeclaration[] +>ImportDeclaration : ImportDeclaration + + errorSymbolName?: string; +>errorSymbolName : string + + errorNode?: Node; +>errorNode : Node +>Node : Node + } + interface SymbolAccessiblityResult extends SymbolVisibilityResult { +>SymbolAccessiblityResult : SymbolAccessiblityResult +>SymbolVisibilityResult : SymbolVisibilityResult + + errorModuleName?: string; +>errorModuleName : string + } + interface EmitResolver { +>EmitResolver : EmitResolver + + getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; +>getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string +>container : EnumDeclaration | ModuleDeclaration +>ModuleDeclaration : ModuleDeclaration +>EnumDeclaration : EnumDeclaration + + getExpressionNamePrefix(node: Identifier): string; +>getExpressionNamePrefix : (node: Identifier) => string +>node : Identifier +>Identifier : Identifier + + getExportAssignmentName(node: SourceFile): string; +>getExportAssignmentName : (node: SourceFile) => string +>node : SourceFile +>SourceFile : SourceFile + + isReferencedImportDeclaration(node: ImportDeclaration): boolean; +>isReferencedImportDeclaration : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; +>isTopLevelValueImportWithEntityName : (node: ImportDeclaration) => boolean +>node : ImportDeclaration +>ImportDeclaration : ImportDeclaration + + getNodeCheckFlags(node: Node): NodeCheckFlags; +>getNodeCheckFlags : (node: Node) => NodeCheckFlags +>node : Node +>Node : Node +>NodeCheckFlags : NodeCheckFlags + + getEnumMemberValue(node: EnumMember): number; +>getEnumMemberValue : (node: EnumMember) => number +>node : EnumMember +>EnumMember : EnumMember + + hasSemanticErrors(sourceFile?: SourceFile): boolean; +>hasSemanticErrors : (sourceFile?: SourceFile) => boolean +>sourceFile : SourceFile +>SourceFile : SourceFile + + isDeclarationVisible(node: Declaration): boolean; +>isDeclarationVisible : (node: Declaration) => boolean +>node : Declaration +>Declaration : Declaration + + isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; +>isImplementationOfOverload : (node: FunctionLikeDeclaration) => boolean +>node : FunctionLikeDeclaration +>FunctionLikeDeclaration : FunctionLikeDeclaration + + writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeTypeOfDeclaration : (declaration: VariableLikeDeclaration | AccessorDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>declaration : VariableLikeDeclaration | AccessorDeclaration +>AccessorDeclaration : AccessorDeclaration +>VariableLikeDeclaration : VariableLikeDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; +>writeReturnTypeOfSignatureDeclaration : (signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) => void +>signatureDeclaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration +>enclosingDeclaration : Node +>Node : Node +>flags : TypeFormatFlags +>TypeFormatFlags : TypeFormatFlags +>writer : SymbolWriter +>SymbolWriter : SymbolWriter + + isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; +>isSymbolAccessible : (symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) => SymbolAccessiblityResult +>symbol : Symbol +>Symbol : Symbol +>enclosingDeclaration : Node +>Node : Node +>meaning : SymbolFlags +>SymbolFlags : SymbolFlags +>SymbolAccessiblityResult : SymbolAccessiblityResult + + isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; +>isEntityNameVisible : (entityName: Identifier | QualifiedName, enclosingDeclaration: Node) => SymbolVisibilityResult +>entityName : Identifier | QualifiedName +>EntityName : Identifier | QualifiedName +>enclosingDeclaration : Node +>Node : Node +>SymbolVisibilityResult : SymbolVisibilityResult + + getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; +>getConstantValue : (node: PropertyAccessExpression | ElementAccessExpression) => number +>node : PropertyAccessExpression | ElementAccessExpression +>PropertyAccessExpression : PropertyAccessExpression +>ElementAccessExpression : ElementAccessExpression + + isUnknownIdentifier(location: Node, name: string): boolean; +>isUnknownIdentifier : (location: Node, name: string) => boolean +>location : Node +>Node : Node +>name : string + } + const enum SymbolFlags { +>SymbolFlags : SymbolFlags + + FunctionScopedVariable = 1, +>FunctionScopedVariable : SymbolFlags + + BlockScopedVariable = 2, +>BlockScopedVariable : SymbolFlags + + Property = 4, +>Property : SymbolFlags + + EnumMember = 8, +>EnumMember : SymbolFlags + + Function = 16, +>Function : SymbolFlags + + Class = 32, +>Class : SymbolFlags + + Interface = 64, +>Interface : SymbolFlags + + ConstEnum = 128, +>ConstEnum : SymbolFlags + + RegularEnum = 256, +>RegularEnum : SymbolFlags + + ValueModule = 512, +>ValueModule : SymbolFlags + + NamespaceModule = 1024, +>NamespaceModule : SymbolFlags + + TypeLiteral = 2048, +>TypeLiteral : SymbolFlags + + ObjectLiteral = 4096, +>ObjectLiteral : SymbolFlags + + Method = 8192, +>Method : SymbolFlags + + Constructor = 16384, +>Constructor : SymbolFlags + + GetAccessor = 32768, +>GetAccessor : SymbolFlags + + SetAccessor = 65536, +>SetAccessor : SymbolFlags + + Signature = 131072, +>Signature : SymbolFlags + + TypeParameter = 262144, +>TypeParameter : SymbolFlags + + TypeAlias = 524288, +>TypeAlias : SymbolFlags + + ExportValue = 1048576, +>ExportValue : SymbolFlags + + ExportType = 2097152, +>ExportType : SymbolFlags + + ExportNamespace = 4194304, +>ExportNamespace : SymbolFlags + + Import = 8388608, +>Import : SymbolFlags + + Instantiated = 16777216, +>Instantiated : SymbolFlags + + Merged = 33554432, +>Merged : SymbolFlags + + Transient = 67108864, +>Transient : SymbolFlags + + Prototype = 134217728, +>Prototype : SymbolFlags + + UnionProperty = 268435456, +>UnionProperty : SymbolFlags + + Optional = 536870912, +>Optional : SymbolFlags + + Enum = 384, +>Enum : SymbolFlags + + Variable = 3, +>Variable : SymbolFlags + + Value = 107455, +>Value : SymbolFlags + + Type = 793056, +>Type : SymbolFlags + + Namespace = 1536, +>Namespace : SymbolFlags + + Module = 1536, +>Module : SymbolFlags + + Accessor = 98304, +>Accessor : SymbolFlags + + FunctionScopedVariableExcludes = 107454, +>FunctionScopedVariableExcludes : SymbolFlags + + BlockScopedVariableExcludes = 107455, +>BlockScopedVariableExcludes : SymbolFlags + + ParameterExcludes = 107455, +>ParameterExcludes : SymbolFlags + + PropertyExcludes = 107455, +>PropertyExcludes : SymbolFlags + + EnumMemberExcludes = 107455, +>EnumMemberExcludes : SymbolFlags + + FunctionExcludes = 106927, +>FunctionExcludes : SymbolFlags + + ClassExcludes = 899583, +>ClassExcludes : SymbolFlags + + InterfaceExcludes = 792992, +>InterfaceExcludes : SymbolFlags + + RegularEnumExcludes = 899327, +>RegularEnumExcludes : SymbolFlags + + ConstEnumExcludes = 899967, +>ConstEnumExcludes : SymbolFlags + + ValueModuleExcludes = 106639, +>ValueModuleExcludes : SymbolFlags + + NamespaceModuleExcludes = 0, +>NamespaceModuleExcludes : SymbolFlags + + MethodExcludes = 99263, +>MethodExcludes : SymbolFlags + + GetAccessorExcludes = 41919, +>GetAccessorExcludes : SymbolFlags + + SetAccessorExcludes = 74687, +>SetAccessorExcludes : SymbolFlags + + TypeParameterExcludes = 530912, +>TypeParameterExcludes : SymbolFlags + + TypeAliasExcludes = 793056, +>TypeAliasExcludes : SymbolFlags + + ImportExcludes = 8388608, +>ImportExcludes : SymbolFlags + + ModuleMember = 8914931, +>ModuleMember : SymbolFlags + + ExportHasLocal = 944, +>ExportHasLocal : SymbolFlags + + HasLocals = 255504, +>HasLocals : SymbolFlags + + HasExports = 1952, +>HasExports : SymbolFlags + + HasMembers = 6240, +>HasMembers : SymbolFlags + + IsContainer = 262128, +>IsContainer : SymbolFlags + + PropertyOrAccessor = 98308, +>PropertyOrAccessor : SymbolFlags + + Export = 7340032, +>Export : SymbolFlags + } + interface Symbol { +>Symbol : Symbol + + flags: SymbolFlags; +>flags : SymbolFlags +>SymbolFlags : SymbolFlags + + name: string; +>name : string + + id?: number; +>id : number + + mergeId?: number; +>mergeId : number + + declarations?: Declaration[]; +>declarations : Declaration[] +>Declaration : Declaration + + parent?: Symbol; +>parent : Symbol +>Symbol : Symbol + + members?: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + exports?: SymbolTable; +>exports : SymbolTable +>SymbolTable : SymbolTable + + exportSymbol?: Symbol; +>exportSymbol : Symbol +>Symbol : Symbol + + valueDeclaration?: Declaration; +>valueDeclaration : Declaration +>Declaration : Declaration + + constEnumOnlyModule?: boolean; +>constEnumOnlyModule : boolean + } + interface SymbolLinks { +>SymbolLinks : SymbolLinks + + target?: Symbol; +>target : Symbol +>Symbol : Symbol + + type?: Type; +>type : Type +>Type : Type + + declaredType?: Type; +>declaredType : Type +>Type : Type + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + referenced?: boolean; +>referenced : boolean + + exportAssignSymbol?: Symbol; +>exportAssignSymbol : Symbol +>Symbol : Symbol + + unionType?: UnionType; +>unionType : UnionType +>UnionType : UnionType + } + interface TransientSymbol extends Symbol, SymbolLinks { +>TransientSymbol : TransientSymbol +>Symbol : Symbol +>SymbolLinks : SymbolLinks + } + interface SymbolTable { +>SymbolTable : SymbolTable + + [index: string]: Symbol; +>index : string +>Symbol : Symbol + } + const enum NodeCheckFlags { +>NodeCheckFlags : NodeCheckFlags + + TypeChecked = 1, +>TypeChecked : NodeCheckFlags + + LexicalThis = 2, +>LexicalThis : NodeCheckFlags + + CaptureThis = 4, +>CaptureThis : NodeCheckFlags + + EmitExtends = 8, +>EmitExtends : NodeCheckFlags + + SuperInstance = 16, +>SuperInstance : NodeCheckFlags + + SuperStatic = 32, +>SuperStatic : NodeCheckFlags + + ContextChecked = 64, +>ContextChecked : NodeCheckFlags + + EnumValuesComputed = 128, +>EnumValuesComputed : NodeCheckFlags + } + interface NodeLinks { +>NodeLinks : NodeLinks + + resolvedType?: Type; +>resolvedType : Type +>Type : Type + + resolvedSignature?: Signature; +>resolvedSignature : Signature +>Signature : Signature + + resolvedSymbol?: Symbol; +>resolvedSymbol : Symbol +>Symbol : Symbol + + flags?: NodeCheckFlags; +>flags : NodeCheckFlags +>NodeCheckFlags : NodeCheckFlags + + enumMemberValue?: number; +>enumMemberValue : number + + isIllegalTypeReferenceInConstraint?: boolean; +>isIllegalTypeReferenceInConstraint : boolean + + isVisible?: boolean; +>isVisible : boolean + + localModuleName?: string; +>localModuleName : string + + assignmentChecks?: Map; +>assignmentChecks : Map +>Map : Map + + hasReportedStatementInAmbientContext?: boolean; +>hasReportedStatementInAmbientContext : boolean + + importOnRightSide?: Symbol; +>importOnRightSide : Symbol +>Symbol : Symbol + } + const enum TypeFlags { +>TypeFlags : TypeFlags + + Any = 1, +>Any : TypeFlags + + String = 2, +>String : TypeFlags + + Number = 4, +>Number : TypeFlags + + Boolean = 8, +>Boolean : TypeFlags + + Void = 16, +>Void : TypeFlags + + Undefined = 32, +>Undefined : TypeFlags + + Null = 64, +>Null : TypeFlags + + Enum = 128, +>Enum : TypeFlags + + StringLiteral = 256, +>StringLiteral : TypeFlags + + TypeParameter = 512, +>TypeParameter : TypeFlags + + Class = 1024, +>Class : TypeFlags + + Interface = 2048, +>Interface : TypeFlags + + Reference = 4096, +>Reference : TypeFlags + + Tuple = 8192, +>Tuple : TypeFlags + + Union = 16384, +>Union : TypeFlags + + Anonymous = 32768, +>Anonymous : TypeFlags + + FromSignature = 65536, +>FromSignature : TypeFlags + + ObjectLiteral = 131072, +>ObjectLiteral : TypeFlags + + ContainsUndefinedOrNull = 262144, +>ContainsUndefinedOrNull : TypeFlags + + ContainsObjectLiteral = 524288, +>ContainsObjectLiteral : TypeFlags + + Intrinsic = 127, +>Intrinsic : TypeFlags + + Primitive = 510, +>Primitive : TypeFlags + + StringLike = 258, +>StringLike : TypeFlags + + NumberLike = 132, +>NumberLike : TypeFlags + + ObjectType = 48128, +>ObjectType : TypeFlags + + RequiresWidening = 786432, +>RequiresWidening : TypeFlags + } + interface Type { +>Type : Type + + flags: TypeFlags; +>flags : TypeFlags +>TypeFlags : TypeFlags + + id: number; +>id : number + + symbol?: Symbol; +>symbol : Symbol +>Symbol : Symbol + } + interface IntrinsicType extends Type { +>IntrinsicType : IntrinsicType +>Type : Type + + intrinsicName: string; +>intrinsicName : string + } + interface StringLiteralType extends Type { +>StringLiteralType : StringLiteralType +>Type : Type + + text: string; +>text : string + } + interface ObjectType extends Type { +>ObjectType : ObjectType +>Type : Type + } + interface InterfaceType extends ObjectType { +>InterfaceType : InterfaceType +>ObjectType : ObjectType + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + baseTypes: ObjectType[]; +>baseTypes : ObjectType[] +>ObjectType : ObjectType + + declaredProperties: Symbol[]; +>declaredProperties : Symbol[] +>Symbol : Symbol + + declaredCallSignatures: Signature[]; +>declaredCallSignatures : Signature[] +>Signature : Signature + + declaredConstructSignatures: Signature[]; +>declaredConstructSignatures : Signature[] +>Signature : Signature + + declaredStringIndexType: Type; +>declaredStringIndexType : Type +>Type : Type + + declaredNumberIndexType: Type; +>declaredNumberIndexType : Type +>Type : Type + } + interface TypeReference extends ObjectType { +>TypeReference : TypeReference +>ObjectType : ObjectType + + target: GenericType; +>target : GenericType +>GenericType : GenericType + + typeArguments: Type[]; +>typeArguments : Type[] +>Type : Type + } + interface GenericType extends InterfaceType, TypeReference { +>GenericType : GenericType +>InterfaceType : InterfaceType +>TypeReference : TypeReference + + instantiations: Map; +>instantiations : Map +>Map : Map +>TypeReference : TypeReference + } + interface TupleType extends ObjectType { +>TupleType : TupleType +>ObjectType : ObjectType + + elementTypes: Type[]; +>elementTypes : Type[] +>Type : Type + + baseArrayType: TypeReference; +>baseArrayType : TypeReference +>TypeReference : TypeReference + } + interface UnionType extends Type { +>UnionType : UnionType +>Type : Type + + types: Type[]; +>types : Type[] +>Type : Type + + resolvedProperties: SymbolTable; +>resolvedProperties : SymbolTable +>SymbolTable : SymbolTable + } + interface ResolvedType extends ObjectType, UnionType { +>ResolvedType : ResolvedType +>ObjectType : ObjectType +>UnionType : UnionType + + members: SymbolTable; +>members : SymbolTable +>SymbolTable : SymbolTable + + properties: Symbol[]; +>properties : Symbol[] +>Symbol : Symbol + + callSignatures: Signature[]; +>callSignatures : Signature[] +>Signature : Signature + + constructSignatures: Signature[]; +>constructSignatures : Signature[] +>Signature : Signature + + stringIndexType: Type; +>stringIndexType : Type +>Type : Type + + numberIndexType: Type; +>numberIndexType : Type +>Type : Type + } + interface TypeParameter extends Type { +>TypeParameter : TypeParameter +>Type : Type + + constraint: Type; +>constraint : Type +>Type : Type + + target?: TypeParameter; +>target : TypeParameter +>TypeParameter : TypeParameter + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + } + const enum SignatureKind { +>SignatureKind : SignatureKind + + Call = 0, +>Call : SignatureKind + + Construct = 1, +>Construct : SignatureKind + } + interface Signature { +>Signature : Signature + + declaration: SignatureDeclaration; +>declaration : SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + parameters: Symbol[]; +>parameters : Symbol[] +>Symbol : Symbol + + resolvedReturnType: Type; +>resolvedReturnType : Type +>Type : Type + + minArgumentCount: number; +>minArgumentCount : number + + hasRestParameter: boolean; +>hasRestParameter : boolean + + hasStringLiterals: boolean; +>hasStringLiterals : boolean + + target?: Signature; +>target : Signature +>Signature : Signature + + mapper?: TypeMapper; +>mapper : TypeMapper +>TypeMapper : TypeMapper + + unionSignatures?: Signature[]; +>unionSignatures : Signature[] +>Signature : Signature + + erasedSignatureCache?: Signature; +>erasedSignatureCache : Signature +>Signature : Signature + + isolatedSignatureType?: ObjectType; +>isolatedSignatureType : ObjectType +>ObjectType : ObjectType + } + const enum IndexKind { +>IndexKind : IndexKind + + String = 0, +>String : IndexKind + + Number = 1, +>Number : IndexKind + } + interface TypeMapper { +>TypeMapper : TypeMapper + + (t: Type): Type; +>t : Type +>Type : Type +>Type : Type + } + interface TypeInferences { +>TypeInferences : TypeInferences + + primary: Type[]; +>primary : Type[] +>Type : Type + + secondary: Type[]; +>secondary : Type[] +>Type : Type + } + interface InferenceContext { +>InferenceContext : InferenceContext + + typeParameters: TypeParameter[]; +>typeParameters : TypeParameter[] +>TypeParameter : TypeParameter + + inferUnionTypes: boolean; +>inferUnionTypes : boolean + + inferences: TypeInferences[]; +>inferences : TypeInferences[] +>TypeInferences : TypeInferences + + inferredTypes: Type[]; +>inferredTypes : Type[] +>Type : Type + + failedTypeParameterIndex?: number; +>failedTypeParameterIndex : number + } + interface DiagnosticMessage { +>DiagnosticMessage : DiagnosticMessage + + key: string; +>key : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + isEarly?: boolean; +>isEarly : boolean + } + interface DiagnosticMessageChain { +>DiagnosticMessageChain : DiagnosticMessageChain + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + next?: DiagnosticMessageChain; +>next : DiagnosticMessageChain +>DiagnosticMessageChain : DiagnosticMessageChain + } + interface Diagnostic { +>Diagnostic : Diagnostic + + file: SourceFile; +>file : SourceFile +>SourceFile : SourceFile + + start: number; +>start : number + + length: number; +>length : number + + messageText: string; +>messageText : string + + category: DiagnosticCategory; +>category : DiagnosticCategory +>DiagnosticCategory : DiagnosticCategory + + code: number; +>code : number + + /** + * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit + */ + isEarly?: boolean; +>isEarly : boolean + } + enum DiagnosticCategory { +>DiagnosticCategory : DiagnosticCategory + + Warning = 0, +>Warning : DiagnosticCategory + + Error = 1, +>Error : DiagnosticCategory + + Message = 2, +>Message : DiagnosticCategory + } + interface CompilerOptions { +>CompilerOptions : CompilerOptions + + allowNonTsExtensions?: boolean; +>allowNonTsExtensions : boolean + + charset?: string; +>charset : string + + codepage?: number; +>codepage : number + + declaration?: boolean; +>declaration : boolean + + diagnostics?: boolean; +>diagnostics : boolean + + emitBOM?: boolean; +>emitBOM : boolean + + help?: boolean; +>help : boolean + + listFiles?: boolean; +>listFiles : boolean + + locale?: string; +>locale : string + + mapRoot?: string; +>mapRoot : string + + module?: ModuleKind; +>module : ModuleKind +>ModuleKind : ModuleKind + + noEmit?: boolean; +>noEmit : boolean + + noEmitOnError?: boolean; +>noEmitOnError : boolean + + noErrorTruncation?: boolean; +>noErrorTruncation : boolean + + noImplicitAny?: boolean; +>noImplicitAny : boolean + + noLib?: boolean; +>noLib : boolean + + noLibCheck?: boolean; +>noLibCheck : boolean + + noResolve?: boolean; +>noResolve : boolean + + out?: string; +>out : string + + outDir?: string; +>outDir : string + + preserveConstEnums?: boolean; +>preserveConstEnums : boolean + + project?: string; +>project : string + + removeComments?: boolean; +>removeComments : boolean + + sourceMap?: boolean; +>sourceMap : boolean + + sourceRoot?: string; +>sourceRoot : string + + suppressImplicitAnyIndexErrors?: boolean; +>suppressImplicitAnyIndexErrors : boolean + + target?: ScriptTarget; +>target : ScriptTarget +>ScriptTarget : ScriptTarget + + version?: boolean; +>version : boolean + + watch?: boolean; +>watch : boolean + + [option: string]: string | number | boolean; +>option : string + } + const enum ModuleKind { +>ModuleKind : ModuleKind + + None = 0, +>None : ModuleKind + + CommonJS = 1, +>CommonJS : ModuleKind + + AMD = 2, +>AMD : ModuleKind + } + interface LineAndCharacter { +>LineAndCharacter : LineAndCharacter + + line: number; +>line : number + + character: number; +>character : number + } + const enum ScriptTarget { +>ScriptTarget : ScriptTarget + + ES3 = 0, +>ES3 : ScriptTarget + + ES5 = 1, +>ES5 : ScriptTarget + + ES6 = 2, +>ES6 : ScriptTarget + + Latest = 2, +>Latest : ScriptTarget + } + interface ParsedCommandLine { +>ParsedCommandLine : ParsedCommandLine + + options: CompilerOptions; +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + filenames: string[]; +>filenames : string[] + + errors: Diagnostic[]; +>errors : Diagnostic[] +>Diagnostic : Diagnostic + } + interface CommandLineOption { +>CommandLineOption : CommandLineOption + + name: string; +>name : string + + type: string | Map; +>type : string | Map +>Map : Map + + isFilePath?: boolean; +>isFilePath : boolean + + shortName?: string; +>shortName : string + + description?: DiagnosticMessage; +>description : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + paramType?: DiagnosticMessage; +>paramType : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + + error?: DiagnosticMessage; +>error : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage + } + const enum CharacterCodes { +>CharacterCodes : CharacterCodes + + nullCharacter = 0, +>nullCharacter : CharacterCodes + + maxAsciiCharacter = 127, +>maxAsciiCharacter : CharacterCodes + + lineFeed = 10, +>lineFeed : CharacterCodes + + carriageReturn = 13, +>carriageReturn : CharacterCodes + + lineSeparator = 8232, +>lineSeparator : CharacterCodes + + paragraphSeparator = 8233, +>paragraphSeparator : CharacterCodes + + nextLine = 133, +>nextLine : CharacterCodes + + space = 32, +>space : CharacterCodes + + nonBreakingSpace = 160, +>nonBreakingSpace : CharacterCodes + + enQuad = 8192, +>enQuad : CharacterCodes + + emQuad = 8193, +>emQuad : CharacterCodes + + enSpace = 8194, +>enSpace : CharacterCodes + + emSpace = 8195, +>emSpace : CharacterCodes + + threePerEmSpace = 8196, +>threePerEmSpace : CharacterCodes + + fourPerEmSpace = 8197, +>fourPerEmSpace : CharacterCodes + + sixPerEmSpace = 8198, +>sixPerEmSpace : CharacterCodes + + figureSpace = 8199, +>figureSpace : CharacterCodes + + punctuationSpace = 8200, +>punctuationSpace : CharacterCodes + + thinSpace = 8201, +>thinSpace : CharacterCodes + + hairSpace = 8202, +>hairSpace : CharacterCodes + + zeroWidthSpace = 8203, +>zeroWidthSpace : CharacterCodes + + narrowNoBreakSpace = 8239, +>narrowNoBreakSpace : CharacterCodes + + ideographicSpace = 12288, +>ideographicSpace : CharacterCodes + + mathematicalSpace = 8287, +>mathematicalSpace : CharacterCodes + + ogham = 5760, +>ogham : CharacterCodes + + _ = 95, +>_ : CharacterCodes + + $ = 36, +>$ : CharacterCodes + + _0 = 48, +>_0 : CharacterCodes + + _1 = 49, +>_1 : CharacterCodes + + _2 = 50, +>_2 : CharacterCodes + + _3 = 51, +>_3 : CharacterCodes + + _4 = 52, +>_4 : CharacterCodes + + _5 = 53, +>_5 : CharacterCodes + + _6 = 54, +>_6 : CharacterCodes + + _7 = 55, +>_7 : CharacterCodes + + _8 = 56, +>_8 : CharacterCodes + + _9 = 57, +>_9 : CharacterCodes + + a = 97, +>a : CharacterCodes + + b = 98, +>b : CharacterCodes + + c = 99, +>c : CharacterCodes + + d = 100, +>d : CharacterCodes + + e = 101, +>e : CharacterCodes + + f = 102, +>f : CharacterCodes + + g = 103, +>g : CharacterCodes + + h = 104, +>h : CharacterCodes + + i = 105, +>i : CharacterCodes + + j = 106, +>j : CharacterCodes + + k = 107, +>k : CharacterCodes + + l = 108, +>l : CharacterCodes + + m = 109, +>m : CharacterCodes + + n = 110, +>n : CharacterCodes + + o = 111, +>o : CharacterCodes + + p = 112, +>p : CharacterCodes + + q = 113, +>q : CharacterCodes + + r = 114, +>r : CharacterCodes + + s = 115, +>s : CharacterCodes + + t = 116, +>t : CharacterCodes + + u = 117, +>u : CharacterCodes + + v = 118, +>v : CharacterCodes + + w = 119, +>w : CharacterCodes + + x = 120, +>x : CharacterCodes + + y = 121, +>y : CharacterCodes + + z = 122, +>z : CharacterCodes + + A = 65, +>A : CharacterCodes + + B = 66, +>B : CharacterCodes + + C = 67, +>C : CharacterCodes + + D = 68, +>D : CharacterCodes + + E = 69, +>E : CharacterCodes + + F = 70, +>F : CharacterCodes + + G = 71, +>G : CharacterCodes + + H = 72, +>H : CharacterCodes + + I = 73, +>I : CharacterCodes + + J = 74, +>J : CharacterCodes + + K = 75, +>K : CharacterCodes + + L = 76, +>L : CharacterCodes + + M = 77, +>M : CharacterCodes + + N = 78, +>N : CharacterCodes + + O = 79, +>O : CharacterCodes + + P = 80, +>P : CharacterCodes + + Q = 81, +>Q : CharacterCodes + + R = 82, +>R : CharacterCodes + + S = 83, +>S : CharacterCodes + + T = 84, +>T : CharacterCodes + + U = 85, +>U : CharacterCodes + + V = 86, +>V : CharacterCodes + + W = 87, +>W : CharacterCodes + + X = 88, +>X : CharacterCodes + + Y = 89, +>Y : CharacterCodes + + Z = 90, +>Z : CharacterCodes + + ampersand = 38, +>ampersand : CharacterCodes + + asterisk = 42, +>asterisk : CharacterCodes + + at = 64, +>at : CharacterCodes + + backslash = 92, +>backslash : CharacterCodes + + backtick = 96, +>backtick : CharacterCodes + + bar = 124, +>bar : CharacterCodes + + caret = 94, +>caret : CharacterCodes + + closeBrace = 125, +>closeBrace : CharacterCodes + + closeBracket = 93, +>closeBracket : CharacterCodes + + closeParen = 41, +>closeParen : CharacterCodes + + colon = 58, +>colon : CharacterCodes + + comma = 44, +>comma : CharacterCodes + + dot = 46, +>dot : CharacterCodes + + doubleQuote = 34, +>doubleQuote : CharacterCodes + + equals = 61, +>equals : CharacterCodes + + exclamation = 33, +>exclamation : CharacterCodes + + greaterThan = 62, +>greaterThan : CharacterCodes + + lessThan = 60, +>lessThan : CharacterCodes + + minus = 45, +>minus : CharacterCodes + + openBrace = 123, +>openBrace : CharacterCodes + + openBracket = 91, +>openBracket : CharacterCodes + + openParen = 40, +>openParen : CharacterCodes + + percent = 37, +>percent : CharacterCodes + + plus = 43, +>plus : CharacterCodes + + question = 63, +>question : CharacterCodes + + semicolon = 59, +>semicolon : CharacterCodes + + singleQuote = 39, +>singleQuote : CharacterCodes + + slash = 47, +>slash : CharacterCodes + + tilde = 126, +>tilde : CharacterCodes + + backspace = 8, +>backspace : CharacterCodes + + formFeed = 12, +>formFeed : CharacterCodes + + byteOrderMark = 65279, +>byteOrderMark : CharacterCodes + + tab = 9, +>tab : CharacterCodes + + verticalTab = 11, +>verticalTab : CharacterCodes + } + interface CancellationToken { +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + } + interface CompilerHost { +>CompilerHost : CompilerHost + + getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; +>getSourceFile : (filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void) => SourceFile +>filename : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>onError : (message: string) => void +>message : string +>SourceFile : SourceFile + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; +>writeFile : (filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void) => void +>filename : string +>data : string +>writeByteOrderMark : boolean +>onError : (message: string) => void +>message : string + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getCanonicalFileName(fileName: string): string; +>getCanonicalFileName : (fileName: string) => string +>fileName : string + + useCaseSensitiveFileNames(): boolean; +>useCaseSensitiveFileNames : () => boolean + + getNewLine(): string; +>getNewLine : () => string + } + interface TextSpan { +>TextSpan : TextSpan + + start: number; +>start : number + + length: number; +>length : number + } + interface TextChangeRange { +>TextChangeRange : TextChangeRange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newLength: number; +>newLength : number + } +} +declare module "typescript" { + interface ErrorCallback { +>ErrorCallback : ErrorCallback + + (message: DiagnosticMessage, length: number): void; +>message : DiagnosticMessage +>DiagnosticMessage : DiagnosticMessage +>length : number + } + interface Scanner { +>Scanner : Scanner + + getStartPos(): number; +>getStartPos : () => number + + getToken(): SyntaxKind; +>getToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + getTextPos(): number; +>getTextPos : () => number + + getTokenPos(): number; +>getTokenPos : () => number + + getTokenText(): string; +>getTokenText : () => string + + getTokenValue(): string; +>getTokenValue : () => string + + hasPrecedingLineBreak(): boolean; +>hasPrecedingLineBreak : () => boolean + + isIdentifier(): boolean; +>isIdentifier : () => boolean + + isReservedWord(): boolean; +>isReservedWord : () => boolean + + isUnterminated(): boolean; +>isUnterminated : () => boolean + + reScanGreaterToken(): SyntaxKind; +>reScanGreaterToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanSlashToken(): SyntaxKind; +>reScanSlashToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + reScanTemplateToken(): SyntaxKind; +>reScanTemplateToken : () => SyntaxKind +>SyntaxKind : SyntaxKind + + scan(): SyntaxKind; +>scan : () => SyntaxKind +>SyntaxKind : SyntaxKind + + setText(text: string): void; +>setText : (text: string) => void +>text : string + + setTextPos(textPos: number): void; +>setTextPos : (textPos: number) => void +>textPos : number + + lookAhead(callback: () => T): T; +>lookAhead : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + + tryScan(callback: () => T): T; +>tryScan : (callback: () => T) => T +>T : T +>callback : () => T +>T : T +>T : T + } + function tokenToString(t: SyntaxKind): string; +>tokenToString : (t: SyntaxKind) => string +>t : SyntaxKind +>SyntaxKind : SyntaxKind + + function computeLineStarts(text: string): number[]; +>computeLineStarts : (text: string) => number[] +>text : string + + function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; +>getPositionFromLineAndCharacter : (lineStarts: number[], line: number, character: number) => number +>lineStarts : number[] +>line : number +>character : number + + function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { +>getLineAndCharacterOfPosition : (lineStarts: number[], position: number) => { line: number; character: number; } +>lineStarts : number[] +>position : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function positionToLineAndCharacter(text: string, pos: number): { +>positionToLineAndCharacter : (text: string, pos: number) => { line: number; character: number; } +>text : string +>pos : number + + line: number; +>line : number + + character: number; +>character : number + + }; + function isWhiteSpace(ch: number): boolean; +>isWhiteSpace : (ch: number) => boolean +>ch : number + + function isLineBreak(ch: number): boolean; +>isLineBreak : (ch: number) => boolean +>ch : number + + function isOctalDigit(ch: number): boolean; +>isOctalDigit : (ch: number) => boolean +>ch : number + + function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number; +>skipTrivia : (text: string, pos: number, stopAfterLineBreak?: boolean) => number +>text : string +>pos : number +>stopAfterLineBreak : boolean + + function getLeadingCommentRanges(text: string, pos: number): CommentRange[]; +>getLeadingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function getTrailingCommentRanges(text: string, pos: number): CommentRange[]; +>getTrailingCommentRanges : (text: string, pos: number) => CommentRange[] +>text : string +>pos : number +>CommentRange : CommentRange + + function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierStart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean; +>isIdentifierPart : (ch: number, languageVersion: ScriptTarget) => boolean +>ch : number +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget + + function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner; +>createScanner : (languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback) => Scanner +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>skipTrivia : boolean +>text : string +>onError : ErrorCallback +>ErrorCallback : ErrorCallback +>Scanner : Scanner +} +declare module "typescript" { + function getNodeConstructor(kind: SyntaxKind): new () => Node; +>getNodeConstructor : (kind: SyntaxKind) => new () => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function createNode(kind: SyntaxKind): Node; +>createNode : (kind: SyntaxKind) => Node +>kind : SyntaxKind +>SyntaxKind : SyntaxKind +>Node : Node + + function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; +>forEachChild : (node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T) => T +>T : T +>node : Node +>Node : Node +>cbNode : (node: Node) => T +>node : Node +>Node : Node +>T : T +>cbNodeArray : (nodes: Node[]) => T +>nodes : Node[] +>Node : Node +>T : T +>T : T + + function modifierToFlag(token: SyntaxKind): NodeFlags; +>modifierToFlag : (token: SyntaxKind) => NodeFlags +>token : SyntaxKind +>SyntaxKind : SyntaxKind +>NodeFlags : NodeFlags + + function isEvalOrArgumentsIdentifier(node: Node): boolean; +>isEvalOrArgumentsIdentifier : (node: Node) => boolean +>node : Node +>Node : Node + + function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; +>createSourceFile : (filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean) => SourceFile +>filename : string +>sourceText : string +>languageVersion : ScriptTarget +>ScriptTarget : ScriptTarget +>setParentNodes : boolean +>SourceFile : SourceFile + + function isLeftHandSideExpression(expr: Expression): boolean; +>isLeftHandSideExpression : (expr: Expression) => boolean +>expr : Expression +>Expression : Expression + + function isAssignmentOperator(token: SyntaxKind): boolean; +>isAssignmentOperator : (token: SyntaxKind) => boolean +>token : SyntaxKind +>SyntaxKind : SyntaxKind +} +declare module "typescript" { + function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker; +>createTypeChecker : (host: TypeCheckerHost, produceDiagnostics: boolean) => TypeChecker +>host : TypeCheckerHost +>TypeCheckerHost : TypeCheckerHost +>produceDiagnostics : boolean +>TypeChecker : TypeChecker +} +declare module "typescript" { + function createCompilerHost(options: CompilerOptions): CompilerHost; +>createCompilerHost : (options: CompilerOptions) => CompilerHost +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>CompilerHost : CompilerHost + + function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; +>createProgram : (rootNames: string[], options: CompilerOptions, host: CompilerHost) => Program +>rootNames : string[] +>options : CompilerOptions +>CompilerOptions : CompilerOptions +>host : CompilerHost +>CompilerHost : CompilerHost +>Program : Program +} +declare module "typescript" { + var servicesVersion: string; +>servicesVersion : string + + interface Node { +>Node : Node + + getSourceFile(): SourceFile; +>getSourceFile : () => SourceFile +>SourceFile : SourceFile + + getChildCount(sourceFile?: SourceFile): number; +>getChildCount : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getChildAt(index: number, sourceFile?: SourceFile): Node; +>getChildAt : (index: number, sourceFile?: SourceFile) => Node +>index : number +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getChildren(sourceFile?: SourceFile): Node[]; +>getChildren : (sourceFile?: SourceFile) => Node[] +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getStart(sourceFile?: SourceFile): number; +>getStart : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullStart(): number; +>getFullStart : () => number + + getEnd(): number; +>getEnd : () => number + + getWidth(sourceFile?: SourceFile): number; +>getWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullWidth(): number; +>getFullWidth : () => number + + getLeadingTriviaWidth(sourceFile?: SourceFile): number; +>getLeadingTriviaWidth : (sourceFile?: SourceFile) => number +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFullText(sourceFile?: SourceFile): string; +>getFullText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getText(sourceFile?: SourceFile): string; +>getText : (sourceFile?: SourceFile) => string +>sourceFile : SourceFile +>SourceFile : SourceFile + + getFirstToken(sourceFile?: SourceFile): Node; +>getFirstToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + + getLastToken(sourceFile?: SourceFile): Node; +>getLastToken : (sourceFile?: SourceFile) => Node +>sourceFile : SourceFile +>SourceFile : SourceFile +>Node : Node + } + interface Symbol { +>Symbol : Symbol + + getFlags(): SymbolFlags; +>getFlags : () => SymbolFlags +>SymbolFlags : SymbolFlags + + getName(): string; +>getName : () => string + + getDeclarations(): Declaration[]; +>getDeclarations : () => Declaration[] +>Declaration : Declaration + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface Type { +>Type : Type + + getFlags(): TypeFlags; +>getFlags : () => TypeFlags +>TypeFlags : TypeFlags + + getSymbol(): Symbol; +>getSymbol : () => Symbol +>Symbol : Symbol + + getProperties(): Symbol[]; +>getProperties : () => Symbol[] +>Symbol : Symbol + + getProperty(propertyName: string): Symbol; +>getProperty : (propertyName: string) => Symbol +>propertyName : string +>Symbol : Symbol + + getApparentProperties(): Symbol[]; +>getApparentProperties : () => Symbol[] +>Symbol : Symbol + + getCallSignatures(): Signature[]; +>getCallSignatures : () => Signature[] +>Signature : Signature + + getConstructSignatures(): Signature[]; +>getConstructSignatures : () => Signature[] +>Signature : Signature + + getStringIndexType(): Type; +>getStringIndexType : () => Type +>Type : Type + + getNumberIndexType(): Type; +>getNumberIndexType : () => Type +>Type : Type + } + interface Signature { +>Signature : Signature + + getDeclaration(): SignatureDeclaration; +>getDeclaration : () => SignatureDeclaration +>SignatureDeclaration : SignatureDeclaration + + getTypeParameters(): Type[]; +>getTypeParameters : () => Type[] +>Type : Type + + getParameters(): Symbol[]; +>getParameters : () => Symbol[] +>Symbol : Symbol + + getReturnType(): Type; +>getReturnType : () => Type +>Type : Type + + getDocumentationComment(): SymbolDisplayPart[]; +>getDocumentationComment : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface SourceFile { +>SourceFile : SourceFile + + version: string; +>version : string + + scriptSnapshot: IScriptSnapshot; +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot + + nameTable: Map; +>nameTable : Map +>Map : Map + + getNamedDeclarations(): Declaration[]; +>getNamedDeclarations : () => Declaration[] +>Declaration : Declaration + } + /** + * Represents an immutable snapshot of a script at a specified time.Once acquired, the + * snapshot is observably immutable. i.e. the same calls with the same parameters will return + * the same values. + */ + interface IScriptSnapshot { +>IScriptSnapshot : IScriptSnapshot + + /** Gets a portion of the script snapshot specified by [start, end). */ + getText(start: number, end: number): string; +>getText : (start: number, end: number) => string +>start : number +>end : number + + /** Gets the length of this script snapshot. */ + getLength(): number; +>getLength : () => number + + /** + * Gets the TextChangeRange that describe how the text changed between this text and + * an older version. This information is used by the incremental parser to determine + * what sections of the script need to be re-parsed. 'undefined' can be returned if the + * change range cannot be determined. However, in that case, incremental parsing will + * not happen and the entire document will be re - parsed. + */ + getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange; +>getChangeRange : (oldSnapshot: IScriptSnapshot) => TextChangeRange +>oldSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>TextChangeRange : TextChangeRange + } + module ScriptSnapshot { +>ScriptSnapshot : typeof ScriptSnapshot + + function fromString(text: string): IScriptSnapshot; +>fromString : (text: string) => IScriptSnapshot +>text : string +>IScriptSnapshot : IScriptSnapshot + } + interface PreProcessedFileInfo { +>PreProcessedFileInfo : PreProcessedFileInfo + + referencedFiles: FileReference[]; +>referencedFiles : FileReference[] +>FileReference : FileReference + + importedFiles: FileReference[]; +>importedFiles : FileReference[] +>FileReference : FileReference + + isLibFile: boolean; +>isLibFile : boolean + } + interface LanguageServiceHost { +>LanguageServiceHost : LanguageServiceHost + + getCompilationSettings(): CompilerOptions; +>getCompilationSettings : () => CompilerOptions +>CompilerOptions : CompilerOptions + + getNewLine?(): string; +>getNewLine : () => string + + getScriptFileNames(): string[]; +>getScriptFileNames : () => string[] + + getScriptVersion(fileName: string): string; +>getScriptVersion : (fileName: string) => string +>fileName : string + + getScriptSnapshot(fileName: string): IScriptSnapshot; +>getScriptSnapshot : (fileName: string) => IScriptSnapshot +>fileName : string +>IScriptSnapshot : IScriptSnapshot + + getLocalizedDiagnosticMessages?(): any; +>getLocalizedDiagnosticMessages : () => any + + getCancellationToken?(): CancellationToken; +>getCancellationToken : () => CancellationToken +>CancellationToken : CancellationToken + + getCurrentDirectory(): string; +>getCurrentDirectory : () => string + + getDefaultLibFilename(options: CompilerOptions): string; +>getDefaultLibFilename : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions + + log?(s: string): void; +>log : (s: string) => void +>s : string + + trace?(s: string): void; +>trace : (s: string) => void +>s : string + + error?(s: string): void; +>error : (s: string) => void +>s : string + } + interface LanguageService { +>LanguageService : LanguageService + + cleanupSemanticCache(): void; +>cleanupSemanticCache : () => void + + getSyntacticDiagnostics(fileName: string): Diagnostic[]; +>getSyntacticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getSemanticDiagnostics(fileName: string): Diagnostic[]; +>getSemanticDiagnostics : (fileName: string) => Diagnostic[] +>fileName : string +>Diagnostic : Diagnostic + + getCompilerOptionsDiagnostics(): Diagnostic[]; +>getCompilerOptionsDiagnostics : () => Diagnostic[] +>Diagnostic : Diagnostic + + getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSyntacticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; +>getSemanticClassifications : (fileName: string, span: TextSpan) => ClassifiedSpan[] +>fileName : string +>span : TextSpan +>TextSpan : TextSpan +>ClassifiedSpan : ClassifiedSpan + + getCompletionsAtPosition(fileName: string, position: number): CompletionInfo; +>getCompletionsAtPosition : (fileName: string, position: number) => CompletionInfo +>fileName : string +>position : number +>CompletionInfo : CompletionInfo + + getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails; +>getCompletionEntryDetails : (fileName: string, position: number, entryName: string) => CompletionEntryDetails +>fileName : string +>position : number +>entryName : string +>CompletionEntryDetails : CompletionEntryDetails + + getQuickInfoAtPosition(fileName: string, position: number): QuickInfo; +>getQuickInfoAtPosition : (fileName: string, position: number) => QuickInfo +>fileName : string +>position : number +>QuickInfo : QuickInfo + + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan; +>getNameOrDottedNameSpan : (fileName: string, startPos: number, endPos: number) => TextSpan +>fileName : string +>startPos : number +>endPos : number +>TextSpan : TextSpan + + getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan; +>getBreakpointStatementAtPosition : (fileName: string, position: number) => TextSpan +>fileName : string +>position : number +>TextSpan : TextSpan + + getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems; +>getSignatureHelpItems : (fileName: string, position: number) => SignatureHelpItems +>fileName : string +>position : number +>SignatureHelpItems : SignatureHelpItems + + getRenameInfo(fileName: string, position: number): RenameInfo; +>getRenameInfo : (fileName: string, position: number) => RenameInfo +>fileName : string +>position : number +>RenameInfo : RenameInfo + + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[]; +>findRenameLocations : (fileName: string, position: number, findInStrings: boolean, findInComments: boolean) => RenameLocation[] +>fileName : string +>position : number +>findInStrings : boolean +>findInComments : boolean +>RenameLocation : RenameLocation + + getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[]; +>getDefinitionAtPosition : (fileName: string, position: number) => DefinitionInfo[] +>fileName : string +>position : number +>DefinitionInfo : DefinitionInfo + + getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getReferencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[]; +>getOccurrencesAtPosition : (fileName: string, position: number) => ReferenceEntry[] +>fileName : string +>position : number +>ReferenceEntry : ReferenceEntry + + getNavigateToItems(searchValue: string): NavigateToItem[]; +>getNavigateToItems : (searchValue: string) => NavigateToItem[] +>searchValue : string +>NavigateToItem : NavigateToItem + + getNavigationBarItems(fileName: string): NavigationBarItem[]; +>getNavigationBarItems : (fileName: string) => NavigationBarItem[] +>fileName : string +>NavigationBarItem : NavigationBarItem + + getOutliningSpans(fileName: string): OutliningSpan[]; +>getOutliningSpans : (fileName: string) => OutliningSpan[] +>fileName : string +>OutliningSpan : OutliningSpan + + getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; +>getTodoComments : (fileName: string, descriptors: TodoCommentDescriptor[]) => TodoComment[] +>fileName : string +>descriptors : TodoCommentDescriptor[] +>TodoCommentDescriptor : TodoCommentDescriptor +>TodoComment : TodoComment + + getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; +>getBraceMatchingAtPosition : (fileName: string, position: number) => TextSpan[] +>fileName : string +>position : number +>TextSpan : TextSpan + + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; +>getIndentationAtPosition : (fileName: string, position: number, options: EditorOptions) => number +>fileName : string +>position : number +>options : EditorOptions +>EditorOptions : EditorOptions + + getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForRange : (fileName: string, start: number, end: number, options: FormatCodeOptions) => TextChange[] +>fileName : string +>start : number +>end : number +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsForDocument : (fileName: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; +>getFormattingEditsAfterKeystroke : (fileName: string, position: number, key: string, options: FormatCodeOptions) => TextChange[] +>fileName : string +>position : number +>key : string +>options : FormatCodeOptions +>FormatCodeOptions : FormatCodeOptions +>TextChange : TextChange + + getEmitOutput(fileName: string): EmitOutput; +>getEmitOutput : (fileName: string) => EmitOutput +>fileName : string +>EmitOutput : EmitOutput + + getProgram(): Program; +>getProgram : () => Program +>Program : Program + + getSourceFile(filename: string): SourceFile; +>getSourceFile : (filename: string) => SourceFile +>filename : string +>SourceFile : SourceFile + + dispose(): void; +>dispose : () => void + } + interface ClassifiedSpan { +>ClassifiedSpan : ClassifiedSpan + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + classificationType: string; +>classificationType : string + } + interface NavigationBarItem { +>NavigationBarItem : NavigationBarItem + + text: string; +>text : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + spans: TextSpan[]; +>spans : TextSpan[] +>TextSpan : TextSpan + + childItems: NavigationBarItem[]; +>childItems : NavigationBarItem[] +>NavigationBarItem : NavigationBarItem + + indent: number; +>indent : number + + bolded: boolean; +>bolded : boolean + + grayed: boolean; +>grayed : boolean + } + interface TodoCommentDescriptor { +>TodoCommentDescriptor : TodoCommentDescriptor + + text: string; +>text : string + + priority: number; +>priority : number + } + interface TodoComment { +>TodoComment : TodoComment + + descriptor: TodoCommentDescriptor; +>descriptor : TodoCommentDescriptor +>TodoCommentDescriptor : TodoCommentDescriptor + + message: string; +>message : string + + position: number; +>position : number + } + class TextChange { +>TextChange : TextChange + + span: TextSpan; +>span : TextSpan +>TextSpan : TextSpan + + newText: string; +>newText : string + } + interface RenameLocation { +>RenameLocation : RenameLocation + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + } + interface ReferenceEntry { +>ReferenceEntry : ReferenceEntry + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + fileName: string; +>fileName : string + + isWriteAccess: boolean; +>isWriteAccess : boolean + } + interface NavigateToItem { +>NavigateToItem : NavigateToItem + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + matchKind: string; +>matchKind : string + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + containerName: string; +>containerName : string + + containerKind: string; +>containerKind : string + } + interface EditorOptions { +>EditorOptions : EditorOptions + + IndentSize: number; +>IndentSize : number + + TabSize: number; +>TabSize : number + + NewLineCharacter: string; +>NewLineCharacter : string + + ConvertTabsToSpaces: boolean; +>ConvertTabsToSpaces : boolean + } + interface FormatCodeOptions extends EditorOptions { +>FormatCodeOptions : FormatCodeOptions +>EditorOptions : EditorOptions + + InsertSpaceAfterCommaDelimiter: boolean; +>InsertSpaceAfterCommaDelimiter : boolean + + InsertSpaceAfterSemicolonInForStatements: boolean; +>InsertSpaceAfterSemicolonInForStatements : boolean + + InsertSpaceBeforeAndAfterBinaryOperators: boolean; +>InsertSpaceBeforeAndAfterBinaryOperators : boolean + + InsertSpaceAfterKeywordsInControlFlowStatements: boolean; +>InsertSpaceAfterKeywordsInControlFlowStatements : boolean + + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; +>InsertSpaceAfterFunctionKeywordForAnonymousFunctions : boolean + + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; +>InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis : boolean + + PlaceOpenBraceOnNewLineForFunctions: boolean; +>PlaceOpenBraceOnNewLineForFunctions : boolean + + PlaceOpenBraceOnNewLineForControlBlocks: boolean; +>PlaceOpenBraceOnNewLineForControlBlocks : boolean + } + interface DefinitionInfo { +>DefinitionInfo : DefinitionInfo + + fileName: string; +>fileName : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + kind: string; +>kind : string + + name: string; +>name : string + + containerKind: string; +>containerKind : string + + containerName: string; +>containerName : string + } + enum SymbolDisplayPartKind { +>SymbolDisplayPartKind : SymbolDisplayPartKind + + aliasName = 0, +>aliasName : SymbolDisplayPartKind + + className = 1, +>className : SymbolDisplayPartKind + + enumName = 2, +>enumName : SymbolDisplayPartKind + + fieldName = 3, +>fieldName : SymbolDisplayPartKind + + interfaceName = 4, +>interfaceName : SymbolDisplayPartKind + + keyword = 5, +>keyword : SymbolDisplayPartKind + + lineBreak = 6, +>lineBreak : SymbolDisplayPartKind + + numericLiteral = 7, +>numericLiteral : SymbolDisplayPartKind + + stringLiteral = 8, +>stringLiteral : SymbolDisplayPartKind + + localName = 9, +>localName : SymbolDisplayPartKind + + methodName = 10, +>methodName : SymbolDisplayPartKind + + moduleName = 11, +>moduleName : SymbolDisplayPartKind + + operator = 12, +>operator : SymbolDisplayPartKind + + parameterName = 13, +>parameterName : SymbolDisplayPartKind + + propertyName = 14, +>propertyName : SymbolDisplayPartKind + + punctuation = 15, +>punctuation : SymbolDisplayPartKind + + space = 16, +>space : SymbolDisplayPartKind + + text = 17, +>text : SymbolDisplayPartKind + + typeParameterName = 18, +>typeParameterName : SymbolDisplayPartKind + + enumMemberName = 19, +>enumMemberName : SymbolDisplayPartKind + + functionName = 20, +>functionName : SymbolDisplayPartKind + + regularExpressionLiteral = 21, +>regularExpressionLiteral : SymbolDisplayPartKind + } + interface SymbolDisplayPart { +>SymbolDisplayPart : SymbolDisplayPart + + text: string; +>text : string + + kind: string; +>kind : string + } + interface QuickInfo { +>QuickInfo : QuickInfo + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface RenameInfo { +>RenameInfo : RenameInfo + + canRename: boolean; +>canRename : boolean + + localizedErrorMessage: string; +>localizedErrorMessage : string + + displayName: string; +>displayName : string + + fullDisplayName: string; +>fullDisplayName : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + triggerSpan: TextSpan; +>triggerSpan : TextSpan +>TextSpan : TextSpan + } + interface SignatureHelpParameter { +>SignatureHelpParameter : SignatureHelpParameter + + name: string; +>name : string + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + isOptional: boolean; +>isOptional : boolean + } + /** + * Represents a single signature to show in signature help. + * The id is used for subsequent calls into the language service to ask questions about the + * signature help item in the context of any documents that have been updated. i.e. after + * an edit has happened, while signature help is still active, the host can ask important + * questions like 'what parameter is the user currently contained within?'. + */ + interface SignatureHelpItem { +>SignatureHelpItem : SignatureHelpItem + + isVariadic: boolean; +>isVariadic : boolean + + prefixDisplayParts: SymbolDisplayPart[]; +>prefixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + suffixDisplayParts: SymbolDisplayPart[]; +>suffixDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + separatorDisplayParts: SymbolDisplayPart[]; +>separatorDisplayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + parameters: SignatureHelpParameter[]; +>parameters : SignatureHelpParameter[] +>SignatureHelpParameter : SignatureHelpParameter + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + /** + * Represents a set of signature help items, and the preferred item that should be selected. + */ + interface SignatureHelpItems { +>SignatureHelpItems : SignatureHelpItems + + items: SignatureHelpItem[]; +>items : SignatureHelpItem[] +>SignatureHelpItem : SignatureHelpItem + + applicableSpan: TextSpan; +>applicableSpan : TextSpan +>TextSpan : TextSpan + + selectedItemIndex: number; +>selectedItemIndex : number + + argumentIndex: number; +>argumentIndex : number + + argumentCount: number; +>argumentCount : number + } + interface CompletionInfo { +>CompletionInfo : CompletionInfo + + isMemberCompletion: boolean; +>isMemberCompletion : boolean + + entries: CompletionEntry[]; +>entries : CompletionEntry[] +>CompletionEntry : CompletionEntry + } + interface CompletionEntry { +>CompletionEntry : CompletionEntry + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + } + interface CompletionEntryDetails { +>CompletionEntryDetails : CompletionEntryDetails + + name: string; +>name : string + + kind: string; +>kind : string + + kindModifiers: string; +>kindModifiers : string + + displayParts: SymbolDisplayPart[]; +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + documentation: SymbolDisplayPart[]; +>documentation : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + interface OutliningSpan { +>OutliningSpan : OutliningSpan + + /** The span of the document to actually collapse. */ + textSpan: TextSpan; +>textSpan : TextSpan +>TextSpan : TextSpan + + /** The span of the document to display when the user hovers over the collapsed span. */ + hintSpan: TextSpan; +>hintSpan : TextSpan +>TextSpan : TextSpan + + /** The text to display in the editor for the collapsed region. */ + bannerText: string; +>bannerText : string + + /** + * Whether or not this region should be automatically collapsed when + * the 'Collapse to Definitions' command is invoked. + */ + autoCollapse: boolean; +>autoCollapse : boolean + } + interface EmitOutput { +>EmitOutput : EmitOutput + + outputFiles: OutputFile[]; +>outputFiles : OutputFile[] +>OutputFile : OutputFile + + emitOutputStatus: EmitReturnStatus; +>emitOutputStatus : EmitReturnStatus +>EmitReturnStatus : EmitReturnStatus + } + const enum OutputFileType { +>OutputFileType : OutputFileType + + JavaScript = 0, +>JavaScript : OutputFileType + + SourceMap = 1, +>SourceMap : OutputFileType + + Declaration = 2, +>Declaration : OutputFileType + } + interface OutputFile { +>OutputFile : OutputFile + + name: string; +>name : string + + writeByteOrderMark: boolean; +>writeByteOrderMark : boolean + + text: string; +>text : string + } + const enum EndOfLineState { +>EndOfLineState : EndOfLineState + + Start = 0, +>Start : EndOfLineState + + InMultiLineCommentTrivia = 1, +>InMultiLineCommentTrivia : EndOfLineState + + InSingleQuoteStringLiteral = 2, +>InSingleQuoteStringLiteral : EndOfLineState + + InDoubleQuoteStringLiteral = 3, +>InDoubleQuoteStringLiteral : EndOfLineState + } + enum TokenClass { +>TokenClass : TokenClass + + Punctuation = 0, +>Punctuation : TokenClass + + Keyword = 1, +>Keyword : TokenClass + + Operator = 2, +>Operator : TokenClass + + Comment = 3, +>Comment : TokenClass + + Whitespace = 4, +>Whitespace : TokenClass + + Identifier = 5, +>Identifier : TokenClass + + NumberLiteral = 6, +>NumberLiteral : TokenClass + + StringLiteral = 7, +>StringLiteral : TokenClass + + RegExpLiteral = 8, +>RegExpLiteral : TokenClass + } + interface ClassificationResult { +>ClassificationResult : ClassificationResult + + finalLexState: EndOfLineState; +>finalLexState : EndOfLineState +>EndOfLineState : EndOfLineState + + entries: ClassificationInfo[]; +>entries : ClassificationInfo[] +>ClassificationInfo : ClassificationInfo + } + interface ClassificationInfo { +>ClassificationInfo : ClassificationInfo + + length: number; +>length : number + + classification: TokenClass; +>classification : TokenClass +>TokenClass : TokenClass + } + interface Classifier { +>Classifier : Classifier + + getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; +>getClassificationsForLine : (text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean) => ClassificationResult +>text : string +>lexState : EndOfLineState +>EndOfLineState : EndOfLineState +>classifyKeywordsInGenerics : boolean +>ClassificationResult : ClassificationResult + } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ + interface DocumentRegistry { +>DocumentRegistry : DocumentRegistry + + /** + * Request a stored SourceFile with a given filename and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; +>acquireDocument : (filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string) => SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>SourceFile : SourceFile + + /** + * Request an updated version of an already existing SourceFile with a given filename + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param filename The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateDocument : (sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param filename The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(filename: string, compilationSettings: CompilerOptions): void; +>releaseDocument : (filename: string, compilationSettings: CompilerOptions) => void +>filename : string +>compilationSettings : CompilerOptions +>CompilerOptions : CompilerOptions + } + class ScriptElementKind { +>ScriptElementKind : ScriptElementKind + + static unknown: string; +>unknown : string + + static keyword: string; +>keyword : string + + static scriptElement: string; +>scriptElement : string + + static moduleElement: string; +>moduleElement : string + + static classElement: string; +>classElement : string + + static interfaceElement: string; +>interfaceElement : string + + static typeElement: string; +>typeElement : string + + static enumElement: string; +>enumElement : string + + static variableElement: string; +>variableElement : string + + static localVariableElement: string; +>localVariableElement : string + + static functionElement: string; +>functionElement : string + + static localFunctionElement: string; +>localFunctionElement : string + + static memberFunctionElement: string; +>memberFunctionElement : string + + static memberGetAccessorElement: string; +>memberGetAccessorElement : string + + static memberSetAccessorElement: string; +>memberSetAccessorElement : string + + static memberVariableElement: string; +>memberVariableElement : string + + static constructorImplementationElement: string; +>constructorImplementationElement : string + + static callSignatureElement: string; +>callSignatureElement : string + + static indexSignatureElement: string; +>indexSignatureElement : string + + static constructSignatureElement: string; +>constructSignatureElement : string + + static parameterElement: string; +>parameterElement : string + + static typeParameterElement: string; +>typeParameterElement : string + + static primitiveType: string; +>primitiveType : string + + static label: string; +>label : string + + static alias: string; +>alias : string + + static constElement: string; +>constElement : string + + static letElement: string; +>letElement : string + } + class ScriptElementKindModifier { +>ScriptElementKindModifier : ScriptElementKindModifier + + static none: string; +>none : string + + static publicMemberModifier: string; +>publicMemberModifier : string + + static privateMemberModifier: string; +>privateMemberModifier : string + + static protectedMemberModifier: string; +>protectedMemberModifier : string + + static exportedModifier: string; +>exportedModifier : string + + static ambientModifier: string; +>ambientModifier : string + + static staticModifier: string; +>staticModifier : string + } + class ClassificationTypeNames { +>ClassificationTypeNames : ClassificationTypeNames + + static comment: string; +>comment : string + + static identifier: string; +>identifier : string + + static keyword: string; +>keyword : string + + static numericLiteral: string; +>numericLiteral : string + + static operator: string; +>operator : string + + static stringLiteral: string; +>stringLiteral : string + + static whiteSpace: string; +>whiteSpace : string + + static text: string; +>text : string + + static punctuation: string; +>punctuation : string + + static className: string; +>className : string + + static enumName: string; +>enumName : string + + static interfaceName: string; +>interfaceName : string + + static moduleName: string; +>moduleName : string + + static typeParameterName: string; +>typeParameterName : string + + static typeAlias: string; +>typeAlias : string + } + interface DisplayPartsSymbolWriter extends SymbolWriter { +>DisplayPartsSymbolWriter : DisplayPartsSymbolWriter +>SymbolWriter : SymbolWriter + + displayParts(): SymbolDisplayPart[]; +>displayParts : () => SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + } + function displayPartsToString(displayParts: SymbolDisplayPart[]): string; +>displayPartsToString : (displayParts: SymbolDisplayPart[]) => string +>displayParts : SymbolDisplayPart[] +>SymbolDisplayPart : SymbolDisplayPart + + function getDefaultCompilerOptions(): CompilerOptions; +>getDefaultCompilerOptions : () => CompilerOptions +>CompilerOptions : CompilerOptions + + class OperationCanceledException { +>OperationCanceledException : OperationCanceledException + } + class CancellationTokenObject { +>CancellationTokenObject : CancellationTokenObject + + private cancellationToken; +>cancellationToken : any + + static None: CancellationTokenObject; +>None : CancellationTokenObject +>CancellationTokenObject : CancellationTokenObject + + constructor(cancellationToken: CancellationToken); +>cancellationToken : CancellationToken +>CancellationToken : CancellationToken + + isCancellationRequested(): boolean; +>isCancellationRequested : () => boolean + + throwIfCancellationRequested(): void; +>throwIfCancellationRequested : () => void + } + function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; +>createLanguageServiceSourceFile : (filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean) => SourceFile +>filename : string +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>scriptTarget : ScriptTarget +>ScriptTarget : ScriptTarget +>version : string +>setNodeParents : boolean +>SourceFile : SourceFile + + var disableIncrementalParsing: boolean; +>disableIncrementalParsing : boolean + + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile +>sourceFile : SourceFile +>SourceFile : SourceFile +>scriptSnapshot : IScriptSnapshot +>IScriptSnapshot : IScriptSnapshot +>version : string +>textChangeRange : TextChangeRange +>TextChangeRange : TextChangeRange +>SourceFile : SourceFile + + function createDocumentRegistry(): DocumentRegistry; +>createDocumentRegistry : () => DocumentRegistry +>DocumentRegistry : DocumentRegistry + + function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; +>preProcessFile : (sourceText: string, readImportFiles?: boolean) => PreProcessedFileInfo +>sourceText : string +>readImportFiles : boolean +>PreProcessedFileInfo : PreProcessedFileInfo + + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; +>createLanguageService : (host: LanguageServiceHost, documentRegistry?: DocumentRegistry) => LanguageService +>host : LanguageServiceHost +>LanguageServiceHost : LanguageServiceHost +>documentRegistry : DocumentRegistry +>DocumentRegistry : DocumentRegistry +>LanguageService : LanguageService + + function createClassifier(): Classifier; +>createClassifier : () => Classifier +>Classifier : Classifier + + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; +>getDefaultLibFilePath : (options: CompilerOptions) => string +>options : CompilerOptions +>CompilerOptions : CompilerOptions +} + diff --git a/tests/cases/compiler/APISample_compile.ts b/tests/cases/compiler/APISample_compile.ts new file mode 100644 index 00000000000..d2ad7853a19 --- /dev/null +++ b/tests/cases/compiler/APISample_compile.ts @@ -0,0 +1,37 @@ +// @module: commonjs +// @includebuiltfile: typescript.d.ts + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-minimal-compiler + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; + +import ts = require("typescript"); + +export function compile(filenames: string[], options: ts.CompilerOptions): void { + var host = ts.createCompilerHost(options); + var program = ts.createProgram(filenames, options, host); + var checker = ts.createTypeChecker(program, /*produceDiagnostics*/ true); + var result = program.emitFiles(); + + var allDiagnostics = program.getDiagnostics() + .concat(checker.getDiagnostics()) + .concat(result.diagnostics); + + allDiagnostics.forEach(diagnostic => { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(`${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + }); + + console.log(`Process exiting with code '${result.emitResultStatus}'.`); + process.exit(result.emitResultStatus); +} + +compile(process.argv.slice(2), { + noEmitOnError: true, noImplicitAny: true, + target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS +}); \ No newline at end of file diff --git a/tests/cases/compiler/APISample_linter.ts b/tests/cases/compiler/APISample_linter.ts new file mode 100644 index 00000000000..8a796fe6fc8 --- /dev/null +++ b/tests/cases/compiler/APISample_linter.ts @@ -0,0 +1,65 @@ +// @module: commonjs +// @includebuiltfile: typescript.d.ts + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; + +import ts = require("typescript"); + +export function delint(sourceFile: ts.SourceFile) { + delintNode(sourceFile); + + function delintNode(node: ts.Node) { + switch (node.kind) { + case ts.SyntaxKind.ForStatement: + case ts.SyntaxKind.ForInStatement: + case ts.SyntaxKind.WhileStatement: + case ts.SyntaxKind.DoStatement: + if ((node).statement.kind !== ts.SyntaxKind.Block) { + report(node, "A looping statement's contents should be wrapped in a block body."); + } + break; + case ts.SyntaxKind.IfStatement: + var ifStatement = (node); + if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { + report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); + } + if (ifStatement.elseStatement && + ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement) { + report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); + } + break; + + case ts.SyntaxKind.BinaryExpression: + var op = (node).operator; + + if (op === ts.SyntaxKind.EqualsEqualsToken || op === ts.SyntaxKind.ExclamationEqualsToken) { + report(node, "Use '===' and '!=='.") + } + break; + } + + ts.forEachChild(node, delintNode); + } + + function report(node: ts.Node, message: string) { + var lineChar = sourceFile.getLineAndCharacterFromPosition(node.getStart()); + console.log(`${sourceFile.filename} (${lineChar.line},${lineChar.character}): ${message}`) + } +} + +var filenames = process.argv.slice(2); +filenames.forEach(filename => { + // Parse a file + var sourceFile = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); + + // delint it + delint(sourceFile); +}); diff --git a/tests/cases/compiler/APISample_transform.ts b/tests/cases/compiler/APISample_transform.ts new file mode 100644 index 00000000000..4d79ff827cd --- /dev/null +++ b/tests/cases/compiler/APISample_transform.ts @@ -0,0 +1,67 @@ +// @module: commonjs +// @includebuiltfile: typescript.d.ts + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; +declare var path: any; + +import ts = require("typescript"); + +function transform(contents: string, compilerOptions: ts.CompilerOptions = {}) { + // Sources + var files = { + "file.ts": contents, + "lib.d.ts": fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions)).toString() + }; + + // Generated outputs + var outputs = []; + + // Create a compilerHost object to allow the compiler to read and write files + var compilerHost = { + getSourceFile: (filename, target) => { + return files[filename] !== undefined ? + ts.createSourceFile(filename, files[filename], target) : undefined; + }, + writeFile: (name, text, writeByteOrderMark) => { + outputs.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); + }, + getDefaultLibFilename: () => "lib.d.ts", + useCaseSensitiveFileNames: () => false, + getCanonicalFileName: (filename) => filename, + getCurrentDirectory: () => "", + getNewLine: () => "\n" + }; + + // Create a program from inputs + var program = ts.createProgram(["file.ts"], compilerOptions, compilerHost); + + // Query for early errors + var errors = program.getDiagnostics(); + // Do not generate code in the presence of early errors + if (!errors.length) { + // Type check and get semantic errors + var checker = program.getTypeChecker(true); + errors = checker.getDiagnostics(); + // Generate output + program.emitFiles(); + } + return { + outputs: outputs, + errors: errors.map(function (e) { return e.file.filename + "(" + e.file.getLineAndCharacterFromPosition(e.start).line + "): " + e.messageText; }) + }; +} + +// Calling our transform function using a simple TypeScript variable declarations, +// and loading the default library like: +var source = "var x: number = 'string'"; +var result = transform(source); + +console.log(JSON.stringify(result)); \ No newline at end of file diff --git a/tests/cases/compiler/APISample_watcher.ts b/tests/cases/compiler/APISample_watcher.ts new file mode 100644 index 00000000000..119c66697b2 --- /dev/null +++ b/tests/cases/compiler/APISample_watcher.ts @@ -0,0 +1,104 @@ +// @module: commonjs +// @includebuiltfile: typescript.d.ts + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +declare var console: any; +declare var fs: any; +declare var path: any; + +import ts = require("typescript"); + +function watch(rootFilenames: string[], options: ts.CompilerOptions) { + var files: ts.Map<{ version: number }> = {}; + + // initialize the list of files + rootFilenames.forEach(filename => { + files[filename] = { version: 0 }; + }); + + // Create the language service host to allow the LS to communicate with the host + var servicesHost: ts.LanguageServiceHost = { + getScriptFileNames: () => rootFilenames, + getScriptVersion: (filename) => files[filename] && files[filename].version.toString(), + getScriptSnapshot: (filename) => { + if (!fs.existsSync(filename)) { + return undefined; + } + + return ts.ScriptSnapshot.fromString(fs.readFileSync(filename).toString()); + }, + getCurrentDirectory: () => process.cwd(), + getCompilationSettings: () => options, + getDefaultLibFilename: (options) => ts.getDefaultLibFilePath(options), + }; + + // Create the language service files + var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) + + // Now let's watch the files + rootFilenames.forEach(filename => { + // First time around, emit all files + emitFile(filename); + + // Add a watch on the file to handle next change + fs.watchFile(filename, + { persistent: true, interval: 250 }, + (curr, prev) => { + // Check timestamp + if (+curr.mtime <= +prev.mtime) { + return; + } + + // Update the version to signal a change in the file + files[filename].version++; + + // write the changes to disk + emitFile(filename); + }); + }); + + function emitFile(filename: string) { + var output = services.getEmitOutput(filename); + + if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { + console.log(`Emitting ${filename}`); + } + else { + console.log(`Emitting ${filename} failed`); + logErrors(filename); + } + + output.outputFiles.forEach(o => { + fs.writeFileSync(o.name, o.text, "utf8"); + }); + } + + function logErrors(filename: string) { + var allDiagnostics = services.getCompilerOptionsDiagnostics() + .concat(services.getSyntacticDiagnostics(filename)) + .concat(services.getSemanticDiagnostics(filename)); + + allDiagnostics.forEach(diagnostic => { + if (diagnostic.file) { + var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); + console.log(` Error ${diagnostic.file.filename} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + } + else { + console.log(` Error: ${diagnostic.messageText}`); + } + }); + } +} + +// Initialize files constituting the program as all .ts files in the current directory +var currentDirectoryFiles = fs.readdirSync(process.cwd()). + filter(filename=> filename.length >= 3 && filename.substr(filename.length - 3, 3) === ".ts"); + +// Start the watcher +watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); \ No newline at end of file From 2f9e65f16b64e524adb245159ecee82bfc5f9dff Mon Sep 17 00:00:00 2001 From: Yui T Date: Thu, 29 Jan 2015 12:44:43 -0800 Subject: [PATCH 124/211] Update gitignore to ignore internal test folders --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8e2c10d7b32..57e8804d7c3 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ scripts/word2md.js scripts/ior.js scripts/*.js.map coverage/ +internal/ From 0abef5219bd1dd95daa8aa9d2b615c9e538b51a5 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 29 Jan 2015 12:55:25 -0800 Subject: [PATCH 125/211] Update test failing by previous commit --- .../reference/contextualTyping.errors.txt | 12 +- tests/baselines/reference/contextualTyping.js | 204 ++- .../reference/contextualTyping.sourcemap.txt | 1331 +++++++++-------- .../baselines/reference/contextualTyping1.js | 2 +- 4 files changed, 922 insertions(+), 627 deletions(-) diff --git a/tests/baselines/reference/contextualTyping.errors.txt b/tests/baselines/reference/contextualTyping.errors.txt index 3dce1018e3e..f6941b7b92d 100644 --- a/tests/baselines/reference/contextualTyping.errors.txt +++ b/tests/baselines/reference/contextualTyping.errors.txt @@ -1,10 +1,5 @@ -tests/cases/compiler/contextualTyping.ts(189,18): error TS2384: Overload signatures must all be ambient or non-ambient. -tests/cases/compiler/contextualTyping.ts(197,15): error TS2300: Duplicate identifier 'Point'. -tests/cases/compiler/contextualTyping.ts(207,10): error TS2300: Duplicate identifier 'Point'. -tests/cases/compiler/contextualTyping.ts(230,5): error TS2322: Type '{}' is not assignable to type 'B'.\n Property 'x' is missing in type '{}'. - - -==== tests/cases/compiler/contextualTyping.ts (4 errors) ==== +tests/cases/compiler/contextualTyping.ts(189,18): error TS2384: Overload signatures must all be ambient or non-ambient.\ntests/cases/compiler/contextualTyping.ts(197,15): error TS2300: Duplicate identifier 'Point'.\ntests/cases/compiler/contextualTyping.ts(207,10): error TS2300: Duplicate identifier 'Point'.\ntests/cases/compiler/contextualTyping.ts(230,5): error TS2322: Type '{}' is not assignable to type 'B'. + Property 'x' is missing in type '{}'.\n\n\n==== tests/cases/compiler/contextualTyping.ts (4 errors) ==== // DEFAULT INTERFACES interface IFoo { n: number; @@ -242,5 +237,6 @@ tests/cases/compiler/contextualTyping.ts(230,5): error TS2322: Type '{}' is not interface B extends A { } var x: B = { }; ~ -!!! error TS2322: Type '{}' is not assignable to type 'B'.\n Property 'x' is missing in type '{}'. +!!! error TS2322: Type '{}' is not assignable to type 'B'. +!!! error TS2322: Property 'x' is missing in type '{}'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping.js b/tests/baselines/reference/contextualTyping.js index 6d9f1911038..0abfa95e45b 100644 --- a/tests/baselines/reference/contextualTyping.js +++ b/tests/baselines/reference/contextualTyping.js @@ -232,4 +232,206 @@ var x: B = { }; //// [contextualTyping.js] -// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map \ No newline at end of file +// CONTEXT: Class property declaration +var C1T5 = (function () { + function C1T5() { + this.foo = function (i) { + return i; + }; + } + return C1T5; +})(); +// CONTEXT: Module property declaration +var C2T5; +(function (C2T5) { + C2T5.foo = function (i) { + return i; + }; +})(C2T5 || (C2T5 = {})); +// CONTEXT: Variable declaration +var c3t1 = (function (s) { + return s; +}); +var c3t2 = ({ + n: 1 +}); +var c3t3 = []; +var c3t4 = function () { + return ({}); +}; +var c3t5 = function (n) { + return ({}); +}; +var c3t6 = function (n, s) { + return ({}); +}; +var c3t7 = function (n) { + return n; +}; +var c3t8 = function (n) { + return n; +}; +var c3t9 = [[], []]; +var c3t10 = [({}), ({})]; +var c3t11 = [function (n, s) { + return s; +}]; +var c3t12 = { + foo: ({}) +}; +var c3t13 = ({ + f: function (i, s) { + return s; + } +}); +var c3t14 = ({ + a: [] +}); +// CONTEXT: Class property assignment +var C4T5 = (function () { + function C4T5() { + this.foo = function (i, s) { + return s; + }; + } + return C4T5; +})(); +// CONTEXT: Module property assignment +var C5T5; +(function (C5T5) { + C5T5.foo; + C5T5.foo = function (i, s) { + return s; + }; +})(C5T5 || (C5T5 = {})); +// CONTEXT: Variable assignment +var c6t5; +c6t5 = function (n) { + return ({}); +}; +// CONTEXT: Array index assignment +var c7t2; +c7t2[0] = ({ n: 1 }); +var objc8 = ({}); +objc8.t1 = (function (s) { + return s; +}); +objc8.t2 = ({ + n: 1 +}); +objc8.t3 = []; +objc8.t4 = function () { + return ({}); +}; +objc8.t5 = function (n) { + return ({}); +}; +objc8.t6 = function (n, s) { + return ({}); +}; +objc8.t7 = function (n) { + return n; +}; +objc8.t8 = function (n) { + return n; +}; +objc8.t9 = [[], []]; +objc8.t10 = [({}), ({})]; +objc8.t11 = [function (n, s) { + return s; +}]; +objc8.t12 = { + foo: ({}) +}; +objc8.t13 = ({ + f: function (i, s) { + return s; + } +}); +objc8.t14 = ({ + a: [] +}); +// CONTEXT: Function call +function c9t5(f) { +} +; +c9t5(function (n) { + return ({}); +}); +// CONTEXT: Return statement +var c10t5 = function () { + return function (n) { + return ({}); + }; +}; +// CONTEXT: Newing a class +var C11t5 = (function () { + function C11t5(f) { + } + return C11t5; +})(); +; +var i = new C11t5(function (n) { + return ({}); +}); +// CONTEXT: Type annotated expression +var c12t1 = (function (s) { + return s; +}); +var c12t2 = ({ + n: 1 +}); +var c12t3 = []; +var c12t4 = function () { + return ({}); +}; +var c12t5 = function (n) { + return ({}); +}; +var c12t6 = function (n, s) { + return ({}); +}; +var c12t7 = function (n) { + return n; +}; +var c12t8 = function (n) { + return n; +}; +var c12t9 = [[], []]; +var c12t10 = [({}), ({})]; +var c12t11 = [function (n, s) { + return s; +}]; +var c12t12 = { + foo: ({}) +}; +var c12t13 = ({ + f: function (i, s) { + return s; + } +}); +var c12t14 = ({ + a: [] +}); +function EF1(a, b) { + return a + b; +} +var efv = EF1(1, 2); +function Point(x, y) { + this.x = x; + this.y = y; + return this; +} +Point.origin = new Point(0, 0); +Point.prototype.add = function (dx, dy) { + return new Point(this.x + dx, this.y + dy); +}; +Point.prototype = { + x: 0, + y: 0, + add: function (dx, dy) { + return new Point(this.x + dx, this.y + dy); + } +}; +var x = {}; +//# sourceMappingURL=contextualTyping.js.map \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping.sourcemap.txt b/tests/baselines/reference/contextualTyping.sourcemap.txt index 1befbbc01d4..9ee97ee0804 100644 --- a/tests/baselines/reference/contextualTyping.sourcemap.txt +++ b/tests/baselines/reference/contextualTyping.sourcemap.txt @@ -8,10 +8,10 @@ sources: contextualTyping.ts emittedFile:tests/cases/compiler/contextualTyping.js sourceFile:contextualTyping.ts ------------------------------------------------------------------- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1 > +>>>// CONTEXT: Class property declaration +1 > 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 >// DEFAULT INTERFACES >interface IFoo { > n: number; @@ -32,19 +32,21 @@ sourceFile:contextualTyping.ts 2 >Emitted(1, 1) Source(13, 1) + SourceIndex(0) 3 >Emitted(1, 39) Source(13, 39) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var C1T5 = (function () { +1 >^^^^ 2 > ^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^-> +1 > >class 2 > C1T5 -1->Emitted(2, 5) Source(14, 7) + SourceIndex(0) +1 >Emitted(2, 5) Source(14, 7) + SourceIndex(0) 2 >Emitted(2, 9) Source(14, 11) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> function C1T5() { +1->^^^^ 2 > ^^^^^^^^^ 3 > ^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +4 > ^^^^^^^^^^^^^^^^^-> 1-> 2 > class 3 > C1T5 @@ -52,12 +54,12 @@ sourceFile:contextualTyping.ts 2 >Emitted(3, 14) Source(14, 7) + SourceIndex(0) name (C1T5) 3 >Emitted(3, 18) Source(14, 11) + SourceIndex(0) name (C1T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> this.foo = function (i) { +1->^^^^^^^^ 2 > ^^^^^^^^ 3 > ^^^ 4 > ^^^^^^^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> { > 2 > foo @@ -70,59 +72,61 @@ sourceFile:contextualTyping.ts 4 >Emitted(4, 30) Source(15, 54) + SourceIndex(0) name (C1T5.constructor) 5 >Emitted(4, 31) Source(15, 55) + SourceIndex(0) name (C1T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^^^^^ +>>> return i; +1 >^^^^^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { > 2 > return 3 > 4 > i 5 > ; -1->Emitted(5, 13) Source(16, 9) + SourceIndex(0) +1 >Emitted(5, 13) Source(16, 9) + SourceIndex(0) 2 >Emitted(5, 19) Source(16, 15) + SourceIndex(0) 3 >Emitted(5, 20) Source(16, 16) + SourceIndex(0) 4 >Emitted(5, 21) Source(16, 17) + SourceIndex(0) 5 >Emitted(5, 22) Source(16, 18) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> }; +1 >^^^^^^^^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > > 2 > } 3 > -1->Emitted(6, 9) Source(17, 5) + SourceIndex(0) +1 >Emitted(6, 9) Source(17, 5) + SourceIndex(0) 2 >Emitted(6, 10) Source(17, 6) + SourceIndex(0) 3 >Emitted(6, 11) Source(17, 6) + SourceIndex(0) name (C1T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^-> +1 > > 2 > } -1->Emitted(7, 5) Source(18, 1) + SourceIndex(0) name (C1T5.constructor) +1 >Emitted(7, 5) Source(18, 1) + SourceIndex(0) name (C1T5.constructor) 2 >Emitted(7, 6) Source(18, 2) + SourceIndex(0) name (C1T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return C1T5; +1->^^^^ 2 > ^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> 2 > } 1->Emitted(8, 5) Source(18, 1) + SourceIndex(0) name (C1T5) 2 >Emitted(8, 16) Source(18, 2) + SourceIndex(0) name (C1T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>})(); +1 > 2 >^ 3 > 4 > ^^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > 4 > class C1T5 { @@ -130,15 +134,15 @@ sourceFile:contextualTyping.ts > return i; > } > } -1->Emitted(9, 1) Source(18, 1) + SourceIndex(0) name (C1T5) +1 >Emitted(9, 1) Source(18, 1) + SourceIndex(0) name (C1T5) 2 >Emitted(9, 2) Source(18, 2) + SourceIndex(0) name (C1T5) 3 >Emitted(9, 2) Source(14, 1) + SourceIndex(0) 4 >Emitted(9, 6) Source(18, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Module property declaration +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Module property declaration @@ -149,12 +153,13 @@ sourceFile:contextualTyping.ts 2 >Emitted(10, 1) Source(20, 1) + SourceIndex(0) 3 >Emitted(10, 40) Source(20, 40) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var C2T5; +1 > 2 >^^^^ 3 > ^^^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^-> +1 > > 2 >module 3 > C2T5 @@ -163,17 +168,18 @@ sourceFile:contextualTyping.ts > return i; > } > } -1->Emitted(11, 1) Source(21, 1) + SourceIndex(0) +1 >Emitted(11, 1) Source(21, 1) + SourceIndex(0) 2 >Emitted(11, 5) Source(21, 8) + SourceIndex(0) 3 >Emitted(11, 9) Source(21, 12) + SourceIndex(0) 4 >Emitted(11, 10) Source(25, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>(function (C2T5) { +1-> 2 >^^^^^^^^^^^ 3 > ^^^^ 4 > ^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^^^^^^^^^^^-> 1-> 2 >module 3 > C2T5 @@ -185,12 +191,12 @@ sourceFile:contextualTyping.ts 4 >Emitted(12, 18) Source(21, 13) + SourceIndex(0) 5 >Emitted(12, 19) Source(21, 14) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> C2T5.foo = function (i) { +1->^^^^ 2 > ^^^^^^^^ 3 > ^^^ 4 > ^^^^^^^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > export var 2 > foo @@ -203,44 +209,46 @@ sourceFile:contextualTyping.ts 4 >Emitted(13, 26) Source(22, 65) + SourceIndex(0) name (C2T5) 5 >Emitted(13, 27) Source(22, 66) + SourceIndex(0) name (C2T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return i; +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { > 2 > return 3 > 4 > i 5 > ; -1->Emitted(14, 9) Source(23, 9) + SourceIndex(0) +1 >Emitted(14, 9) Source(23, 9) + SourceIndex(0) 2 >Emitted(14, 15) Source(23, 15) + SourceIndex(0) 3 >Emitted(14, 16) Source(23, 16) + SourceIndex(0) 4 >Emitted(14, 17) Source(23, 17) + SourceIndex(0) 5 >Emitted(14, 18) Source(23, 18) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> }; +1 >^^^^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^-> +1 > > 2 > } 3 > -1->Emitted(15, 5) Source(24, 5) + SourceIndex(0) +1 >Emitted(15, 5) Source(24, 5) + SourceIndex(0) 2 >Emitted(15, 6) Source(24, 6) + SourceIndex(0) 3 >Emitted(15, 7) Source(24, 6) + SourceIndex(0) name (C2T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>})(C2T5 || (C2T5 = {})); +1-> 2 >^ 3 > ^^ 4 > ^^^^ 5 > ^^^^^ 6 > ^^^^ 7 > ^^^^^^^^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^^^^^^^^^-> 1-> > 2 >} @@ -261,10 +269,10 @@ sourceFile:contextualTyping.ts 6 >Emitted(16, 17) Source(21, 12) + SourceIndex(0) 7 >Emitted(16, 25) Source(25, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Variable declaration +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Variable declaration @@ -275,64 +283,65 @@ sourceFile:contextualTyping.ts 2 >Emitted(17, 1) Source(27, 1) + SourceIndex(0) 3 >Emitted(17, 33) Source(27, 33) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var c3t1 = (function (s) { +1 >^^^^ 2 > ^^^^ 3 > ^^^ 4 > ^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > >var 2 > c3t1 3 > : (s: string) => string = 4 > ( 5 > function( 6 > s -1->Emitted(18, 5) Source(28, 5) + SourceIndex(0) +1 >Emitted(18, 5) Source(28, 5) + SourceIndex(0) 2 >Emitted(18, 9) Source(28, 9) + SourceIndex(0) 3 >Emitted(18, 12) Source(28, 35) + SourceIndex(0) 4 >Emitted(18, 13) Source(28, 36) + SourceIndex(0) 5 >Emitted(18, 23) Source(28, 45) + SourceIndex(0) 6 >Emitted(18, 24) Source(28, 46) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > -1->Emitted(19, 5) Source(28, 50) + SourceIndex(0) +1 >Emitted(19, 5) Source(28, 50) + SourceIndex(0) 2 >Emitted(19, 11) Source(28, 56) + SourceIndex(0) 3 >Emitted(19, 12) Source(28, 57) + SourceIndex(0) 4 >Emitted(19, 13) Source(28, 58) + SourceIndex(0) 5 >Emitted(19, 14) Source(28, 58) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}); +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^-> +1 > 2 >} 3 > ) 4 > ; -1->Emitted(20, 1) Source(28, 59) + SourceIndex(0) +1 >Emitted(20, 1) Source(28, 59) + SourceIndex(0) 2 >Emitted(20, 2) Source(28, 60) + SourceIndex(0) 3 >Emitted(20, 3) Source(28, 61) + SourceIndex(0) 4 >Emitted(20, 4) Source(28, 62) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t2 = ({ +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -345,40 +354,42 @@ sourceFile:contextualTyping.ts 4 >Emitted(21, 12) Source(29, 18) + SourceIndex(0) 5 >Emitted(21, 13) Source(29, 19) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> n: 1 +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > n 3 > : 4 > 1 -1->Emitted(22, 5) Source(30, 5) + SourceIndex(0) +1 >Emitted(22, 5) Source(30, 5) + SourceIndex(0) 2 >Emitted(22, 6) Source(30, 6) + SourceIndex(0) 3 >Emitted(22, 8) Source(30, 8) + SourceIndex(0) 4 >Emitted(22, 9) Source(30, 9) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(23, 2) Source(31, 2) + SourceIndex(0) +1 >Emitted(23, 2) Source(31, 2) + SourceIndex(0) 2 >Emitted(23, 3) Source(31, 3) + SourceIndex(0) 3 >Emitted(23, 4) Source(31, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t3 = []; +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +7 > ^^^^^^^^^^^-> 1-> > 2 >var @@ -393,11 +404,12 @@ sourceFile:contextualTyping.ts 5 >Emitted(24, 14) Source(32, 24) + SourceIndex(0) 6 >Emitted(24, 15) Source(32, 25) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t4 = function () { +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^^^^^^-> 1-> > 2 >var @@ -408,14 +420,14 @@ sourceFile:contextualTyping.ts 3 >Emitted(25, 9) Source(33, 9) + SourceIndex(0) 4 >Emitted(25, 12) Source(33, 24) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->function() { 2 > return 3 > @@ -431,24 +443,25 @@ sourceFile:contextualTyping.ts 6 >Emitted(26, 16) Source(33, 54) + SourceIndex(0) 7 >Emitted(26, 17) Source(33, 54) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(27, 1) Source(33, 55) + SourceIndex(0) +1 >Emitted(27, 1) Source(33, 55) + SourceIndex(0) 2 >Emitted(27, 2) Source(33, 56) + SourceIndex(0) 3 >Emitted(27, 3) Source(33, 57) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t5 = function (n) { +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -463,22 +476,22 @@ sourceFile:contextualTyping.ts 5 >Emitted(28, 22) Source(34, 42) + SourceIndex(0) 6 >Emitted(28, 23) Source(34, 43) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(29, 5) Source(34, 47) + SourceIndex(0) +1 >Emitted(29, 5) Source(34, 47) + SourceIndex(0) 2 >Emitted(29, 11) Source(34, 53) + SourceIndex(0) 3 >Emitted(29, 12) Source(34, 60) + SourceIndex(0) 4 >Emitted(29, 13) Source(34, 61) + SourceIndex(0) @@ -486,18 +499,20 @@ sourceFile:contextualTyping.ts 6 >Emitted(29, 16) Source(34, 64) + SourceIndex(0) 7 >Emitted(29, 17) Source(34, 64) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(30, 1) Source(34, 65) + SourceIndex(0) +1 >Emitted(30, 1) Source(34, 65) + SourceIndex(0) 2 >Emitted(30, 2) Source(34, 66) + SourceIndex(0) 3 >Emitted(30, 3) Source(34, 67) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t6 = function (n, s) { +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ @@ -505,7 +520,6 @@ sourceFile:contextualTyping.ts 6 > ^ 7 > ^^ 8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -524,22 +538,22 @@ sourceFile:contextualTyping.ts 7 >Emitted(31, 25) Source(35, 56) + SourceIndex(0) 8 >Emitted(31, 26) Source(35, 57) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(32, 5) Source(35, 61) + SourceIndex(0) +1 >Emitted(32, 5) Source(35, 61) + SourceIndex(0) 2 >Emitted(32, 11) Source(35, 67) + SourceIndex(0) 3 >Emitted(32, 12) Source(35, 74) + SourceIndex(0) 4 >Emitted(32, 13) Source(35, 75) + SourceIndex(0) @@ -547,24 +561,25 @@ sourceFile:contextualTyping.ts 6 >Emitted(32, 16) Source(35, 78) + SourceIndex(0) 7 >Emitted(32, 17) Source(35, 78) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(33, 1) Source(35, 79) + SourceIndex(0) +1 >Emitted(33, 1) Source(35, 79) + SourceIndex(0) 2 >Emitted(33, 2) Source(35, 80) + SourceIndex(0) 3 >Emitted(33, 3) Source(35, 81) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t7 = function (n) { +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -582,41 +597,42 @@ sourceFile:contextualTyping.ts 5 >Emitted(34, 22) Source(39, 14) + SourceIndex(0) 6 >Emitted(34, 23) Source(39, 15) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > ; -1->Emitted(35, 5) Source(39, 19) + SourceIndex(0) +1 >Emitted(35, 5) Source(39, 19) + SourceIndex(0) 2 >Emitted(35, 11) Source(39, 25) + SourceIndex(0) 3 >Emitted(35, 12) Source(39, 26) + SourceIndex(0) 4 >Emitted(35, 13) Source(39, 27) + SourceIndex(0) 5 >Emitted(35, 14) Source(39, 28) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(36, 1) Source(39, 29) + SourceIndex(0) +1 >Emitted(36, 1) Source(39, 29) + SourceIndex(0) 2 >Emitted(36, 2) Source(39, 30) + SourceIndex(0) 3 >Emitted(36, 3) Source(39, 31) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t8 = function (n) { +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -632,35 +648,37 @@ sourceFile:contextualTyping.ts 5 >Emitted(37, 22) Source(41, 55) + SourceIndex(0) 6 >Emitted(37, 23) Source(41, 56) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > ; -1->Emitted(38, 5) Source(41, 60) + SourceIndex(0) +1 >Emitted(38, 5) Source(41, 60) + SourceIndex(0) 2 >Emitted(38, 11) Source(41, 66) + SourceIndex(0) 3 >Emitted(38, 12) Source(41, 67) + SourceIndex(0) 4 >Emitted(38, 13) Source(41, 68) + SourceIndex(0) 5 >Emitted(38, 14) Source(41, 69) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(39, 1) Source(41, 70) + SourceIndex(0) +1 >Emitted(39, 1) Source(41, 70) + SourceIndex(0) 2 >Emitted(39, 2) Source(41, 71) + SourceIndex(0) 3 >Emitted(39, 3) Source(41, 72) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t9 = [[], []]; +1-> 2 >^^^^ 3 > ^^^^ 4 > ^^^ @@ -670,7 +688,7 @@ sourceFile:contextualTyping.ts 8 > ^^ 9 > ^ 10> ^ -11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +11> ^^^^^^-> 1-> > 2 >var @@ -693,7 +711,8 @@ sourceFile:contextualTyping.ts 9 >Emitted(40, 20) Source(42, 31) + SourceIndex(0) 10>Emitted(40, 21) Source(42, 32) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t10 = [({}), ({})]; +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ @@ -707,7 +726,7 @@ sourceFile:contextualTyping.ts 12> ^ 13> ^ 14> ^ -15> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +15> ^^^^^^-> 1-> > 2 >var @@ -738,7 +757,8 @@ sourceFile:contextualTyping.ts 13>Emitted(41, 25) Source(43, 44) + SourceIndex(0) 14>Emitted(41, 26) Source(43, 45) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t11 = [function (n, s) { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ @@ -747,7 +767,6 @@ sourceFile:contextualTyping.ts 7 > ^ 8 > ^^ 9 > ^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -768,42 +787,44 @@ sourceFile:contextualTyping.ts 8 >Emitted(42, 27) Source(44, 63) + SourceIndex(0) 9 >Emitted(42, 28) Source(44, 64) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(43, 5) Source(44, 68) + SourceIndex(0) +1 >Emitted(43, 5) Source(44, 68) + SourceIndex(0) 2 >Emitted(43, 11) Source(44, 74) + SourceIndex(0) 3 >Emitted(43, 12) Source(44, 75) + SourceIndex(0) 4 >Emitted(43, 13) Source(44, 76) + SourceIndex(0) 5 >Emitted(43, 14) Source(44, 77) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}]; +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^-> +1 > 2 >} 3 > ] 4 > ; -1->Emitted(44, 1) Source(44, 78) + SourceIndex(0) +1 >Emitted(44, 1) Source(44, 78) + SourceIndex(0) 2 >Emitted(44, 2) Source(44, 79) + SourceIndex(0) 3 >Emitted(44, 3) Source(44, 80) + SourceIndex(0) 4 >Emitted(44, 4) Source(44, 81) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t12 = { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^^-> 1-> > 2 >var @@ -814,13 +835,13 @@ sourceFile:contextualTyping.ts 3 >Emitted(45, 10) Source(45, 10) + SourceIndex(0) 4 >Emitted(45, 13) Source(45, 19) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> foo: ({}) +1->^^^^ 2 > ^^^ 3 > ^^ 4 > ^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > foo @@ -835,21 +856,23 @@ sourceFile:contextualTyping.ts 5 >Emitted(46, 13) Source(46, 19) + SourceIndex(0) 6 >Emitted(46, 14) Source(46, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}; +1 >^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^-> +1 > >} 2 > -1->Emitted(47, 2) Source(47, 2) + SourceIndex(0) +1 >Emitted(47, 2) Source(47, 2) + SourceIndex(0) 2 >Emitted(47, 3) Source(47, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t13 = ({ +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^^^^^^^^^^^-> 1-> > 2 >var @@ -862,14 +885,14 @@ sourceFile:contextualTyping.ts 4 >Emitted(48, 13) Source(48, 19) + SourceIndex(0) 5 >Emitted(48, 14) Source(48, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> f: function (i, s) { +1->^^^^ 2 > ^ 3 > ^^ 4 > ^^^^^^^^^^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > f @@ -886,49 +909,50 @@ sourceFile:contextualTyping.ts 6 >Emitted(49, 21) Source(49, 20) + SourceIndex(0) 7 >Emitted(49, 22) Source(49, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return s; +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(50, 9) Source(49, 25) + SourceIndex(0) +1 >Emitted(50, 9) Source(49, 25) + SourceIndex(0) 2 >Emitted(50, 15) Source(49, 31) + SourceIndex(0) 3 >Emitted(50, 16) Source(49, 32) + SourceIndex(0) 4 >Emitted(50, 17) Source(49, 33) + SourceIndex(0) 5 >Emitted(50, 18) Source(49, 34) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 > } -1->Emitted(51, 5) Source(49, 35) + SourceIndex(0) +1 >Emitted(51, 5) Source(49, 35) + SourceIndex(0) 2 >Emitted(51, 6) Source(49, 36) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(52, 2) Source(50, 2) + SourceIndex(0) +1 >Emitted(52, 2) Source(50, 2) + SourceIndex(0) 2 >Emitted(52, 3) Source(50, 3) + SourceIndex(0) 3 >Emitted(52, 4) Source(50, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c3t14 = ({ +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -941,37 +965,38 @@ sourceFile:contextualTyping.ts 4 >Emitted(53, 13) Source(51, 19) + SourceIndex(0) 5 >Emitted(53, 14) Source(51, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> a: [] +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > a 3 > : 4 > [] -1->Emitted(54, 5) Source(52, 5) + SourceIndex(0) +1 >Emitted(54, 5) Source(52, 5) + SourceIndex(0) 2 >Emitted(54, 6) Source(52, 6) + SourceIndex(0) 3 >Emitted(54, 8) Source(52, 8) + SourceIndex(0) 4 >Emitted(54, 10) Source(52, 10) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(55, 2) Source(53, 2) + SourceIndex(0) +1 >Emitted(55, 2) Source(53, 2) + SourceIndex(0) 2 >Emitted(55, 3) Source(53, 3) + SourceIndex(0) 3 >Emitted(55, 4) Source(53, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Class property assignment +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Class property assignment @@ -982,19 +1007,21 @@ sourceFile:contextualTyping.ts 2 >Emitted(56, 1) Source(55, 1) + SourceIndex(0) 3 >Emitted(56, 38) Source(55, 38) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var C4T5 = (function () { +1 >^^^^ 2 > ^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^-> +1 > >class 2 > C4T5 -1->Emitted(57, 5) Source(56, 7) + SourceIndex(0) +1 >Emitted(57, 5) Source(56, 7) + SourceIndex(0) 2 >Emitted(57, 9) Source(56, 11) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> function C4T5() { +1->^^^^ 2 > ^^^^^^^^^ 3 > ^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +4 > ^^^^^^^^^^^^^^^^^^^^-> 1-> { > foo: (i: number, s: string) => string; > @@ -1004,7 +1031,8 @@ sourceFile:contextualTyping.ts 2 >Emitted(58, 14) Source(56, 7) + SourceIndex(0) name (C4T5) 3 >Emitted(58, 18) Source(56, 11) + SourceIndex(0) name (C4T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> this.foo = function (i, s) { +1->^^^^^^^^ 2 > ^^^^ 3 > ^ 4 > ^^^ @@ -1013,7 +1041,6 @@ sourceFile:contextualTyping.ts 7 > ^ 8 > ^^ 9 > ^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> { > foo: (i: number, s: string) => string; > constructor() { @@ -1036,60 +1063,62 @@ sourceFile:contextualTyping.ts 8 >Emitted(59, 33) Source(59, 32) + SourceIndex(0) name (C4T5.constructor) 9 >Emitted(59, 34) Source(59, 33) + SourceIndex(0) name (C4T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^^^^^ +>>> return s; +1 >^^^^^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { > 2 > return 3 > 4 > s 5 > ; -1->Emitted(60, 13) Source(60, 13) + SourceIndex(0) +1 >Emitted(60, 13) Source(60, 13) + SourceIndex(0) 2 >Emitted(60, 19) Source(60, 19) + SourceIndex(0) 3 >Emitted(60, 20) Source(60, 20) + SourceIndex(0) 4 >Emitted(60, 21) Source(60, 21) + SourceIndex(0) 5 >Emitted(60, 22) Source(60, 22) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> }; +1 >^^^^^^^^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > > 2 > } 3 > -1->Emitted(61, 9) Source(61, 9) + SourceIndex(0) +1 >Emitted(61, 9) Source(61, 9) + SourceIndex(0) 2 >Emitted(61, 10) Source(61, 10) + SourceIndex(0) 3 >Emitted(61, 11) Source(61, 10) + SourceIndex(0) name (C4T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^-> +1 > > 2 > } -1->Emitted(62, 5) Source(62, 5) + SourceIndex(0) name (C4T5.constructor) +1 >Emitted(62, 5) Source(62, 5) + SourceIndex(0) name (C4T5.constructor) 2 >Emitted(62, 6) Source(62, 6) + SourceIndex(0) name (C4T5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return C4T5; +1->^^^^ 2 > ^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 > } 1->Emitted(63, 5) Source(63, 1) + SourceIndex(0) name (C4T5) 2 >Emitted(63, 16) Source(63, 2) + SourceIndex(0) name (C4T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>})(); +1 > 2 >^ 3 > 4 > ^^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > 4 > class C4T5 { @@ -1100,15 +1129,15 @@ sourceFile:contextualTyping.ts > } > } > } -1->Emitted(64, 1) Source(63, 1) + SourceIndex(0) name (C4T5) +1 >Emitted(64, 1) Source(63, 1) + SourceIndex(0) name (C4T5) 2 >Emitted(64, 2) Source(63, 2) + SourceIndex(0) name (C4T5) 3 >Emitted(64, 2) Source(56, 1) + SourceIndex(0) 4 >Emitted(64, 6) Source(63, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Module property assignment +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Module property assignment @@ -1119,12 +1148,13 @@ sourceFile:contextualTyping.ts 2 >Emitted(65, 1) Source(65, 1) + SourceIndex(0) 3 >Emitted(65, 39) Source(65, 39) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var C5T5; +1 > 2 >^^^^ 3 > ^^^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^-> +1 > > 2 >module 3 > C5T5 @@ -1134,17 +1164,17 @@ sourceFile:contextualTyping.ts > return s; > } > } -1->Emitted(66, 1) Source(66, 1) + SourceIndex(0) +1 >Emitted(66, 1) Source(66, 1) + SourceIndex(0) 2 >Emitted(66, 5) Source(66, 8) + SourceIndex(0) 3 >Emitted(66, 9) Source(66, 12) + SourceIndex(0) 4 >Emitted(66, 10) Source(71, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>(function (C5T5) { +1-> 2 >^^^^^^^^^^^ 3 > ^^^^ 4 > ^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> 2 >module 3 > C5T5 @@ -1156,26 +1186,27 @@ sourceFile:contextualTyping.ts 4 >Emitted(67, 18) Source(66, 13) + SourceIndex(0) 5 >Emitted(67, 19) Source(66, 14) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> C5T5.foo; +1 >^^^^ 2 > ^^^^^^^^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^-> +1 > > export var 2 > foo: (i: number, s: string) => string 3 > ; -1->Emitted(68, 5) Source(67, 16) + SourceIndex(0) name (C5T5) +1 >Emitted(68, 5) Source(67, 16) + SourceIndex(0) name (C5T5) 2 >Emitted(68, 13) Source(67, 53) + SourceIndex(0) name (C5T5) 3 >Emitted(68, 14) Source(67, 54) + SourceIndex(0) name (C5T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> C5T5.foo = function (i, s) { +1->^^^^ 2 > ^^^^^^^^ 3 > ^^^ 4 > ^^^^^^^^^^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 > foo @@ -1192,44 +1223,46 @@ sourceFile:contextualTyping.ts 6 >Emitted(69, 29) Source(68, 23) + SourceIndex(0) name (C5T5) 7 >Emitted(69, 30) Source(68, 24) + SourceIndex(0) name (C5T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return s; +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { > 2 > return 3 > 4 > s 5 > ; -1->Emitted(70, 9) Source(69, 9) + SourceIndex(0) +1 >Emitted(70, 9) Source(69, 9) + SourceIndex(0) 2 >Emitted(70, 15) Source(69, 15) + SourceIndex(0) 3 >Emitted(70, 16) Source(69, 16) + SourceIndex(0) 4 >Emitted(70, 17) Source(69, 17) + SourceIndex(0) 5 >Emitted(70, 18) Source(69, 18) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> }; +1 >^^^^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^-> +1 > > 2 > } 3 > -1->Emitted(71, 5) Source(70, 5) + SourceIndex(0) +1 >Emitted(71, 5) Source(70, 5) + SourceIndex(0) 2 >Emitted(71, 6) Source(70, 6) + SourceIndex(0) 3 >Emitted(71, 7) Source(70, 6) + SourceIndex(0) name (C5T5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>})(C5T5 || (C5T5 = {})); +1-> 2 >^ 3 > ^^ 4 > ^^^^ 5 > ^^^^^ 6 > ^^^^ 7 > ^^^^^^^^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^^^^^^^^-> 1-> > 2 >} @@ -1251,10 +1284,10 @@ sourceFile:contextualTyping.ts 6 >Emitted(72, 17) Source(66, 12) + SourceIndex(0) 7 >Emitted(72, 25) Source(71, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Variable assignment +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Variable assignment @@ -1265,24 +1298,25 @@ sourceFile:contextualTyping.ts 2 >Emitted(73, 1) Source(73, 1) + SourceIndex(0) 3 >Emitted(73, 32) Source(73, 32) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var c6t5; +1 >^^^^ 2 > ^^^^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^-> +1 > >var 2 > c6t5: (n: number) => IFoo 3 > ; -1->Emitted(74, 5) Source(74, 5) + SourceIndex(0) +1 >Emitted(74, 5) Source(74, 5) + SourceIndex(0) 2 >Emitted(74, 9) Source(74, 30) + SourceIndex(0) 3 >Emitted(74, 10) Source(74, 31) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>c6t5 = function (n) { +1-> 2 >^^^^ 3 > ^^^ 4 > ^^^^^^^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >c6t5 @@ -1295,22 +1329,22 @@ sourceFile:contextualTyping.ts 4 >Emitted(75, 18) Source(75, 38) + SourceIndex(0) 5 >Emitted(75, 19) Source(75, 39) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(76, 5) Source(75, 43) + SourceIndex(0) +1 >Emitted(76, 5) Source(75, 43) + SourceIndex(0) 2 >Emitted(76, 11) Source(75, 49) + SourceIndex(0) 3 >Emitted(76, 12) Source(75, 56) + SourceIndex(0) 4 >Emitted(76, 13) Source(75, 57) + SourceIndex(0) @@ -1318,21 +1352,22 @@ sourceFile:contextualTyping.ts 6 >Emitted(76, 16) Source(75, 60) + SourceIndex(0) 7 >Emitted(76, 17) Source(75, 60) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(77, 1) Source(75, 61) + SourceIndex(0) +1 >Emitted(77, 1) Source(75, 61) + SourceIndex(0) 2 >Emitted(77, 2) Source(75, 62) + SourceIndex(0) 3 >Emitted(77, 3) Source(75, 63) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Array index assignment +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Array index assignment @@ -1343,19 +1378,21 @@ sourceFile:contextualTyping.ts 2 >Emitted(78, 1) Source(77, 1) + SourceIndex(0) 3 >Emitted(78, 35) Source(77, 35) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var c7t2; +1 >^^^^ 2 > ^^^^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^-> +1 > >var 2 > c7t2: IFoo[] 3 > ; -1->Emitted(79, 5) Source(78, 5) + SourceIndex(0) +1 >Emitted(79, 5) Source(78, 5) + SourceIndex(0) 2 >Emitted(79, 9) Source(78, 17) + SourceIndex(0) 3 >Emitted(79, 10) Source(78, 18) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>c7t2[0] = ({ n: 1 }); +1-> 2 >^^^^ 3 > ^ 4 > ^ @@ -1369,7 +1406,6 @@ sourceFile:contextualTyping.ts 12> ^^ 13> ^ 14> ^ -15> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >c7t2 @@ -1400,7 +1436,8 @@ sourceFile:contextualTyping.ts 13>Emitted(80, 21) Source(79, 25) + SourceIndex(0) 14>Emitted(80, 22) Source(79, 26) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var objc8 = ({}); +1 > 2 >^^^^ 3 > ^^^^^ 4 > ^^^ @@ -1408,8 +1445,8 @@ sourceFile:contextualTyping.ts 6 > ^^ 7 > ^ 8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +9 > ^^^^^^^^^^-> +1 > > >// CONTEXT: Object property assignment >interface IPlaceHolder { @@ -1458,7 +1495,7 @@ sourceFile:contextualTyping.ts 6 > {} 7 > ) 8 > ; -1->Emitted(81, 1) Source(102, 1) + SourceIndex(0) +1 >Emitted(81, 1) Source(102, 1) + SourceIndex(0) 2 >Emitted(81, 5) Source(102, 5) + SourceIndex(0) 3 >Emitted(81, 10) Source(102, 10) + SourceIndex(0) 4 >Emitted(81, 13) Source(120, 19) + SourceIndex(0) @@ -1467,7 +1504,8 @@ sourceFile:contextualTyping.ts 7 >Emitted(81, 17) Source(120, 23) + SourceIndex(0) 8 >Emitted(81, 18) Source(120, 24) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t1 = (function (s) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ @@ -1475,7 +1513,6 @@ sourceFile:contextualTyping.ts 6 > ^ 7 > ^^^^^^^^^^ 8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -1495,44 +1532,45 @@ sourceFile:contextualTyping.ts 7 >Emitted(82, 23) Source(122, 22) + SourceIndex(0) 8 >Emitted(82, 24) Source(122, 23) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > -1->Emitted(83, 5) Source(122, 27) + SourceIndex(0) +1 >Emitted(83, 5) Source(122, 27) + SourceIndex(0) 2 >Emitted(83, 11) Source(122, 33) + SourceIndex(0) 3 >Emitted(83, 12) Source(122, 34) + SourceIndex(0) 4 >Emitted(83, 13) Source(122, 35) + SourceIndex(0) 5 >Emitted(83, 14) Source(122, 35) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}); +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^-> +1 > 2 >} 3 > ) 4 > ; -1->Emitted(84, 1) Source(122, 36) + SourceIndex(0) +1 >Emitted(84, 1) Source(122, 36) + SourceIndex(0) 2 >Emitted(84, 2) Source(122, 37) + SourceIndex(0) 3 >Emitted(84, 3) Source(122, 38) + SourceIndex(0) 4 >Emitted(84, 4) Source(122, 39) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t2 = ({ +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1547,41 +1585,43 @@ sourceFile:contextualTyping.ts 5 >Emitted(85, 12) Source(123, 18) + SourceIndex(0) 6 >Emitted(85, 13) Source(123, 19) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> n: 1 +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > n 3 > : 4 > 1 -1->Emitted(86, 5) Source(124, 5) + SourceIndex(0) +1 >Emitted(86, 5) Source(124, 5) + SourceIndex(0) 2 >Emitted(86, 6) Source(124, 6) + SourceIndex(0) 3 >Emitted(86, 8) Source(124, 8) + SourceIndex(0) 4 >Emitted(86, 9) Source(124, 9) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > ; -1->Emitted(87, 2) Source(125, 2) + SourceIndex(0) +1 >Emitted(87, 2) Source(125, 2) + SourceIndex(0) 2 >Emitted(87, 3) Source(125, 3) + SourceIndex(0) 3 >Emitted(87, 4) Source(125, 4) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t3 = []; +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1598,12 +1638,13 @@ sourceFile:contextualTyping.ts 6 >Emitted(88, 14) Source(126, 14) + SourceIndex(0) 7 >Emitted(88, 15) Source(126, 15) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t4 = function () { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^^^^^-> 1-> > 2 >objc8 @@ -1616,14 +1657,14 @@ sourceFile:contextualTyping.ts 4 >Emitted(89, 9) Source(127, 9) + SourceIndex(0) 5 >Emitted(89, 12) Source(127, 12) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->function() { 2 > return 3 > @@ -1639,25 +1680,26 @@ sourceFile:contextualTyping.ts 6 >Emitted(90, 16) Source(127, 42) + SourceIndex(0) 7 >Emitted(90, 17) Source(127, 42) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(91, 1) Source(127, 43) + SourceIndex(0) +1 >Emitted(91, 1) Source(127, 43) + SourceIndex(0) 2 >Emitted(91, 2) Source(127, 44) + SourceIndex(0) 3 >Emitted(91, 3) Source(127, 45) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t5 = function (n) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ 6 > ^^^^^^^^^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1674,22 +1716,22 @@ sourceFile:contextualTyping.ts 6 >Emitted(92, 22) Source(128, 21) + SourceIndex(0) 7 >Emitted(92, 23) Source(128, 22) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(93, 5) Source(128, 26) + SourceIndex(0) +1 >Emitted(93, 5) Source(128, 26) + SourceIndex(0) 2 >Emitted(93, 11) Source(128, 32) + SourceIndex(0) 3 >Emitted(93, 12) Source(128, 39) + SourceIndex(0) 4 >Emitted(93, 13) Source(128, 40) + SourceIndex(0) @@ -1697,18 +1739,20 @@ sourceFile:contextualTyping.ts 6 >Emitted(93, 16) Source(128, 43) + SourceIndex(0) 7 >Emitted(93, 17) Source(128, 43) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(94, 1) Source(128, 44) + SourceIndex(0) +1 >Emitted(94, 1) Source(128, 44) + SourceIndex(0) 2 >Emitted(94, 2) Source(128, 45) + SourceIndex(0) 3 >Emitted(94, 3) Source(128, 46) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t6 = function (n, s) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ @@ -1717,7 +1761,6 @@ sourceFile:contextualTyping.ts 7 > ^ 8 > ^^ 9 > ^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1738,22 +1781,22 @@ sourceFile:contextualTyping.ts 8 >Emitted(95, 25) Source(129, 24) + SourceIndex(0) 9 >Emitted(95, 26) Source(129, 25) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(96, 5) Source(129, 29) + SourceIndex(0) +1 >Emitted(96, 5) Source(129, 29) + SourceIndex(0) 2 >Emitted(96, 11) Source(129, 35) + SourceIndex(0) 3 >Emitted(96, 12) Source(129, 42) + SourceIndex(0) 4 >Emitted(96, 13) Source(129, 43) + SourceIndex(0) @@ -1761,25 +1804,26 @@ sourceFile:contextualTyping.ts 6 >Emitted(96, 16) Source(129, 46) + SourceIndex(0) 7 >Emitted(96, 17) Source(129, 46) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(97, 1) Source(129, 47) + SourceIndex(0) +1 >Emitted(97, 1) Source(129, 47) + SourceIndex(0) 2 >Emitted(97, 2) Source(129, 48) + SourceIndex(0) 3 >Emitted(97, 3) Source(129, 49) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t7 = function (n) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ 6 > ^^^^^^^^^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1796,42 +1840,43 @@ sourceFile:contextualTyping.ts 6 >Emitted(98, 22) Source(130, 21) + SourceIndex(0) 7 >Emitted(98, 23) Source(130, 30) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > -1->Emitted(99, 5) Source(130, 34) + SourceIndex(0) +1 >Emitted(99, 5) Source(130, 34) + SourceIndex(0) 2 >Emitted(99, 11) Source(130, 40) + SourceIndex(0) 3 >Emitted(99, 12) Source(130, 41) + SourceIndex(0) 4 >Emitted(99, 13) Source(130, 42) + SourceIndex(0) 5 >Emitted(99, 14) Source(130, 42) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(100, 1) Source(130, 43) + SourceIndex(0) +1 >Emitted(100, 1) Source(130, 43) + SourceIndex(0) 2 >Emitted(100, 2) Source(130, 44) + SourceIndex(0) 3 >Emitted(100, 3) Source(130, 45) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t8 = function (n) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^ 5 > ^^^ 6 > ^^^^^^^^^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -1849,35 +1894,37 @@ sourceFile:contextualTyping.ts 6 >Emitted(101, 22) Source(132, 21) + SourceIndex(0) 7 >Emitted(101, 23) Source(132, 22) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > ; -1->Emitted(102, 5) Source(132, 26) + SourceIndex(0) +1 >Emitted(102, 5) Source(132, 26) + SourceIndex(0) 2 >Emitted(102, 11) Source(132, 32) + SourceIndex(0) 3 >Emitted(102, 12) Source(132, 33) + SourceIndex(0) 4 >Emitted(102, 13) Source(132, 34) + SourceIndex(0) 5 >Emitted(102, 14) Source(132, 35) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(103, 1) Source(132, 36) + SourceIndex(0) +1 >Emitted(103, 1) Source(132, 36) + SourceIndex(0) 2 >Emitted(103, 2) Source(132, 37) + SourceIndex(0) 3 >Emitted(103, 3) Source(132, 38) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t9 = [[], []]; +1-> 2 >^^^^^ 3 > ^ 4 > ^^ @@ -1888,7 +1935,7 @@ sourceFile:contextualTyping.ts 9 > ^^ 10> ^ 11> ^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +12> ^^^^^^-> 1-> > 2 >objc8 @@ -1913,7 +1960,8 @@ sourceFile:contextualTyping.ts 10>Emitted(104, 20) Source(133, 19) + SourceIndex(0) 11>Emitted(104, 21) Source(133, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t10 = [({}), ({})]; +1-> 2 >^^^^^ 3 > ^ 4 > ^^^ @@ -1928,7 +1976,7 @@ sourceFile:contextualTyping.ts 13> ^ 14> ^ 15> ^ -16> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +16> ^^^^^^-> 1-> > 2 >objc8 @@ -1961,7 +2009,8 @@ sourceFile:contextualTyping.ts 14>Emitted(105, 25) Source(134, 36) + SourceIndex(0) 15>Emitted(105, 26) Source(134, 37) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t11 = [function (n, s) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^^ @@ -1971,7 +2020,6 @@ sourceFile:contextualTyping.ts 8 > ^ 9 > ^^ 10> ^ -11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -1994,43 +2042,45 @@ sourceFile:contextualTyping.ts 9 >Emitted(106, 27) Source(135, 26) + SourceIndex(0) 10>Emitted(106, 28) Source(135, 27) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(107, 5) Source(135, 31) + SourceIndex(0) +1 >Emitted(107, 5) Source(135, 31) + SourceIndex(0) 2 >Emitted(107, 11) Source(135, 37) + SourceIndex(0) 3 >Emitted(107, 12) Source(135, 38) + SourceIndex(0) 4 >Emitted(107, 13) Source(135, 39) + SourceIndex(0) 5 >Emitted(107, 14) Source(135, 40) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}]; +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^-> +1 > 2 >} 3 > ] 4 > ; -1->Emitted(108, 1) Source(135, 41) + SourceIndex(0) +1 >Emitted(108, 1) Source(135, 41) + SourceIndex(0) 2 >Emitted(108, 2) Source(135, 42) + SourceIndex(0) 3 >Emitted(108, 3) Source(135, 43) + SourceIndex(0) 4 >Emitted(108, 4) Source(135, 44) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t12 = { +1-> 2 >^^^^^ 3 > ^ 4 > ^^^ 5 > ^^^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^-> 1-> > 2 >objc8 @@ -2043,13 +2093,13 @@ sourceFile:contextualTyping.ts 4 >Emitted(109, 10) Source(136, 10) + SourceIndex(0) 5 >Emitted(109, 13) Source(136, 13) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> foo: ({}) +1->^^^^ 2 > ^^^ 3 > ^^ 4 > ^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > foo @@ -2064,22 +2114,24 @@ sourceFile:contextualTyping.ts 5 >Emitted(110, 13) Source(137, 19) + SourceIndex(0) 6 >Emitted(110, 14) Source(137, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}; +1 >^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^-> +1 > >} 2 > -1->Emitted(111, 2) Source(138, 2) + SourceIndex(0) +1 >Emitted(111, 2) Source(138, 2) + SourceIndex(0) 2 >Emitted(111, 3) Source(138, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t13 = ({ +1-> 2 >^^^^^ 3 > ^ 4 > ^^^ 5 > ^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +7 > ^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -2094,14 +2146,14 @@ sourceFile:contextualTyping.ts 5 >Emitted(112, 13) Source(139, 19) + SourceIndex(0) 6 >Emitted(112, 14) Source(139, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> f: function (i, s) { +1->^^^^ 2 > ^ 3 > ^^ 4 > ^^^^^^^^^^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > f @@ -2118,50 +2170,51 @@ sourceFile:contextualTyping.ts 6 >Emitted(113, 21) Source(140, 20) + SourceIndex(0) 7 >Emitted(113, 22) Source(140, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return s; +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(114, 9) Source(140, 25) + SourceIndex(0) +1 >Emitted(114, 9) Source(140, 25) + SourceIndex(0) 2 >Emitted(114, 15) Source(140, 31) + SourceIndex(0) 3 >Emitted(114, 16) Source(140, 32) + SourceIndex(0) 4 >Emitted(114, 17) Source(140, 33) + SourceIndex(0) 5 >Emitted(114, 18) Source(140, 34) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 > } -1->Emitted(115, 5) Source(140, 35) + SourceIndex(0) +1 >Emitted(115, 5) Source(140, 35) + SourceIndex(0) 2 >Emitted(115, 6) Source(140, 36) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(116, 2) Source(141, 2) + SourceIndex(0) +1 >Emitted(116, 2) Source(141, 2) + SourceIndex(0) 2 >Emitted(116, 3) Source(141, 3) + SourceIndex(0) 3 >Emitted(116, 4) Source(141, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>objc8.t14 = ({ +1-> 2 >^^^^^ 3 > ^ 4 > ^^^ 5 > ^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >objc8 @@ -2176,37 +2229,38 @@ sourceFile:contextualTyping.ts 5 >Emitted(117, 13) Source(142, 19) + SourceIndex(0) 6 >Emitted(117, 14) Source(142, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> a: [] +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > a 3 > : 4 > [] -1->Emitted(118, 5) Source(143, 5) + SourceIndex(0) +1 >Emitted(118, 5) Source(143, 5) + SourceIndex(0) 2 >Emitted(118, 6) Source(143, 6) + SourceIndex(0) 3 >Emitted(118, 8) Source(143, 8) + SourceIndex(0) 4 >Emitted(118, 10) Source(143, 10) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(119, 2) Source(144, 2) + SourceIndex(0) +1 >Emitted(119, 2) Source(144, 2) + SourceIndex(0) 2 >Emitted(119, 3) Source(144, 3) + SourceIndex(0) 3 >Emitted(119, 4) Source(144, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Function call +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> >// CONTEXT: Function call > @@ -2216,43 +2270,46 @@ sourceFile:contextualTyping.ts 2 >Emitted(120, 1) Source(145, 1) + SourceIndex(0) 3 >Emitted(120, 26) Source(145, 26) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^^ +>>>function c9t5(f) { +1 >^^^^^^^^^ 2 > ^^^^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > >function 2 > c9t5 3 > ( 4 > f: (n: number) => IFoo -1->Emitted(121, 10) Source(146, 10) + SourceIndex(0) +1 >Emitted(121, 10) Source(146, 10) + SourceIndex(0) 2 >Emitted(121, 14) Source(146, 14) + SourceIndex(0) 3 >Emitted(121, 15) Source(146, 15) + SourceIndex(0) 4 >Emitted(121, 16) Source(146, 37) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>} +1 > 2 >^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +3 > ^-> +1 >) { 2 >} -1->Emitted(122, 1) Source(146, 40) + SourceIndex(0) name (c9t5) +1 >Emitted(122, 1) Source(146, 40) + SourceIndex(0) name (c9t5) 2 >Emitted(122, 2) Source(146, 41) + SourceIndex(0) name (c9t5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>; +1-> 2 >^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^-> 1-> 2 >; 1->Emitted(123, 1) Source(146, 41) + SourceIndex(0) 2 >Emitted(123, 2) Source(146, 42) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>c9t5(function (n) { +1-> 2 >^^^^ 3 > ^ 4 > ^^^^^^^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^-> 1-> > 2 >c9t5 @@ -2265,14 +2322,14 @@ sourceFile:contextualTyping.ts 4 >Emitted(124, 16) Source(147, 15) + SourceIndex(0) 5 >Emitted(124, 17) Source(147, 16) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->) { > 2 > return @@ -2289,25 +2346,26 @@ sourceFile:contextualTyping.ts 6 >Emitted(125, 16) Source(148, 22) + SourceIndex(0) 7 >Emitted(125, 17) Source(148, 23) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}); +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > > 2 >} 3 > ) 4 > ; -1->Emitted(126, 1) Source(149, 1) + SourceIndex(0) +1 >Emitted(126, 1) Source(149, 1) + SourceIndex(0) 2 >Emitted(126, 2) Source(149, 2) + SourceIndex(0) 3 >Emitted(126, 3) Source(149, 3) + SourceIndex(0) 4 >Emitted(126, 4) Source(149, 4) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Return statement +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Return statement @@ -2318,24 +2376,25 @@ sourceFile:contextualTyping.ts 2 >Emitted(127, 1) Source(151, 1) + SourceIndex(0) 3 >Emitted(127, 29) Source(151, 29) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var c10t5 = function () { +1 >^^^^ 2 > ^^^^^ 3 > ^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^-> +1 > >var 2 > c10t5 3 > : () => (n: number) => IFoo = -1->Emitted(128, 5) Source(152, 5) + SourceIndex(0) +1 >Emitted(128, 5) Source(152, 5) + SourceIndex(0) 2 >Emitted(128, 10) Source(152, 10) + SourceIndex(0) 3 >Emitted(128, 13) Source(152, 40) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return function (n) { +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^^^^^^^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->function() { 2 > return 3 > @@ -2347,22 +2406,22 @@ sourceFile:contextualTyping.ts 4 >Emitted(129, 22) Source(152, 69) + SourceIndex(0) 5 >Emitted(129, 23) Source(152, 70) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return ({}); +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(130, 9) Source(152, 74) + SourceIndex(0) +1 >Emitted(130, 9) Source(152, 74) + SourceIndex(0) 2 >Emitted(130, 15) Source(152, 80) + SourceIndex(0) 3 >Emitted(130, 16) Source(152, 87) + SourceIndex(0) 4 >Emitted(130, 17) Source(152, 88) + SourceIndex(0) @@ -2370,32 +2429,34 @@ sourceFile:contextualTyping.ts 6 >Emitted(130, 20) Source(152, 91) + SourceIndex(0) 7 >Emitted(130, 21) Source(152, 91) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> }; +1 >^^^^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 > } 3 > -1->Emitted(131, 5) Source(152, 92) + SourceIndex(0) +1 >Emitted(131, 5) Source(152, 92) + SourceIndex(0) 2 >Emitted(131, 6) Source(152, 93) + SourceIndex(0) 3 >Emitted(131, 7) Source(152, 93) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(132, 1) Source(152, 94) + SourceIndex(0) +1 >Emitted(132, 1) Source(152, 94) + SourceIndex(0) 2 >Emitted(132, 2) Source(152, 95) + SourceIndex(0) 3 >Emitted(132, 3) Source(152, 96) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Newing a class +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +4 > ^-> 1-> > >// CONTEXT: Newing a class @@ -2406,21 +2467,22 @@ sourceFile:contextualTyping.ts 2 >Emitted(133, 1) Source(154, 1) + SourceIndex(0) 3 >Emitted(133, 27) Source(154, 27) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var C11t5 = (function () { +1->^^^^ 2 > ^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^-> 1-> >class 2 > C11t5 1->Emitted(134, 5) Source(155, 7) + SourceIndex(0) 2 >Emitted(134, 10) Source(155, 12) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> function C11t5(f) { +1->^^^^ 2 > ^^^^^^^^^ 3 > ^^^^^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> { 2 > 3 > C11t5 @@ -2432,45 +2494,48 @@ sourceFile:contextualTyping.ts 4 >Emitted(135, 20) Source(155, 27) + SourceIndex(0) name (C11t5) 5 >Emitted(135, 21) Source(155, 49) + SourceIndex(0) name (C11t5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +3 > ^^^^^^^^^^^^^-> +1 >) { 2 > } -1->Emitted(136, 5) Source(155, 53) + SourceIndex(0) name (C11t5.constructor) +1 >Emitted(136, 5) Source(155, 53) + SourceIndex(0) name (C11t5.constructor) 2 >Emitted(136, 6) Source(155, 54) + SourceIndex(0) name (C11t5.constructor) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return C11t5; +1->^^^^ 2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> 2 > } 1->Emitted(137, 5) Source(155, 55) + SourceIndex(0) name (C11t5) 2 >Emitted(137, 17) Source(155, 56) + SourceIndex(0) name (C11t5) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>})(); +1 > 2 >^ 3 > 4 > ^^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 >} 3 > 4 > class C11t5 { constructor(f: (n: number) => IFoo) { } } -1->Emitted(138, 1) Source(155, 55) + SourceIndex(0) name (C11t5) +1 >Emitted(138, 1) Source(155, 55) + SourceIndex(0) name (C11t5) 2 >Emitted(138, 2) Source(155, 56) + SourceIndex(0) name (C11t5) 3 >Emitted(138, 2) Source(155, 1) + SourceIndex(0) 4 >Emitted(138, 6) Source(155, 56) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>; +1 > 2 >^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >; -1->Emitted(139, 1) Source(155, 56) + SourceIndex(0) +1 >Emitted(139, 1) Source(155, 56) + SourceIndex(0) 2 >Emitted(139, 2) Source(155, 57) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var i = new C11t5(function (n) { +1-> 2 >^^^^ 3 > ^ 4 > ^^^ @@ -2479,7 +2544,6 @@ sourceFile:contextualTyping.ts 7 > ^ 8 > ^^^^^^^^^^ 9 > ^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -2500,22 +2564,22 @@ sourceFile:contextualTyping.ts 8 >Emitted(140, 29) Source(156, 28) + SourceIndex(0) 9 >Emitted(140, 30) Source(156, 29) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(141, 5) Source(156, 33) + SourceIndex(0) +1 >Emitted(141, 5) Source(156, 33) + SourceIndex(0) 2 >Emitted(141, 11) Source(156, 39) + SourceIndex(0) 3 >Emitted(141, 12) Source(156, 46) + SourceIndex(0) 4 >Emitted(141, 13) Source(156, 47) + SourceIndex(0) @@ -2523,24 +2587,25 @@ sourceFile:contextualTyping.ts 6 >Emitted(141, 16) Source(156, 50) + SourceIndex(0) 7 >Emitted(141, 17) Source(156, 50) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}); +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ) 4 > ; -1->Emitted(142, 1) Source(156, 51) + SourceIndex(0) +1 >Emitted(142, 1) Source(156, 51) + SourceIndex(0) 2 >Emitted(142, 2) Source(156, 52) + SourceIndex(0) 3 >Emitted(142, 3) Source(156, 53) + SourceIndex(0) 4 >Emitted(142, 4) Source(156, 54) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>// CONTEXT: Type annotated expression +1-> 2 > 3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >// CONTEXT: Type annotated expression @@ -2551,64 +2616,65 @@ sourceFile:contextualTyping.ts 2 >Emitted(143, 1) Source(158, 1) + SourceIndex(0) 3 >Emitted(143, 38) Source(158, 38) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>>var c12t1 = (function (s) { +1 >^^^^ 2 > ^^^^^ 3 > ^^^ 4 > ^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > >var 2 > c12t1 3 > = <(s: string) => string> 4 > ( 5 > function( 6 > s -1->Emitted(144, 5) Source(159, 5) + SourceIndex(0) +1 >Emitted(144, 5) Source(159, 5) + SourceIndex(0) 2 >Emitted(144, 10) Source(159, 10) + SourceIndex(0) 3 >Emitted(144, 13) Source(159, 37) + SourceIndex(0) 4 >Emitted(144, 14) Source(159, 38) + SourceIndex(0) 5 >Emitted(144, 24) Source(159, 47) + SourceIndex(0) 6 >Emitted(144, 25) Source(159, 48) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > -1->Emitted(145, 5) Source(159, 52) + SourceIndex(0) +1 >Emitted(145, 5) Source(159, 52) + SourceIndex(0) 2 >Emitted(145, 11) Source(159, 58) + SourceIndex(0) 3 >Emitted(145, 12) Source(159, 59) + SourceIndex(0) 4 >Emitted(145, 13) Source(159, 60) + SourceIndex(0) 5 >Emitted(145, 14) Source(159, 60) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}); +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^-> +1 > 2 >} 3 > ) 4 > ; -1->Emitted(146, 1) Source(159, 61) + SourceIndex(0) +1 >Emitted(146, 1) Source(159, 61) + SourceIndex(0) 2 >Emitted(146, 2) Source(159, 62) + SourceIndex(0) 3 >Emitted(146, 3) Source(159, 63) + SourceIndex(0) 4 >Emitted(146, 4) Source(159, 64) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t2 = ({ +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -2621,40 +2687,42 @@ sourceFile:contextualTyping.ts 4 >Emitted(147, 13) Source(160, 20) + SourceIndex(0) 5 >Emitted(147, 14) Source(160, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> n: 1 +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > n 3 > : 4 > 1 -1->Emitted(148, 5) Source(161, 5) + SourceIndex(0) +1 >Emitted(148, 5) Source(161, 5) + SourceIndex(0) 2 >Emitted(148, 6) Source(161, 6) + SourceIndex(0) 3 >Emitted(148, 8) Source(161, 8) + SourceIndex(0) 4 >Emitted(148, 9) Source(161, 9) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > ; -1->Emitted(149, 2) Source(162, 2) + SourceIndex(0) +1 >Emitted(149, 2) Source(162, 2) + SourceIndex(0) 2 >Emitted(149, 3) Source(162, 3) + SourceIndex(0) 3 >Emitted(149, 4) Source(162, 4) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t3 = []; +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +7 > ^^^^^^^^^^^-> 1-> > 2 >var @@ -2669,11 +2737,12 @@ sourceFile:contextualTyping.ts 5 >Emitted(150, 15) Source(163, 26) + SourceIndex(0) 6 >Emitted(150, 16) Source(163, 27) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t4 = function () { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^^^^^-> 1-> > 2 >var @@ -2684,14 +2753,14 @@ sourceFile:contextualTyping.ts 3 >Emitted(151, 10) Source(164, 10) + SourceIndex(0) 4 >Emitted(151, 13) Source(164, 26) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->function() { 2 > return 3 > @@ -2707,24 +2776,25 @@ sourceFile:contextualTyping.ts 6 >Emitted(152, 16) Source(164, 56) + SourceIndex(0) 7 >Emitted(152, 17) Source(164, 56) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(153, 1) Source(164, 57) + SourceIndex(0) +1 >Emitted(153, 1) Source(164, 57) + SourceIndex(0) 2 >Emitted(153, 2) Source(164, 58) + SourceIndex(0) 3 >Emitted(153, 3) Source(164, 59) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t5 = function (n) { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -2739,22 +2809,22 @@ sourceFile:contextualTyping.ts 5 >Emitted(154, 23) Source(165, 44) + SourceIndex(0) 6 >Emitted(154, 24) Source(165, 45) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(155, 5) Source(165, 49) + SourceIndex(0) +1 >Emitted(155, 5) Source(165, 49) + SourceIndex(0) 2 >Emitted(155, 11) Source(165, 55) + SourceIndex(0) 3 >Emitted(155, 12) Source(165, 62) + SourceIndex(0) 4 >Emitted(155, 13) Source(165, 63) + SourceIndex(0) @@ -2762,18 +2832,20 @@ sourceFile:contextualTyping.ts 6 >Emitted(155, 16) Source(165, 66) + SourceIndex(0) 7 >Emitted(155, 17) Source(165, 66) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(156, 1) Source(165, 67) + SourceIndex(0) +1 >Emitted(156, 1) Source(165, 67) + SourceIndex(0) 2 >Emitted(156, 2) Source(165, 68) + SourceIndex(0) 3 >Emitted(156, 3) Source(165, 69) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t6 = function (n, s) { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ @@ -2781,7 +2853,6 @@ sourceFile:contextualTyping.ts 6 > ^ 7 > ^^ 8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -2800,22 +2871,22 @@ sourceFile:contextualTyping.ts 7 >Emitted(157, 26) Source(166, 58) + SourceIndex(0) 8 >Emitted(157, 27) Source(166, 59) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return ({}); +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > ( 5 > {} 6 > ) 7 > -1->Emitted(158, 5) Source(166, 63) + SourceIndex(0) +1 >Emitted(158, 5) Source(166, 63) + SourceIndex(0) 2 >Emitted(158, 11) Source(166, 69) + SourceIndex(0) 3 >Emitted(158, 12) Source(166, 76) + SourceIndex(0) 4 >Emitted(158, 13) Source(166, 77) + SourceIndex(0) @@ -2823,24 +2894,25 @@ sourceFile:contextualTyping.ts 6 >Emitted(158, 16) Source(166, 80) + SourceIndex(0) 7 >Emitted(158, 17) Source(166, 80) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(159, 1) Source(166, 81) + SourceIndex(0) +1 >Emitted(159, 1) Source(166, 81) + SourceIndex(0) 2 >Emitted(159, 2) Source(166, 82) + SourceIndex(0) 3 >Emitted(159, 3) Source(166, 83) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t7 = function (n) { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -2858,41 +2930,42 @@ sourceFile:contextualTyping.ts 5 >Emitted(160, 23) Source(170, 13) + SourceIndex(0) 6 >Emitted(160, 24) Source(170, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > -1->Emitted(161, 5) Source(170, 25) + SourceIndex(0) +1 >Emitted(161, 5) Source(170, 25) + SourceIndex(0) 2 >Emitted(161, 11) Source(170, 31) + SourceIndex(0) 3 >Emitted(161, 12) Source(170, 32) + SourceIndex(0) 4 >Emitted(161, 13) Source(170, 33) + SourceIndex(0) 5 >Emitted(161, 14) Source(170, 33) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(162, 1) Source(170, 34) + SourceIndex(0) +1 >Emitted(162, 1) Source(170, 34) + SourceIndex(0) 2 >Emitted(162, 2) Source(170, 35) + SourceIndex(0) 3 >Emitted(162, 3) Source(170, 36) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t8 = function (n) { +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ 5 > ^^^^^^^^^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -2908,35 +2981,37 @@ sourceFile:contextualTyping.ts 5 >Emitted(163, 23) Source(172, 57) + SourceIndex(0) 6 >Emitted(163, 24) Source(172, 58) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return n; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > n 5 > ; -1->Emitted(164, 5) Source(172, 62) + SourceIndex(0) +1 >Emitted(164, 5) Source(172, 62) + SourceIndex(0) 2 >Emitted(164, 11) Source(172, 68) + SourceIndex(0) 3 >Emitted(164, 12) Source(172, 69) + SourceIndex(0) 4 >Emitted(164, 13) Source(172, 70) + SourceIndex(0) 5 >Emitted(164, 14) Source(172, 71) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} 3 > ; -1->Emitted(165, 1) Source(172, 72) + SourceIndex(0) +1 >Emitted(165, 1) Source(172, 72) + SourceIndex(0) 2 >Emitted(165, 2) Source(172, 73) + SourceIndex(0) 3 >Emitted(165, 3) Source(172, 74) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t9 = [[], []]; +1-> 2 >^^^^ 3 > ^^^^^ 4 > ^^^ @@ -2946,7 +3021,7 @@ sourceFile:contextualTyping.ts 8 > ^^ 9 > ^ 10> ^ -11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +11> ^^^^^^-> 1-> > 2 >var @@ -2969,7 +3044,8 @@ sourceFile:contextualTyping.ts 9 >Emitted(166, 21) Source(173, 33) + SourceIndex(0) 10>Emitted(166, 22) Source(173, 34) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t10 = [({}), ({})]; +1-> 2 >^^^^ 3 > ^^^^^^ 4 > ^^^ @@ -2983,7 +3059,7 @@ sourceFile:contextualTyping.ts 12> ^ 13> ^ 14> ^ -15> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +15> ^^^^^^-> 1-> > 2 >var @@ -3014,7 +3090,8 @@ sourceFile:contextualTyping.ts 13>Emitted(167, 26) Source(174, 46) + SourceIndex(0) 14>Emitted(167, 27) Source(174, 47) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t11 = [function (n, s) { +1-> 2 >^^^^ 3 > ^^^^^^ 4 > ^^^ @@ -3023,7 +3100,6 @@ sourceFile:contextualTyping.ts 7 > ^ 8 > ^^ 9 > ^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -3044,42 +3120,44 @@ sourceFile:contextualTyping.ts 8 >Emitted(168, 28) Source(175, 65) + SourceIndex(0) 9 >Emitted(168, 29) Source(175, 66) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return s; +1 >^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(169, 5) Source(175, 70) + SourceIndex(0) +1 >Emitted(169, 5) Source(175, 70) + SourceIndex(0) 2 >Emitted(169, 11) Source(175, 76) + SourceIndex(0) 3 >Emitted(169, 12) Source(175, 77) + SourceIndex(0) 4 >Emitted(169, 13) Source(175, 78) + SourceIndex(0) 5 >Emitted(169, 14) Source(175, 79) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}]; +1 > 2 >^ 3 > ^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +5 > ^^^^^^^^^^^^-> +1 > 2 >} 3 > ] 4 > ; -1->Emitted(170, 1) Source(175, 80) + SourceIndex(0) +1 >Emitted(170, 1) Source(175, 80) + SourceIndex(0) 2 >Emitted(170, 2) Source(175, 81) + SourceIndex(0) 3 >Emitted(170, 3) Source(175, 82) + SourceIndex(0) 4 >Emitted(170, 4) Source(175, 83) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t12 = { +1-> 2 >^^^^ 3 > ^^^^^^ 4 > ^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^-> 1-> > 2 >var @@ -3090,13 +3168,13 @@ sourceFile:contextualTyping.ts 3 >Emitted(171, 11) Source(176, 11) + SourceIndex(0) 4 >Emitted(171, 14) Source(176, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> foo: ({}) +1->^^^^ 2 > ^^^ 3 > ^^ 4 > ^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > foo @@ -3111,21 +3189,23 @@ sourceFile:contextualTyping.ts 5 >Emitted(172, 13) Source(177, 19) + SourceIndex(0) 6 >Emitted(172, 14) Source(177, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}; +1 >^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^-> +1 > >} 2 > -1->Emitted(173, 2) Source(178, 2) + SourceIndex(0) +1 >Emitted(173, 2) Source(178, 2) + SourceIndex(0) 2 >Emitted(173, 3) Source(178, 2) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t13 = ({ +1-> 2 >^^^^ 3 > ^^^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^^^^^^^^^^-> 1-> > 2 >var @@ -3138,14 +3218,14 @@ sourceFile:contextualTyping.ts 4 >Emitted(174, 14) Source(179, 21) + SourceIndex(0) 5 >Emitted(174, 15) Source(179, 22) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> f: function (i, s) { +1->^^^^ 2 > ^ 3 > ^^ 4 > ^^^^^^^^^^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->{ > 2 > f @@ -3162,49 +3242,50 @@ sourceFile:contextualTyping.ts 6 >Emitted(175, 21) Source(180, 20) + SourceIndex(0) 7 >Emitted(175, 22) Source(180, 21) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return s; +1 >^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +1 >) { 2 > return 3 > 4 > s 5 > ; -1->Emitted(176, 9) Source(180, 25) + SourceIndex(0) +1 >Emitted(176, 9) Source(180, 25) + SourceIndex(0) 2 >Emitted(176, 15) Source(180, 31) + SourceIndex(0) 3 >Emitted(176, 16) Source(180, 32) + SourceIndex(0) 4 >Emitted(176, 17) Source(180, 33) + SourceIndex(0) 5 >Emitted(176, 18) Source(180, 34) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 > } -1->Emitted(177, 5) Source(180, 35) + SourceIndex(0) +1 >Emitted(177, 5) Source(180, 35) + SourceIndex(0) 2 >Emitted(177, 6) Source(180, 36) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(178, 2) Source(181, 2) + SourceIndex(0) +1 >Emitted(178, 2) Source(181, 2) + SourceIndex(0) 2 >Emitted(178, 3) Source(181, 3) + SourceIndex(0) 3 >Emitted(178, 4) Source(181, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var c12t14 = ({ +1-> 2 >^^^^ 3 > ^^^^^^ 4 > ^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > 2 >var @@ -3217,41 +3298,43 @@ sourceFile:contextualTyping.ts 4 >Emitted(179, 14) Source(182, 21) + SourceIndex(0) 5 >Emitted(179, 15) Source(182, 22) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> a: [] +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +1 >{ > 2 > a 3 > : 4 > [] -1->Emitted(180, 5) Source(183, 5) + SourceIndex(0) +1 >Emitted(180, 5) Source(183, 5) + SourceIndex(0) 2 >Emitted(180, 6) Source(183, 6) + SourceIndex(0) 3 >Emitted(180, 8) Source(183, 8) + SourceIndex(0) 4 >Emitted(180, 10) Source(183, 10) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}); +1 >^ 2 > ^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^-> +1 > >} 2 > ) 3 > -1->Emitted(181, 2) Source(184, 2) + SourceIndex(0) +1 >Emitted(181, 2) Source(184, 2) + SourceIndex(0) 2 >Emitted(181, 3) Source(184, 3) + SourceIndex(0) 3 >Emitted(181, 4) Source(184, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>function EF1(a, b) { +1-> 2 >^^^^^^^^^ 3 > ^^^ 4 > ^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^-> 1-> > >// CONTEXT: Contextual typing declarations @@ -3274,14 +3357,14 @@ sourceFile:contextualTyping.ts 6 >Emitted(182, 17) Source(191, 16) + SourceIndex(0) 7 >Emitted(182, 18) Source(191, 17) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return a + b; +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^ 5 > ^^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->) { 2 > return 3 > @@ -3297,15 +3380,17 @@ sourceFile:contextualTyping.ts 6 >Emitted(183, 17) Source(191, 31) + SourceIndex(0) name (EF1) 7 >Emitted(183, 18) Source(191, 32) + SourceIndex(0) name (EF1) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>} +1 > 2 >^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^^^^^^^-> +1 > 2 >} -1->Emitted(184, 1) Source(191, 33) + SourceIndex(0) name (EF1) +1 >Emitted(184, 1) Source(191, 33) + SourceIndex(0) name (EF1) 2 >Emitted(184, 2) Source(191, 34) + SourceIndex(0) name (EF1) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var efv = EF1(1, 2); +1-> 2 >^^^^ 3 > ^^^ 4 > ^^^ @@ -3316,7 +3401,7 @@ sourceFile:contextualTyping.ts 9 > ^ 10> ^ 11> ^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +12> ^^^-> 1-> > > @@ -3342,14 +3427,14 @@ sourceFile:contextualTyping.ts 10>Emitted(185, 20) Source(193, 19) + SourceIndex(0) 11>Emitted(185, 21) Source(193, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>function Point(x, y) { +1-> 2 >^^^^^^^^^ 3 > ^^^^^ 4 > ^ 5 > ^ 6 > ^^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -3379,15 +3464,16 @@ sourceFile:contextualTyping.ts 6 >Emitted(186, 19) Source(207, 19) + SourceIndex(0) 7 >Emitted(186, 20) Source(207, 20) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> this.x = x; +1 >^^^^ 2 > ^^^^ 3 > ^ 4 > ^ 5 > ^^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +8 > ^-> +1 >) { > 2 > this 3 > . @@ -3395,7 +3481,7 @@ sourceFile:contextualTyping.ts 5 > = 6 > x 7 > ; -1->Emitted(187, 5) Source(208, 5) + SourceIndex(0) name (Point) +1 >Emitted(187, 5) Source(208, 5) + SourceIndex(0) name (Point) 2 >Emitted(187, 9) Source(208, 9) + SourceIndex(0) name (Point) 3 >Emitted(187, 10) Source(208, 10) + SourceIndex(0) name (Point) 4 >Emitted(187, 11) Source(208, 11) + SourceIndex(0) name (Point) @@ -3403,14 +3489,15 @@ sourceFile:contextualTyping.ts 6 >Emitted(187, 15) Source(208, 15) + SourceIndex(0) name (Point) 7 >Emitted(187, 16) Source(208, 16) + SourceIndex(0) name (Point) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> this.y = y; +1->^^^^ 2 > ^^^^ 3 > ^ 4 > ^ 5 > ^^^ 6 > ^ 7 > ^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^^-> 1-> > 2 > this @@ -3427,12 +3514,12 @@ sourceFile:contextualTyping.ts 6 >Emitted(188, 15) Source(209, 15) + SourceIndex(0) name (Point) 7 >Emitted(188, 16) Source(209, 16) + SourceIndex(0) name (Point) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return this; +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -3446,16 +3533,18 @@ sourceFile:contextualTyping.ts 4 >Emitted(189, 16) Source(211, 16) + SourceIndex(0) name (Point) 5 >Emitted(189, 17) Source(211, 17) + SourceIndex(0) name (Point) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>} +1 > 2 >^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > > 2 >} -1->Emitted(190, 1) Source(212, 1) + SourceIndex(0) name (Point) +1 >Emitted(190, 1) Source(212, 1) + SourceIndex(0) name (Point) 2 >Emitted(190, 2) Source(212, 2) + SourceIndex(0) name (Point) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>Point.origin = new Point(0, 0); +1-> 2 >^^^^^ 3 > ^ 4 > ^^^^^^ @@ -3468,7 +3557,7 @@ sourceFile:contextualTyping.ts 11> ^ 12> ^ 13> ^ -14> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +14> ^^^^^^^^^^^-> 1-> > > @@ -3498,7 +3587,8 @@ sourceFile:contextualTyping.ts 12>Emitted(191, 31) Source(214, 31) + SourceIndex(0) 13>Emitted(191, 32) Source(214, 32) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>Point.prototype.add = function (dx, dy) { +1-> 2 >^^^^^ 3 > ^ 4 > ^^^^^^^^^ @@ -3509,7 +3599,7 @@ sourceFile:contextualTyping.ts 9 > ^^ 10> ^^ 11> ^^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +12> ^^^^^^^^^^-> 1-> > > @@ -3535,7 +3625,8 @@ sourceFile:contextualTyping.ts 10>Emitted(192, 37) Source(216, 36) + SourceIndex(0) 11>Emitted(192, 39) Source(216, 38) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> return new Point(this.x + dx, this.y + dy); +1->^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^^^^ @@ -3554,7 +3645,6 @@ sourceFile:contextualTyping.ts 17> ^^ 18> ^ 19> ^ -20> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->) { > 2 > return @@ -3595,24 +3685,25 @@ sourceFile:contextualTyping.ts 18>Emitted(193, 47) Source(217, 47) + SourceIndex(0) 19>Emitted(193, 48) Source(217, 48) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>}; +1 > 2 >^ 3 > ^ -4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +4 > ^^^^^^^^^^^^^^^^^^-> +1 > > 2 >} 3 > ; -1->Emitted(194, 1) Source(218, 1) + SourceIndex(0) +1 >Emitted(194, 1) Source(218, 1) + SourceIndex(0) 2 >Emitted(194, 2) Source(218, 2) + SourceIndex(0) 3 >Emitted(194, 3) Source(218, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>Point.prototype = { +1-> 2 >^^^^^ 3 > ^ 4 > ^^^^^^^^^ 5 > ^^^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > > @@ -3626,26 +3717,28 @@ sourceFile:contextualTyping.ts 4 >Emitted(195, 16) Source(220, 16) + SourceIndex(0) 5 >Emitted(195, 19) Source(220, 19) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> x: 0, +1 >^^^^ 2 > ^ 3 > ^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->{ +5 > ^^-> +1 >{ > 2 > x 3 > : 4 > 0 -1->Emitted(196, 5) Source(221, 5) + SourceIndex(0) +1 >Emitted(196, 5) Source(221, 5) + SourceIndex(0) 2 >Emitted(196, 6) Source(221, 6) + SourceIndex(0) 3 >Emitted(196, 8) Source(221, 8) + SourceIndex(0) 4 >Emitted(196, 9) Source(221, 9) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> y: 0, +1->^^^^ 2 > ^ 3 > ^^ 4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^^^^^^^^^^^^^^^^^^^^^-> 1->, > 2 > y @@ -3656,14 +3749,15 @@ sourceFile:contextualTyping.ts 3 >Emitted(197, 8) Source(222, 8) + SourceIndex(0) 4 >Emitted(197, 9) Source(222, 9) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> add: function (dx, dy) { +1->^^^^ 2 > ^^^ 3 > ^^ 4 > ^^^^^^^^^^ 5 > ^^ 6 > ^^ 7 > ^^ -8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->, > 2 > add @@ -3680,7 +3774,8 @@ sourceFile:contextualTyping.ts 6 >Emitted(198, 24) Source(223, 23) + SourceIndex(0) 7 >Emitted(198, 26) Source(223, 25) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^^^^^ +>>> return new Point(this.x + dx, this.y + dy); +1->^^^^^^^^ 2 > ^^^^^^ 3 > ^ 4 > ^^^^ @@ -3699,7 +3794,6 @@ sourceFile:contextualTyping.ts 17> ^^ 18> ^ 19> ^ -20> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1->) { > 2 > return @@ -3740,31 +3834,33 @@ sourceFile:contextualTyping.ts 18>Emitted(199, 51) Source(224, 51) + SourceIndex(0) 19>Emitted(199, 52) Source(224, 52) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^^^^ +>>> } +1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +1 > > 2 > } -1->Emitted(200, 5) Source(225, 5) + SourceIndex(0) +1 >Emitted(200, 5) Source(225, 5) + SourceIndex(0) 2 >Emitted(200, 6) Source(225, 6) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1->^ +>>>}; +1 >^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> +3 > ^^^^^^^^^^-> +1 > >} 2 > ; -1->Emitted(201, 2) Source(226, 2) + SourceIndex(0) +1 >Emitted(201, 2) Source(226, 2) + SourceIndex(0) 2 >Emitted(201, 3) Source(226, 3) + SourceIndex(0) --- ->>>// CONTEXT: Class property declaration\nvar C1T5 = (function () {\n function C1T5() {\n this.foo = function (i) {\n return i;\n };\n }\n return C1T5;\n})();\n// CONTEXT: Module property declaration\nvar C2T5;\n(function (C2T5) {\n C2T5.foo = function (i) {\n return i;\n };\n})(C2T5 || (C2T5 = {}));\n// CONTEXT: Variable declaration\nvar c3t1 = (function (s) {\n return s;\n});\nvar c3t2 = ({\n n: 1\n});\nvar c3t3 = [];\nvar c3t4 = function () {\n return ({});\n};\nvar c3t5 = function (n) {\n return ({});\n};\nvar c3t6 = function (n, s) {\n return ({});\n};\nvar c3t7 = function (n) {\n return n;\n};\nvar c3t8 = function (n) {\n return n;\n};\nvar c3t9 = [[], []];\nvar c3t10 = [({}), ({})];\nvar c3t11 = [function (n, s) {\n return s;\n}];\nvar c3t12 = {\n foo: ({})\n};\nvar c3t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c3t14 = ({\n a: []\n});\n// CONTEXT: Class property assignment\nvar C4T5 = (function () {\n function C4T5() {\n this.foo = function (i, s) {\n return s;\n };\n }\n return C4T5;\n})();\n// CONTEXT: Module property assignment\nvar C5T5;\n(function (C5T5) {\n C5T5.foo;\n C5T5.foo = function (i, s) {\n return s;\n };\n})(C5T5 || (C5T5 = {}));\n// CONTEXT: Variable assignment\nvar c6t5;\nc6t5 = function (n) {\n return ({});\n};\n// CONTEXT: Array index assignment\nvar c7t2;\nc7t2[0] = ({ n: 1 });\nvar objc8 = ({});\nobjc8.t1 = (function (s) {\n return s;\n});\nobjc8.t2 = ({\n n: 1\n});\nobjc8.t3 = [];\nobjc8.t4 = function () {\n return ({});\n};\nobjc8.t5 = function (n) {\n return ({});\n};\nobjc8.t6 = function (n, s) {\n return ({});\n};\nobjc8.t7 = function (n) {\n return n;\n};\nobjc8.t8 = function (n) {\n return n;\n};\nobjc8.t9 = [[], []];\nobjc8.t10 = [({}), ({})];\nobjc8.t11 = [function (n, s) {\n return s;\n}];\nobjc8.t12 = {\n foo: ({})\n};\nobjc8.t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nobjc8.t14 = ({\n a: []\n});\n// CONTEXT: Function call\nfunction c9t5(f) {\n}\n;\nc9t5(function (n) {\n return ({});\n});\n// CONTEXT: Return statement\nvar c10t5 = function () {\n return function (n) {\n return ({});\n };\n};\n// CONTEXT: Newing a class\nvar C11t5 = (function () {\n function C11t5(f) {\n }\n return C11t5;\n})();\n;\nvar i = new C11t5(function (n) {\n return ({});\n});\n// CONTEXT: Type annotated expression\nvar c12t1 = (function (s) {\n return s;\n});\nvar c12t2 = ({\n n: 1\n});\nvar c12t3 = [];\nvar c12t4 = function () {\n return ({});\n};\nvar c12t5 = function (n) {\n return ({});\n};\nvar c12t6 = function (n, s) {\n return ({});\n};\nvar c12t7 = function (n) {\n return n;\n};\nvar c12t8 = function (n) {\n return n;\n};\nvar c12t9 = [[], []];\nvar c12t10 = [({}), ({})];\nvar c12t11 = [function (n, s) {\n return s;\n}];\nvar c12t12 = {\n foo: ({})\n};\nvar c12t13 = ({\n f: function (i, s) {\n return s;\n }\n});\nvar c12t14 = ({\n a: []\n});\nfunction EF1(a, b) {\n return a + b;\n}\nvar efv = EF1(1, 2);\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n return this;\n}\nPoint.origin = new Point(0, 0);\nPoint.prototype.add = function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n};\nPoint.prototype = {\n x: 0,\n y: 0,\n add: function (dx, dy) {\n return new Point(this.x + dx, this.y + dy);\n }\n};\nvar x = {};\n//# sourceMappingURL=contextualTyping.js.map1-> +>>>var x = {}; +1-> 2 >^^^^ 3 > ^ 4 > ^^^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> > >interface A { x: string; } @@ -3781,4 +3877,5 @@ sourceFile:contextualTyping.ts 4 >Emitted(202, 9) Source(230, 12) + SourceIndex(0) 5 >Emitted(202, 11) Source(230, 15) + SourceIndex(0) 6 >Emitted(202, 12) Source(230, 16) + SourceIndex(0) ---- \ No newline at end of file +--- +>>>//# sourceMappingURL=contextualTyping.js.map \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping1.js b/tests/baselines/reference/contextualTyping1.js index 7ceb3b582e5..7f1e12c744b 100644 --- a/tests/baselines/reference/contextualTyping1.js +++ b/tests/baselines/reference/contextualTyping1.js @@ -2,4 +2,4 @@ var foo: {id:number;} = {id:4}; //// [contextualTyping1.js] -var foo = { id: 4 }; +var foo = { id: 4 };\n \ No newline at end of file From d0ca71f445125e59797a42dfca7ed5525816dc43 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 29 Jan 2015 13:32:27 -0800 Subject: [PATCH 126/211] Correctly copy assumptions back into the relational cache --- src/compiler/checker.ts | 18 ++- .../reference/promisePermutations.errors.txt | 39 ++--- .../reference/promisePermutations2.errors.txt | 135 +++++------------- 3 files changed, 53 insertions(+), 139 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 760547d8fac..c2e79bdafe7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3471,7 +3471,7 @@ module ts { // where errors were being reported. if (errorInfo.next === undefined) { errorInfo = undefined; - isRelatedTo(source, target, errorNode !== undefined, headMessage, true); + isRelatedTo(source, target, errorNode !== undefined, headMessage, /* mustRecompute */ true); } if (containingMessageChain) { errorInfo = concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); @@ -3652,8 +3652,11 @@ module ts { } var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; var related = relation[id]; + //var related: RelationComparisonResult = undefined; // relation[id]; if (related !== undefined) { - if (!elaborateErrors || related === RelationComparisonResult.FailedAndReported) { + // If we computed this relation already and it was failed and reported, or if we're not being asked to elaborate + // errors, we can use the cached value. Otherwise, recompute the relation + if (!elaborateErrors || (related === RelationComparisonResult.FailedAndReported)) { return related === RelationComparisonResult.Succeeded ? Ternary.True : Ternary.False; } } @@ -3706,9 +3709,14 @@ module ts { if (result) { var maybeCache = maybeStack[depth]; // If result is definitely true, copy assumptions to global cache, else copy to next level up - var destinationCache = result === Ternary.True || depth === 0 ? relation : maybeStack[depth - 1]; - for (var key in maybeCache) { - destinationCache[key] = maybeCache[key] ? RelationComparisonResult.Succeeded : RelationComparisonResult.Failed; + if (result === Ternary.True || depth === 0) { + var key: string; + for (key in maybeCache) { + relation[key] = maybeCache[key] ? RelationComparisonResult.Succeeded : (reportErrors ? RelationComparisonResult.FailedAndReported : RelationComparisonResult.Failed); + } + } + else { + copyMap(maybeCache, maybeStack[depth - 1]); } } else { diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index d4082015054..744fd5da90e 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -1,11 +1,6 @@ -tests/cases/compiler/promisePermutations.ts(55,34): error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. -tests/cases/compiler/promisePermutations.ts(56,34): error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. -tests/cases/compiler/promisePermutations.ts(73,35): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. -tests/cases/compiler/promisePermutations.ts(74,35): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. +tests/cases/compiler/promisePermutations.ts(74,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations.ts(79,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. Types of parameters 'x' and 'value' are incompatible. Type 'number' is not assignable to type 'string'. @@ -55,14 +50,10 @@ tests/cases/compiler/promisePermutations.ts(137,11): error TS2453: The type argu tests/cases/compiler/promisePermutations.ts(144,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. -tests/cases/compiler/promisePermutations.ts(151,21): error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(value: {}) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. tests/cases/compiler/promisePermutations.ts(152,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -tests/cases/compiler/promisePermutations.ts(153,36): error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. tests/cases/compiler/promisePermutations.ts(156,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. Type 'IPromise' is not assignable to type 'IPromise'. Type 'number' is not assignable to type 'string'. @@ -76,7 +67,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t Type 'Promise' is not assignable to type 'IPromise'. -==== tests/cases/compiler/promisePermutations.ts (38 errors) ==== +==== tests/cases/compiler/promisePermutations.ts (33 errors) ==== interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; then(success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; @@ -132,13 +123,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s1a = s1.then(testFunction, testFunction, testFunction); var s1b = s1.then(testFunctionP, testFunctionP, testFunctionP); var s1c = s1.then(testFunctionP, testFunction, testFunction); - ~~~~~~~~~~~~ -!!! error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s1d = s1.then(testFunctionP, testFunction, testFunction).then(testFunction, testFunction, testFunction); - ~~~~~~~~~~~~ -!!! error TS2345: Argument of type '() => IPromise' is not assignable to parameter of type '(error: any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var r2: IPromise<{ x: number; }>; var r2a = r2.then(testFunction2, testFunction2, testFunction2); @@ -156,13 +141,11 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); var s3c = s3.then(testFunction3P, testFunction3, testFunction3); - ~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // error - ~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. + ~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -316,9 +299,6 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok var s10d = s10.then(sPromise, sPromise, sPromise); // ok var s10e = s10.then(nIPromise, nPromise, nIPromise); // ok - ~~~~~~~~~ -!!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(value: {}) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s10f = s10.then(testFunctionP, sIPromise, nIPromise); // error ~~~~~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. @@ -326,9 +306,6 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok - ~~~~~~~~~ -!!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index 1e2c13edd15..5a50b9391ba 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -1,19 +1,6 @@ -tests/cases/compiler/promisePermutations2.ts(54,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: number) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -tests/cases/compiler/promisePermutations2.ts(55,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -tests/cases/compiler/promisePermutations2.ts(63,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: { x: number; }) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -tests/cases/compiler/promisePermutations2.ts(64,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. -tests/cases/compiler/promisePermutations2.ts(72,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -tests/cases/compiler/promisePermutations2.ts(73,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations2.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. Types of parameters 'x' and 'value' are incompatible. Type 'number' is not assignable to type 'string'. @@ -23,24 +10,17 @@ tests/cases/compiler/promisePermutations2.ts(81,19): error TS2345: Argument of t tests/cases/compiler/promisePermutations2.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. Types of parameters 'x' and 'value' are incompatible. Type 'number' is not assignable to type 'string'. -tests/cases/compiler/promisePermutations2.ts(83,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -tests/cases/compiler/promisePermutations2.ts(84,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'Promise'. - Types of property 'then' are incompatible. - Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. +tests/cases/compiler/promisePermutations2.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -tests/cases/compiler/promisePermutations2.ts(92,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -tests/cases/compiler/promisePermutations2.ts(101,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. tests/cases/compiler/promisePermutations2.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. Types of parameters 'cb' and 'value' are incompatible. Type '(a: T) => T' is not assignable to type 'string'. @@ -56,35 +36,24 @@ tests/cases/compiler/promisePermutations2.ts(110,19): error TS2345: Argument of tests/cases/compiler/promisePermutations2.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -tests/cases/compiler/promisePermutations2.ts(121,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. +tests/cases/compiler/promisePermutations2.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -tests/cases/compiler/promisePermutations2.ts(133,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. tests/cases/compiler/promisePermutations2.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(143,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. -tests/cases/compiler/promisePermutations2.ts(148,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise<{}>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{}>'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: {}) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -tests/cases/compiler/promisePermutations2.ts(150,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. tests/cases/compiler/promisePermutations2.ts(151,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -tests/cases/compiler/promisePermutations2.ts(152,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. tests/cases/compiler/promisePermutations2.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. Type 'IPromise' is not assignable to type 'IPromise'. Type 'number' is not assignable to type 'string'. @@ -94,11 +63,11 @@ tests/cases/compiler/promisePermutations2.ts(157,21): error TS2345: Argument of tests/cases/compiler/promisePermutations2.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. Type 'Promise' is not assignable to type 'Promise'. Type 'number' is not assignable to type 'string'. -tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. +tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. + Type 'Promise' is not assignable to type 'IPromise'. -==== tests/cases/compiler/promisePermutations2.ts (42 errors) ==== +==== tests/cases/compiler/promisePermutations2.ts (33 errors) ==== // same as promisePermutations but without the same overloads in Promise interface Promise { @@ -153,15 +122,7 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg var s1a = s1.then(testFunction, testFunction, testFunction); var s1b = s1.then(testFunctionP, testFunctionP, testFunctionP); var s1c = s1.then(testFunctionP, testFunction, testFunction); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '{ (success?: (value: number) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s1d = s1.then(testFunctionP, testFunction, testFunction).then(testFunction, testFunction, testFunction); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r2: IPromise<{ x: number; }>; var r2a = r2.then(testFunction2, testFunction2, testFunction2); @@ -170,15 +131,7 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg var s2a = s2.then(testFunction2, testFunction2, testFunction2); var s2b = s2.then(testFunction2P, testFunction2P, testFunction2P); var s2c = s2.then(testFunction2P, testFunction2, testFunction2); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '{ (success?: (value: { x: number; }) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: { x: number; }) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s2d = s2.then(testFunction2P, testFunction2, testFunction2).then(testFunction2, testFunction2, testFunction2); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise<{ x: number; }>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{ x: number; }>'. var r3: IPromise; var r3a = r3.then(testFunction3, testFunction3, testFunction3); @@ -187,13 +140,11 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); var s3c = s3.then(testFunction3P, testFunction3, testFunction3); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // Should error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + ~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -216,17 +167,11 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg !!! error TS2345: Types of parameters 'x' and 'value' are incompatible. !!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. + ~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'Promise'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error @@ -241,9 +186,8 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + ~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; @@ -259,9 +203,8 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + ~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; @@ -304,11 +247,8 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '{ (success?: (value: any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. + ~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; @@ -331,9 +271,8 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error - ~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + ~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -357,15 +296,8 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg var s10a = s10.then(testFunction10, testFunction10, testFunction10); // ok var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok - ~~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise<{}>' is not a valid type argument because it is not a supertype of candidate 'IPromise<{}>'. -!!! error TS2453: Types of property 'then' are incompatible. -!!! error TS2453: Type '{ (success?: (value: {}) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: {}) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s10d = s10.then(sPromise, sPromise, sPromise); // ok var s10e = s10.then(nIPromise, nPromise, nIPromise); // ok - ~~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. var s10f = s10.then(testFunctionP, sIPromise, nIPromise); // error ~~~~~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. @@ -373,9 +305,6 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error @@ -395,9 +324,9 @@ tests/cases/compiler/promisePermutations2.ts(159,12): error TS2453: The type arg !!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. !!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // ok - ~~~~~~~~ -!!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. + ~~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok From e322a13c80276a970f30cb141f501639e5c63b3c Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 29 Jan 2015 14:20:38 -0800 Subject: [PATCH 127/211] Deeper type inference in context sensitive arguments --- src/compiler/checker.ts | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 50f9fbe4033..3dc792573e2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4318,6 +4318,9 @@ module ts { } function inferFromTypes(source: Type, target: Type) { + if (source === anyFunctionType) { + return; + } if (target.flags & TypeFlags.TypeParameter) { // If target is a type parameter, make an inference var typeParameters = context.typeParameters; @@ -5885,22 +5888,20 @@ module ts { function inferTypeArguments(signature: Signature, args: Expression[], excludeArgument?: boolean[]): InferenceContext { var typeParameters = signature.typeParameters; var context = createInferenceContext(typeParameters, /*inferUnionTypes*/ false); - var mapper = createInferenceMapper(context); - // First infer from arguments that are not context sensitive + var inferenceMapper = createInferenceMapper(context); + + // First infer from all arguments using wildcards for all context sensitive function expressions for (var i = 0; i < args.length; i++) { if (args[i].kind === SyntaxKind.OmittedExpression) { continue; } - if (!excludeArgument || excludeArgument[i] === undefined) { - var parameterType = getTypeAtPosition(signature, i); - - if (i === 0 && args[i].parent.kind === SyntaxKind.TaggedTemplateExpression) { - inferTypes(context, globalTemplateStringsArrayType, parameterType); - continue; - } - - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + var parameterType = getTypeAtPosition(signature, i); + if (i === 0 && args[i].parent.kind === SyntaxKind.TaggedTemplateExpression) { + inferTypes(context, globalTemplateStringsArrayType, parameterType); + continue; } + var mapper = !excludeArgument || excludeArgument[i] === undefined ? inferenceMapper : identityMapper; + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); } // Next, infer from those context sensitive arguments that are no longer excluded @@ -5912,10 +5913,11 @@ module ts { // No need to special-case tagged templates; their excludeArgument value will be 'undefined'. if (excludeArgument[i] === false) { var parameterType = getTypeAtPosition(signature, i); - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, inferenceMapper), parameterType); } } } + var inferredTypes = getInferredTypes(context); // Inference has failed if the inferenceFailureType type is in list of inferences context.failedTypeParameterIndex = indexOf(inferredTypes, inferenceFailureType); @@ -6609,7 +6611,7 @@ module ts { } // The identityMapper object is used to indicate that function expressions are wildcards - if (contextualMapper === identityMapper) { + if (contextualMapper === identityMapper && isContextSensitive(node)) { return anyFunctionType; } var links = getNodeLinks(node); @@ -7283,7 +7285,7 @@ module ts { case SyntaxKind.TypeAssertionExpression: return checkTypeAssertion(node); case SyntaxKind.ParenthesizedExpression: - return checkExpression((node).expression); + return checkExpression((node).expression, contextualMapper); case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); From 17763ab04058d90b141e555b9cc695483d6c052a Mon Sep 17 00:00:00 2001 From: Stan Thomas Date: Thu, 29 Jan 2015 17:26:53 -0500 Subject: [PATCH 128/211] Supress const enum member value comment from emitted javascript in presence of --removeComments --- src/compiler/emitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 34978ed7fd6..0b6badb7b43 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2463,7 +2463,7 @@ module ts { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { var propertyName = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); - write(constantValue.toString() + " /* " + propertyName + " */"); + write(constantValue.toString() + (!compilerOptions.removeComments ? " /* " + propertyName + " */" : "")); return true; } return false; From d224286d59554a40e8ded19a25a96b87f97fd1e9 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 29 Jan 2015 14:37:57 -0800 Subject: [PATCH 129/211] Address CR feedback --- src/compiler/checker.ts | 21 +++++++-------------- src/compiler/types.ts | 6 +++--- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c2e79bdafe7..ed89032b781 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3453,7 +3453,7 @@ module ts { var errorInfo: DiagnosticMessageChain; var sourceStack: ObjectType[]; var targetStack: ObjectType[]; - var maybeStack: Map[]; + var maybeStack: Map[]; var expandingFlags: number; var depth = 0; var overflow = false; @@ -3471,7 +3471,7 @@ module ts { // where errors were being reported. if (errorInfo.next === undefined) { errorInfo = undefined; - isRelatedTo(source, target, errorNode !== undefined, headMessage, /* mustRecompute */ true); + isRelatedTo(source, target, errorNode !== undefined, headMessage, /* elaborateErrors */ true); } if (containingMessageChain) { errorInfo = concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); @@ -3488,7 +3488,7 @@ module ts { // Ternary.True if they are related with no assumptions, // Ternary.Maybe if they are related with assumptions of other relationships, or // Ternary.False if they are not related. - function isRelatedTo(source: Type, target: Type, reportErrors?: boolean, headMessage?: DiagnosticMessage, mustRecompute = false): Ternary { + function isRelatedTo(source: Type, target: Type, reportErrors?: boolean, headMessage?: DiagnosticMessage, elaborateErrors = false): Ternary { var result: Ternary; // both types are the same - covers 'they are the same primitive type or both are Any' or the same type parameter cases if (source === target) return Ternary.True; @@ -3555,7 +3555,7 @@ module ts { // identity relation does not use apparent type var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); if (sourceOrApparentType.flags & TypeFlags.ObjectType && target.flags & TypeFlags.ObjectType && - (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, mustRecompute))) { + (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; return result; } @@ -3681,7 +3681,7 @@ module ts { sourceStack[depth] = source; targetStack[depth] = target; maybeStack[depth] = {}; - maybeStack[depth][id] = true; + maybeStack[depth][id] = RelationComparisonResult.Succeeded; depth++; var saveExpandingFlags = expandingFlags; if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) expandingFlags |= 1; @@ -3709,15 +3709,8 @@ module ts { if (result) { var maybeCache = maybeStack[depth]; // If result is definitely true, copy assumptions to global cache, else copy to next level up - if (result === Ternary.True || depth === 0) { - var key: string; - for (key in maybeCache) { - relation[key] = maybeCache[key] ? RelationComparisonResult.Succeeded : (reportErrors ? RelationComparisonResult.FailedAndReported : RelationComparisonResult.Failed); - } - } - else { - copyMap(maybeCache, maybeStack[depth - 1]); - } + var destinationCache = (result === Ternary.True || depth === 0) ? relation : maybeStack[depth - 1]; + copyMap(maybeCache, destinationCache); } else { // A false result goes straight into global cache (when something is false under assumptions it diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 57266fc5a89..80bdc875177 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -331,9 +331,9 @@ module ts { } export const enum RelationComparisonResult { - Succeeded = 0, - Failed = 1, - FailedAndReported = 2 + Succeeded = 1, // Should be truthy + Failed = 2, + FailedAndReported = 3 } export interface Node extends TextRange { From 0b435f56ee5c9172a65b76b2e4a5afb6456293eb Mon Sep 17 00:00:00 2001 From: Stan Thomas Date: Thu, 29 Jan 2015 18:27:26 -0500 Subject: [PATCH 130/211] test case for TS generated comments const enum to show that they are supressed by removeComments flag --- tests/cases/compiler/commentsdoNotEmitComments.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/cases/compiler/commentsdoNotEmitComments.ts b/tests/cases/compiler/commentsdoNotEmitComments.ts index 0d971e79df7..f2475f8437e 100644 --- a/tests/cases/compiler/commentsdoNotEmitComments.ts +++ b/tests/cases/compiler/commentsdoNotEmitComments.ts @@ -88,3 +88,8 @@ module m1 { /// this is x declare var x; + + +/** const enum member value comment (generated by TS) */ +const enum color { red, green, blue } +var shade = color.green; From fd2069595718770f01528e5d57716eaa4994a0b7 Mon Sep 17 00:00:00 2001 From: Yui T Date: Thu, 29 Jan 2015 16:07:55 -0800 Subject: [PATCH 131/211] Remove flag and compare position --- src/compiler/emitter.ts | 19 ++++++++++--------- src/compiler/parser.ts | 3 --- src/compiler/types.ts | 2 -- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index e57e367544f..8e0e95ce45b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3292,16 +3292,17 @@ module ts { function emitSignatureParametersForArrow(node: FunctionLikeDeclaration) { // Check whether the parameter list needs parentheses and preserve no-parenthesis - if (node.flags & NodeFlags.SimpleArrowFunction) { - increaseIndent(); - var parameters = node.parameters; - var omitCount = hasRestParameters(node) ? 1 : 0; - emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); - decreaseIndent(); - } - else { - emitSignatureParameters(node); + if (node.parameters.length === 1){ + if (node.pos === node.parameters[0].pos) { + increaseIndent(); + var parameters = node.parameters; + var omitCount = hasRestParameters(node) ? 1 : 0; + emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); + decreaseIndent(); + return; + } } + emitSignatureParameters(node); } function emitSignatureAndBody(node: FunctionLikeDeclaration) { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 82fa5f2c579..5ae44e5ff39 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2883,9 +2883,6 @@ module ts { node.parameters = >[parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; - // Add node flags for simple arrow function(no parenthesis around parameters) - // so that in emit state we can check this flag and preserve users original text - node.flags |= NodeFlags.SimpleArrowFunction; parseExpected(SyntaxKind.EqualsGreaterThanToken); node.body = parseArrowFunctionExpressionBody(); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 2dd14d079a6..80bdc875177 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -293,8 +293,6 @@ module ts { Const = 0x00001000, // Variable declaration OctalLiteral = 0x00002000, - SimpleArrowFunction = 0x00004000, // Arrow function without parenthesized parameters - Modifier = Export | Ambient | Public | Private | Protected | Static, AccessibilityModifier = Public | Private | Protected, BlockScoped = Let | Const From fb2c5020a390d0c345267731354403ba5a8c56b9 Mon Sep 17 00:00:00 2001 From: Yui T Date: Thu, 29 Jan 2015 16:38:05 -0800 Subject: [PATCH 132/211] Clean up the checking of position --- src/compiler/emitter.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 8e0e95ce45b..a3bee98208d 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3292,15 +3292,13 @@ module ts { function emitSignatureParametersForArrow(node: FunctionLikeDeclaration) { // Check whether the parameter list needs parentheses and preserve no-parenthesis - if (node.parameters.length === 1){ - if (node.pos === node.parameters[0].pos) { - increaseIndent(); - var parameters = node.parameters; - var omitCount = hasRestParameters(node) ? 1 : 0; - emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); - decreaseIndent(); - return; - } + if ((node.parameters.length === 1) && (node.pos === node.parameters[0].pos)) { + increaseIndent(); + var parameters = node.parameters; + var omitCount = hasRestParameters(node) ? 1 : 0; + emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); + decreaseIndent(); + return; } emitSignatureParameters(node); } From 2ef36e8d54b3b86f03bdd0e2a6204206c69c5684 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 29 Jan 2015 21:22:56 -0800 Subject: [PATCH 133/211] Accepting new baselines --- ...ntextualTypingWithFixedTypeParameters1.errors.txt | 12 +++++------- .../reference/parenthesizedContexualTyping1.types | 10 +++++----- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.errors.txt b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.errors.txt index adfb1c68b7a..251a3a1bde3 100644 --- a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.errors.txt +++ b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(2,22): error TS2339: Property 'foo' does not exist on type 'string'. -tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(3,10): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. - Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'T'. -tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(3,32): error TS2339: Property 'foo' does not exist on type 'T'. +tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(3,32): error TS2339: Property 'foo' does not exist on type 'string'. +tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(3,38): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. ==== tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts (3 errors) ==== @@ -10,8 +9,7 @@ tests/cases/compiler/contextualTypingWithFixedTypeParameters1.ts(3,32): error TS ~~~ !!! error TS2339: Property 'foo' does not exist on type 'string'. var r9 = f10('', () => (a => a.foo), 1); // error - ~~~ -!!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'T'. ~~~ -!!! error TS2339: Property 'foo' does not exist on type 'T'. \ No newline at end of file +!!! error TS2339: Property 'foo' does not exist on type 'string'. + ~ +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/parenthesizedContexualTyping1.types b/tests/baselines/reference/parenthesizedContexualTyping1.types index 60020fd8eb2..925347ed1b3 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping1.types +++ b/tests/baselines/reference/parenthesizedContexualTyping1.types @@ -220,11 +220,11 @@ var l = fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x) >x => undefined : (x: number) => any >x : number >undefined : undefined ->((x => x)) : (x: number) => number ->(x => x) : (x: number) => number ->x => x : (x: number) => number ->x : number ->x : number +>((x => x)) : (x: any) => any +>(x => x) : (x: any) => any +>x => x : (x: any) => any +>x : any +>x : any var lambda1: (x: number) => number = x => x; >lambda1 : (x: number) => number From 95e7015fa05ae2bf8b41c62abbf619c06d8ffd10 Mon Sep 17 00:00:00 2001 From: Stan Thomas Date: Fri, 30 Jan 2015 06:09:31 -0500 Subject: [PATCH 134/211] Supress const enum member value comment from emitted javascript in presence of --removeComments (revised) --- src/compiler/emitter.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 0b6badb7b43..4405b895d59 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2462,8 +2462,11 @@ module ts { function tryEmitConstantValue(node: PropertyAccessExpression | ElementAccessExpression): boolean { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); - write(constantValue.toString() + (!compilerOptions.removeComments ? " /* " + propertyName + " */" : "")); + write(constantValue.toString()); + if (!compilerOptions.removeComments) { + var propertyName: string = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); + write(" /* " + propertyName + " */"); + } return true; } return false; From ff11ca9ee1e05d092d681d00e6cde6b0e0ae2502 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 10:32:07 -0800 Subject: [PATCH 135/211] Update path to test262 and rwc tests files in the runners --- Jakefile | 14 +++++++++----- src/harness/harness.ts | 29 ++++++++++++++++++++--------- src/harness/rwcRunner.ts | 7 +++++-- src/harness/test262Runner.ts | 7 +++++-- 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/Jakefile b/Jakefile index 15661debff6..3a4f3af9677 100644 --- a/Jakefile +++ b/Jakefile @@ -451,14 +451,16 @@ directory(builtLocalDirectory); var run = path.join(builtLocalDirectory, "run.js"); compileFile(run, harnessSources, [builtLocalDirectory, tscFile].concat(libraryTargets).concat(harnessSources), [], /*useBuiltCompiler:*/ true); +var internalTests = "internal/" + var localBaseline = "tests/baselines/local/"; var refBaseline = "tests/baselines/reference/"; -var localRwcBaseline = "tests/baselines/rwc/local/"; -var refRwcBaseline = "tests/baselines/rwc/reference/"; +var localRwcBaseline = internalTests + "baselines/rwc/local/"; +var refRwcBaseline = internalTests + "baselines/rwc/reference/"; -var localTest262Baseline = "tests/baselines/test262/local/"; -var refTest262Baseline = "tests/baselines/test262/reference/"; +var localTest262Baseline = internalTests + "baselines/test262/local/"; +var refTest262Baseline = internalTests + "baselines/test262/reference/"; desc("Builds the test infrastructure using the built compiler"); task("tests", ["local", run].concat(libraryTargets)); @@ -491,11 +493,13 @@ function cleanTestDirs() { jake.rmRf(localBaseline); } - // Clean the local Rwc baselines directory + // Clean the local Rwc baselines directory if (fs.existsSync(localRwcBaseline)) { jake.rmRf(localRwcBaseline); } + jake.mkdirP(localRwcBaseline); + jake.mkdirP(localTest262Baseline); jake.mkdirP(localBaseline); } diff --git a/src/harness/harness.ts b/src/harness/harness.ts index df73e52a605..d6734ce28b2 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1557,21 +1557,32 @@ module Harness { export interface BaselineOptions { LineEndingSensitive?: boolean; Subfolder?: string; + Baselinefolder?: string; } - export function localPath(fileName: string, subfolder?: string) { - return baselinePath(fileName, 'local', subfolder); + export function localPath(fileName: string, baselinefolder?: string, subfolder?: string) { + if (baselinefolder === undefined) { + return baselinePath(fileName, 'local', 'tests/baselines', subfolder); + } + else { + return baselinePath(fileName, 'local', baselinefolder, subfolder); + } } - function referencePath(fileName: string, subfolder?: string) { - return baselinePath(fileName, 'reference', subfolder); + function referencePath(fileName: string, baselinefolder?: string, subfolder?: string) { + if (baselinefolder === undefined) { + return baselinePath(fileName, 'reference', 'tests/baselines', subfolder); + } + else { + return baselinePath(fileName, 'reference', baselinefolder, subfolder); + } } - function baselinePath(fileName: string, type: string, subfolder?: string) { + function baselinePath(fileName: string, type: string, baselinefolder: string, subfolder?: string) { if (subfolder !== undefined) { - return Harness.userSpecifiedroot + 'tests/baselines/' + subfolder + '/' + type + '/' + fileName; + return Harness.userSpecifiedroot + baselinefolder + '/' + subfolder + '/' + type + '/' + fileName; } else { - return Harness.userSpecifiedroot + 'tests/baselines/' + type + '/' + fileName; + return Harness.userSpecifiedroot + baselinefolder + '/' + type + '/' + fileName; } } @@ -1625,7 +1636,7 @@ module Harness { return; } - var refFilename = referencePath(relativeFilename, opts && opts.Subfolder); + var refFilename = referencePath(relativeFilename, opts && opts.Baselinefolder, opts && opts.Subfolder); if (actual === null) { actual = ''; @@ -1663,7 +1674,7 @@ module Harness { opts?: BaselineOptions): void { var actual = undefined; - var actualFilename = localPath(relativeFilename, opts && opts.Subfolder); + var actualFilename = localPath(relativeFilename, opts && opts.Baselinefolder, opts && opts.Subfolder); if (runImmediately) { actual = generateActual(actualFilename, generateContent); diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index b506cdd66b6..17b524bf0cd 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -26,7 +26,10 @@ module RWC { var otherFiles: { unitName: string; content: string; }[] = []; var compilerResult: Harness.Compiler.CompilerResult; var compilerOptions: ts.CompilerOptions; - var baselineOpts: Harness.Baseline.BaselineOptions = { Subfolder: 'rwc' }; + var baselineOpts: Harness.Baseline.BaselineOptions = { + Subfolder: 'rwc', + Baselinefolder: 'internal/baselines' + }; var baseName = /(.*)\/(.*).json/.exec(ts.normalizeSlashes(jsonPath))[2]; var currentDirectory: string; @@ -170,7 +173,7 @@ module RWC { } class RWCRunner extends RunnerBase { - private static sourcePath = "tests/cases/rwc/"; + private static sourcePath = "internal/cases/rwc/"; /** Setup the runner's tests so that they are ready to be executed by the harness * The first test should be a describe/it block that sets up the harness's compiler instance appropriately diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 24be77922f9..0091da5e911 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -3,7 +3,7 @@ /// class Test262BaselineRunner extends RunnerBase { - private static basePath = 'tests/cases/test262'; + private static basePath = 'internal/cases/test262'; private static helpersFilePath = 'tests/cases/test262-harness/helpers.d.ts'; private static helperFile = { unitName: Test262BaselineRunner.helpersFilePath, @@ -15,7 +15,10 @@ class Test262BaselineRunner extends RunnerBase { target: ts.ScriptTarget.Latest, module: ts.ModuleKind.CommonJS }; - private static baselineOptions: Harness.Baseline.BaselineOptions = { Subfolder: 'test262' }; + private static baselineOptions: Harness.Baseline.BaselineOptions = { + Subfolder: 'test262', + Baselinefolder: 'internal/baselines' + }; private static getTestFilePath(filename: string): string { return Test262BaselineRunner.basePath + "/" + filename; From 394d6f4f0e58a037da0e1af2181d55aaaab31945 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 30 Jan 2015 12:02:08 -0800 Subject: [PATCH 136/211] Bump version to 1.5. --- package.json | 2 +- src/compiler/tsc.ts | 2 +- src/services/services.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a52067a3d08..3e37519d128 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "typescript", "author": "Microsoft Corp.", "homepage": "http://typescriptlang.org/", - "version": "1.4.0", + "version": "1.5.0", "licenses": [ { "type": "Apache License 2.0", diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index ee5dc5104ff..52a9fb110db 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -2,7 +2,7 @@ /// module ts { - var version = "1.4.0.0"; + var version = "1.5.0.0"; export interface SourceFile { fileWatcher: FileWatcher; diff --git a/src/services/services.ts b/src/services/services.ts index 2a1fe59d23a..62998ab40f6 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -9,7 +9,7 @@ /// module ts { - export var servicesVersion = "0.4" + export var servicesVersion = "0.5" export interface Node { getSourceFile(): SourceFile; From ae5c3bafc0ea704f95c7d4b516bf9d959877d842 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 30 Jan 2015 12:03:21 -0800 Subject: [PATCH 137/211] Tabs to spaces in package.json. --- package.json | 88 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 3e37519d128..2bd89706606 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,46 @@ { - "name": "typescript", - "author": "Microsoft Corp.", - "homepage": "http://typescriptlang.org/", - "version": "1.5.0", - "licenses": [ - { - "type": "Apache License 2.0", - "url": "https://github.com/Microsoft/TypeScript/blob/master/LICENSE.txt" - } - ], - "description": "TypeScript is a language for application scale JavaScript development", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript" - ], - "bugs": { - "url" : "https://github.com/Microsoft/TypeScript/issues" - }, - "repository" : { - "type" : "git", - "url" : "https://github.com/Microsoft/TypeScript.git" - }, - "preferGlobal" : true, - "main" : "./bin/typescriptServices.js", - "bin" : { - "tsc" : "./bin/tsc" - }, - "engines" : { - "node" : ">=0.8.0" - }, - "devDependencies": { - "jake" : "latest", - "mocha" : "latest", - "chai" : "latest", - "browserify" : "latest", - "istanbul": "latest", - "codeclimate-test-reporter": "latest" - }, - "scripts": { - "test": "jake generate-code-coverage" - } + "name": "typescript", + "author": "Microsoft Corp.", + "homepage": "http://typescriptlang.org/", + "version": "1.5.0", + "licenses": [ + { + "type": "Apache License 2.0", + "url": "https://github.com/Microsoft/TypeScript/blob/master/LICENSE.txt" + } + ], + "description": "TypeScript is a language for application scale JavaScript development", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript" + ], + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/TypeScript.git" + }, + "preferGlobal": true, + "main": "./bin/typescriptServices.js", + "bin": { + "tsc": "./bin/tsc" + }, + "engines": { + "node": ">=0.8.0" + }, + "devDependencies": { + "jake": "latest", + "mocha": "latest", + "chai": "latest", + "browserify": "latest", + "istanbul": "latest", + "codeclimate-test-reporter": "latest" + }, + "scripts": { + "test": "jake generate-code-coverage" + } } From cf5aadb28d22852963e9afc577020050aa276d82 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 12:20:21 -0800 Subject: [PATCH 138/211] Address code review --- src/compiler/checker.ts | 9 ++------- .../diagnosticInformationMap.generated.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- ...mitArrowFunctionWhenUsingArguments.errors.txt | 16 ++++++++-------- ...ArrowFunctionWhenUsingArgumentsES6.errors.txt | 16 ++++++++-------- 5 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b531090b160..ab5bc93512b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4856,7 +4856,7 @@ module ts { // To avoid that we will give an error to users if they use arguments objects in arrow function so that they // can explicitly bound arguments objects if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { - error(node, Diagnostics.An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); + error(node, Diagnostics.The_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); } if (symbol.flags & SymbolFlags.Import) { @@ -4915,12 +4915,7 @@ module ts { container = getThisContainer(container, /* includeArrowFunctions */ false); // When targeting es6, arrow function lexically bind "this" so we do not need to do the work of binding "this" in emitted code - if (compilerOptions.target >= ScriptTarget.ES6) { - needToCaptureLexicalThis = false; - } - else { - needToCaptureLexicalThis = true; - } + needToCaptureLexicalThis = !(compilerOptions.target >= ScriptTarget.ES6); } switch (container.kind) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 5f9c0a2d4fc..cb6b9098864 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -452,6 +452,6 @@ module ts { 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.", isEarly: true }, Generators_are_not_currently_supported: { code: 9001, category: DiagnosticCategory.Error, key: "Generators are not currently supported.", isEarly: true }, - An_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead: { code: 9002, category: DiagnosticCategory.Error, key: "An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead" }, + The_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead: { code: 9002, category: DiagnosticCategory.Error, key: "The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead" }, }; } \ No newline at end of file diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index b5763adf47e..f3880aa545f 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1909,7 +1909,7 @@ "code": 9001, "isEarly": true }, - "An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead": { + "The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead": { "category": "Error", "code": 9002 } diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt index 714d6a3e46f..ea5e4ca1df1 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt @@ -1,21 +1,21 @@ -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(2,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(7,19): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(13,13): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(19,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(2,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(7,19): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(13,13): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(19,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead ==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts (4 errors) ==== var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } var b = function () { var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } } @@ -23,7 +23,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts () => { var arg = arguments[0]; ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } } @@ -31,7 +31,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts foo(() => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead }); function bar() { diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt index c134fb84958..060c1a6d3f4 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt @@ -1,21 +1,21 @@ -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(2,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(7,19): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(13,13): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(19,15): error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(2,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(7,19): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(13,13): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(19,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead ==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts (4 errors) ==== var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } var b = function () { var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } } @@ -23,7 +23,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6 () => { var arg = arguments[0]; ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead } } @@ -31,7 +31,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6 foo(() => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: An argument object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead }); function bar() { From 5d0376fc783b5e023c30ba3b439ba27c24362c88 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 14:09:10 -0800 Subject: [PATCH 139/211] Address codereview --- src/compiler/emitter.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index a3bee98208d..e889ecc8868 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3292,12 +3292,8 @@ module ts { function emitSignatureParametersForArrow(node: FunctionLikeDeclaration) { // Check whether the parameter list needs parentheses and preserve no-parenthesis - if ((node.parameters.length === 1) && (node.pos === node.parameters[0].pos)) { - increaseIndent(); - var parameters = node.parameters; - var omitCount = hasRestParameters(node) ? 1 : 0; - emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); - decreaseIndent(); + if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) { + emit(node.parameters[0]); return; } emitSignatureParameters(node); From c7e7bb12fed82bd3293d39ab0af7a47bf94d7786 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 30 Jan 2015 14:14:08 -0800 Subject: [PATCH 140/211] Addressing CR feedback --- src/compiler/checker.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3dc792573e2..32cc5b19e27 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5885,12 +5885,13 @@ module ts { return getSignatureInstantiation(signature, getInferredTypes(context)); } - function inferTypeArguments(signature: Signature, args: Expression[], excludeArgument?: boolean[]): InferenceContext { + function inferTypeArguments(signature: Signature, args: Expression[], excludeArgument: boolean[]): InferenceContext { var typeParameters = signature.typeParameters; var context = createInferenceContext(typeParameters, /*inferUnionTypes*/ false); var inferenceMapper = createInferenceMapper(context); - // First infer from all arguments using wildcards for all context sensitive function expressions + // We perform two passes over the arguments. In the first pass we infer from all arguments, but use + // wildcards for all context sensitive function expressions. for (var i = 0; i < args.length; i++) { if (args[i].kind === SyntaxKind.OmittedExpression) { continue; @@ -5900,11 +5901,15 @@ module ts { inferTypes(context, globalTemplateStringsArrayType, parameterType); continue; } - var mapper = !excludeArgument || excludeArgument[i] === undefined ? inferenceMapper : identityMapper; + // For context sensitive arguments we pass the identityMapper, which is a signal to treat all + // context sensitive function expressions as wildcards + var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); } - // Next, infer from those context sensitive arguments that are no longer excluded + // In the second pass we visit only context sensitive arguments, and only those that aren't excluded, this + // time treating function expressions normally (which may cause previously inferred type arguments to be fixed + // as we construct types for contextually typed parameters) if (excludeArgument) { for (var i = 0; i < args.length; i++) { if (args[i].kind === SyntaxKind.OmittedExpression) { From 005676005f0838dbecbd940468e9f86b3d4b5b49 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 30 Jan 2015 14:14:22 -0800 Subject: [PATCH 141/211] Adding test --- .../typeArgumentInferenceWithObjectLiteral.js | 34 ++++++++++ ...peArgumentInferenceWithObjectLiteral.types | 65 +++++++++++++++++++ .../typeArgumentInferenceWithObjectLiteral.ts | 18 +++++ 3 files changed, 117 insertions(+) create mode 100644 tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js create mode 100644 tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types create mode 100644 tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts diff --git a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js new file mode 100644 index 00000000000..e3105130a74 --- /dev/null +++ b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js @@ -0,0 +1,34 @@ +//// [typeArgumentInferenceWithObjectLiteral.ts] +interface Computed { + read(): T; + write(value: T); +} + +function foo(x: Computed) { } + +var s: string; + +// Calls below should infer string for T and then assign that type to the value parameter +foo({ + read: () => s, + write: value => s = value +}); +foo({ + write: value => s = value, + read: () => s +}); + + +//// [typeArgumentInferenceWithObjectLiteral.js] +function foo(x) { +} +var s; +// Calls below should infer string for T and then assign that type to the value parameter +foo({ + read: function () { return s; }, + write: function (value) { return s = value; } +}); +foo({ + write: function (value) { return s = value; }, + read: function () { return s; } +}); diff --git a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types new file mode 100644 index 00000000000..5cf2eac0418 --- /dev/null +++ b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types @@ -0,0 +1,65 @@ +=== tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts === +interface Computed { +>Computed : Computed +>T : T + + read(): T; +>read : () => T +>T : T + + write(value: T); +>write : (value: T) => any +>value : T +>T : T +} + +function foo(x: Computed) { } +>foo : (x: Computed) => void +>T : T +>x : Computed +>Computed : Computed +>T : T + +var s: string; +>s : string + +// Calls below should infer string for T and then assign that type to the value parameter +foo({ +>foo({ read: () => s, write: value => s = value}) : void +>foo : (x: Computed) => void +>{ read: () => s, write: value => s = value} : { read: () => string; write: (value: string) => string; } + + read: () => s, +>read : () => string +>() => s : () => string +>s : string + + write: value => s = value +>write : (value: string) => string +>value => s = value : (value: string) => string +>value : string +>s = value : string +>s : string +>value : string + +}); +foo({ +>foo({ write: value => s = value, read: () => s}) : void +>foo : (x: Computed) => void +>{ write: value => s = value, read: () => s} : { write: (value: string) => string; read: () => string; } + + write: value => s = value, +>write : (value: string) => string +>value => s = value : (value: string) => string +>value : string +>s = value : string +>s : string +>value : string + + read: () => s +>read : () => string +>() => s : () => string +>s : string + +}); + diff --git a/tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts b/tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts new file mode 100644 index 00000000000..249700fb33e --- /dev/null +++ b/tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts @@ -0,0 +1,18 @@ +interface Computed { + read(): T; + write(value: T); +} + +function foo(x: Computed) { } + +var s: string; + +// Calls below should infer string for T and then assign that type to the value parameter +foo({ + read: () => s, + write: value => s = value +}); +foo({ + write: value => s = value, + read: () => s +}); From 9f49a1637a1afc1f7e0953a5748e5088e91dc777 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 30 Jan 2015 15:23:06 -0800 Subject: [PATCH 142/211] Update LKG. --- bin/tsc.js | 1195 +++++++++++++++++--------- bin/typescript.d.ts | 16 +- bin/typescriptServices.d.ts | 16 +- bin/typescriptServices.js | 1157 +++++++++++++++++-------- bin/typescriptServices_internal.d.ts | 6 +- bin/typescript_internal.d.ts | 6 +- 6 files changed, 1622 insertions(+), 774 deletions(-) diff --git a/bin/tsc.js b/bin/tsc.js index 070f5356189..ab5386e2b40 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -182,6 +182,19 @@ var ts; return result; } ts.clone = clone; + function extend(first, second) { + var result = {}; + for (var id in first) { + result[id] = first[id]; + } + for (var id in second) { + if (!hasProperty(result, id)) { + result[id] = second[id]; + } + } + return result; + } + ts.extend = extend; function forEachValue(map, callback) { var result; for (var id in map) { @@ -503,7 +516,7 @@ var ts; return path2; if (!(path2 && path2.length)) return path1; - if (path2.charAt(0) === ts.directorySeparator) + if (getRootLength(path2) !== 0) return path2; if (path1.charAt(path1.length - 1) === ts.directorySeparator) return path1 + path2; @@ -666,6 +679,32 @@ var ts; fileStream.Close(); } } + function getNames(collection) { + var result = []; + for (var e = new Enumerator(collection); !e.atEnd(); e.moveNext()) { + result.push(e.item().Name); + } + return result.sort(); + } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var folder = fso.GetFolder(path || "."); + var files = getNames(folder.files); + for (var i = 0; i < files.length; i++) { + var name = files[i]; + if (!extension || ts.fileExtensionIs(name, extension)) { + result.push(ts.combinePaths(path, name)); + } + } + var subfolders = getNames(folder.subfolders); + for (var i = 0; i < subfolders.length; i++) { + visitDirectory(ts.combinePaths(path, subfolders[i])); + } + } + } return { args: args, newLine: "\r\n", @@ -695,6 +734,7 @@ var ts; getCurrentDirectory: function () { return new ActiveXObject("WScript.Shell").CurrentDirectory; }, + readDirectory: readDirectory, exit: function (exitCode) { try { WScript.Quit(exitCode); @@ -739,6 +779,30 @@ var ts; } _fs.writeFileSync(fileName, data, "utf8"); } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var files = _fs.readdirSync(path || ".").sort(); + var directories = []; + for (var i = 0; i < files.length; i++) { + var name = ts.combinePaths(path, files[i]); + var stat = _fs.lstatSync(name); + if (stat.isFile()) { + if (!extension || ts.fileExtensionIs(name, extension)) { + result.push(name); + } + } + else if (stat.isDirectory()) { + directories.push(name); + } + } + for (var i = 0; i < directories.length; i++) { + visitDirectory(directories[i]); + } + } + } return { args: process.argv.slice(2), newLine: _os.EOL, @@ -783,6 +847,7 @@ var ts; getCurrentDirectory: function () { return process.cwd(); }, + readDirectory: readDirectory, getMemoryUsage: function () { if (global.gc) { global.gc(); @@ -952,6 +1017,7 @@ var ts; Modifiers_cannot_appear_here: { code: 1184, category: 1 /* Error */, key: "Modifiers cannot appear here." }, Merge_conflict_marker_encountered: { code: 1185, category: 1 /* Error */, key: "Merge conflict marker encountered." }, A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1 /* Error */, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1 /* Error */, key: "A parameter property may not be a binding pattern." }, 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." }, @@ -1103,6 +1169,11 @@ var ts; Type_0_has_no_property_1: { code: 2460, category: 1 /* Error */, key: "Type '{0}' has no property '{1}'." }, Type_0_is_not_an_array_type: { code: 2461, category: 1 /* Error */, key: "Type '{0}' is not an array type." }, A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1 /* Error */, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1 /* Error */, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: 1 /* Error */, key: "A computed property name must be of type 'string', 'number', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1 /* Error */, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1 /* Error */, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: 1 /* Error */, key: "A computed property name cannot reference a type parameter from its containing type." }, 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}'." }, @@ -1175,19 +1246,22 @@ var ts; 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'." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1 /* Error */, key: "A const enum member can only be accessed using a string literal.", isEarly: true }, 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'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1 /* Error */, key: "Property '{0}' does not exist on 'const' enum '{1}'.", isEarly: true }, 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}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1 /* Error */, key: "Compiler option '{0}' requires a value of type {1}." }, 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." }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1 /* Error */, key: "Option noEmit cannot be specified with option out or outDir." }, - Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1 /* Error */, key: "Option noEmit cannot be specified with option declaration." }, + 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." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1 /* Error */, key: "Option 'project' cannot be mixed with source files on a command line." }, 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." }, @@ -1202,6 +1276,7 @@ var ts; 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." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2 /* Message */, key: "Compile the project in the given directory." }, 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" }, @@ -1209,7 +1284,7 @@ var ts; 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..." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2 /* Message */, key: "File change detected. Starting incremental compilation..." }, KIND: { code: 6034, category: 2 /* Message */, key: "KIND" }, FILE: { code: 6035, category: 2 /* Message */, key: "FILE" }, VERSION: { code: 6036, category: 2 /* Message */, key: "VERSION" }, @@ -1225,7 +1300,7 @@ var ts; 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}." }, - Raise_error_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." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2 /* Message */, key: "Raise error 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'." }, Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2 /* Message */, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, @@ -1247,8 +1322,7 @@ var ts; 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." }, yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported.", isEarly: true }, - Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true }, - Computed_property_names_are_not_currently_supported: { code: 9002, category: 1 /* Error */, key: "Computed property names are not currently supported.", isEarly: true } + Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true } }; })(ts || (ts = {})); var ts; @@ -1388,10 +1462,10 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart); + return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); } function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart); + return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; @@ -1435,7 +1509,7 @@ var ts; } ts.computeLineStarts = computeLineStarts; function getPositionFromLineAndCharacter(lineStarts, line, character) { - ts.Debug.assert(line > 0); + ts.Debug.assert(line > 0 && line <= lineStarts.length); return lineStarts[line - 1] + character - 1; } ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; @@ -2099,7 +2173,7 @@ var ts; value = 0; } tokenValue = "" + value; - return 7 /* NumericLiteral */; + return token = 7 /* NumericLiteral */; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 /* O */ || text.charCodeAt(pos + 1) === 111 /* o */)) { pos += 2; @@ -2109,7 +2183,7 @@ var ts; value = 0; } tokenValue = "" + value; - return 7 /* NumericLiteral */; + return token = 7 /* NumericLiteral */; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { tokenValue = "" + scanOctalDigits(); @@ -2667,6 +2741,12 @@ var ts; return undefined; } switch (node.kind) { + case 122 /* ComputedPropertyName */: + if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + return node; + } + node = node.parent; + break; case 157 /* ArrowFunction */: if (!includeArrowFunctions) { continue; @@ -2688,13 +2768,24 @@ var ts; } } ts.getThisContainer = getThisContainer; - function getSuperContainer(node) { + function getSuperContainer(node, includeFunctions) { while (true) { node = node.parent; - if (!node) { - return undefined; - } + if (!node) + return node; switch (node.kind) { + case 122 /* ComputedPropertyName */: + if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + return node; + } + node = node.parent; + break; + case 190 /* FunctionDeclaration */: + case 156 /* FunctionExpression */: + case 157 /* ArrowFunction */: + if (!includeFunctions) { + continue; + } case 126 /* PropertyDeclaration */: case 125 /* PropertySignature */: case 128 /* MethodDeclaration */: @@ -2787,6 +2878,8 @@ var ts; return node === parent.expression; case 169 /* TemplateSpan */: return node === parent.expression; + case 122 /* ComputedPropertyName */: + return node === parent.expression; default: if (isExpression(parent)) { return true; @@ -3971,7 +4064,7 @@ var ts; return canFollowModifier(); } function canFollowModifier() { - return token === 18 /* OpenBracketToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); + return token === 18 /* OpenBracketToken */ || token === 14 /* OpenBraceToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); } function isListElement(parsingContext, inErrorRecovery) { var node = currentNode(parsingContext); @@ -6294,7 +6387,7 @@ var ts; var ts; (function (ts) { function getModuleInstanceState(node) { - if (node.kind === 192 /* InterfaceDeclaration */) { + if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 193 /* TypeAliasDeclaration */) { return 0 /* NonInstantiated */; } else if (ts.isConstEnumDeclaration(node)) { @@ -6327,10 +6420,10 @@ var ts; } } ts.getModuleInstanceState = getModuleInstanceState; - function hasComputedNameButNotSymbol(declaration) { + function hasDynamicName(declaration) { return declaration.name && declaration.name.kind === 122 /* ComputedPropertyName */; } - ts.hasComputedNameButNotSymbol = hasComputedNameButNotSymbol; + ts.hasDynamicName = hasDynamicName; function bindSourceFile(file) { var parent; var container; @@ -6366,7 +6459,7 @@ var ts; if (node.kind === 195 /* ModuleDeclaration */ && node.name.kind === 8 /* StringLiteral */) { return '"' + node.name.text + '"'; } - ts.Debug.assert(!hasComputedNameButNotSymbol(node)); + ts.Debug.assert(!hasDynamicName(node)); return node.name.text; } switch (node.kind) { @@ -6386,9 +6479,7 @@ var ts; return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); } function declareSymbol(symbols, parent, node, includes, excludes) { - if (hasComputedNameButNotSymbol(node)) { - return undefined; - } + ts.Debug.assert(!hasDynamicName(node)); var name = getDeclarationName(node); if (name !== undefined) { var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); @@ -6607,14 +6698,14 @@ var ts; break; case 126 /* PropertyDeclaration */: case 125 /* PropertySignature */: - bindDeclaration(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0), 107455 /* PropertyExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0), 107455 /* PropertyExcludes */, false); break; case 204 /* PropertyAssignment */: case 205 /* ShorthandPropertyAssignment */: - bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); break; case 206 /* EnumMember */: - bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); break; case 132 /* CallSignature */: case 133 /* ConstructSignature */: @@ -6623,7 +6714,7 @@ var ts; break; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: - bindDeclaration(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */, true); break; case 190 /* FunctionDeclaration */: bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); @@ -6632,10 +6723,10 @@ var ts; bindDeclaration(node, 16384 /* Constructor */, 0, true); break; case 130 /* GetAccessor */: - bindDeclaration(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); break; case 131 /* SetAccessor */: - bindDeclaration(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); break; case 136 /* FunctionType */: case 137 /* ConstructorType */: @@ -6708,6 +6799,14 @@ var ts; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */, 107455 /* PropertyExcludes */); } } + function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) { + if (hasDynamicName(node)) { + bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); + } + else { + bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer); + } + } } ts.bindSourceFile = bindSourceFile; })(ts || (ts = {})); @@ -6724,6 +6823,7 @@ var ts; var emptyArray = []; var emptySymbols = {}; var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var emitResolver = createResolver(); var checker = { getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, @@ -6769,8 +6869,8 @@ var ts; var numberType = createIntrinsicType(4 /* Number */, "number"); var booleanType = createIntrinsicType(8 /* Boolean */, "boolean"); var voidType = createIntrinsicType(16 /* Void */, "void"); - var undefinedType = createIntrinsicType(32 /* Undefined */ | 131072 /* Unwidened */, "undefined"); - var nullType = createIntrinsicType(64 /* Null */ | 131072 /* Unwidened */, "null"); + var undefinedType = createIntrinsicType(32 /* Undefined */ | 262144 /* ContainsUndefinedOrNull */, "undefined"); + var nullType = createIntrinsicType(64 /* Null */ | 262144 /* ContainsUndefinedOrNull */, "null"); var unknownType = createIntrinsicType(1 /* Any */, "unknown"); var resolvingType = createIntrinsicType(1 /* Any */, "__resolving__"); var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); @@ -6800,6 +6900,20 @@ var ts; var potentialThisCollisions = []; var diagnostics = []; var diagnosticsModified = false; + var primitiveTypeInfo = { + "string": { + type: stringType, + flags: 258 /* StringLike */ + }, + "number": { + type: numberType, + flags: 132 /* NumberLike */ + }, + "boolean": { + type: booleanType, + flags: 8 /* Boolean */ + } + }; function addDiagnostic(diagnostic) { diagnostics.push(diagnostic); diagnosticsModified = true; @@ -7016,6 +7130,15 @@ var ts; break loop; } break; + case 122 /* ComputedPropertyName */: + var grandparent = location.parent.parent; + if (grandparent.kind === 191 /* ClassDeclaration */ || grandparent.kind === 192 /* InterfaceDeclaration */) { + if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056 /* Type */)) { + error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); + return undefined; + } + } + break; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: case 129 /* Constructor */: @@ -8050,7 +8173,7 @@ var ts; } if (pattern.kind === 144 /* ObjectBindingPattern */) { var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericName(name.text) && getIndexTypeOfType(parentType, 1 /* Number */) || getIndexTypeOfType(parentType, 0 /* String */); + var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1 /* Number */) || getIndexTypeOfType(parentType, 0 /* String */); if (!type) { error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); return unknownType; @@ -8087,7 +8210,7 @@ var ts; } if (declaration.kind === 124 /* Parameter */) { var func = declaration.parent; - if (func.kind === 131 /* SetAccessor */ && !ts.hasComputedNameButNotSymbol(func)) { + if (func.kind === 131 /* SetAccessor */ && !ts.hasDynamicName(func)) { var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 130 /* GetAccessor */); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); @@ -8868,7 +8991,7 @@ var ts; returnType = getTypeFromTypeNode(declaration.type); } else { - if (declaration.kind === 130 /* GetAccessor */ && !ts.hasComputedNameButNotSymbol(declaration)) { + if (declaration.kind === 130 /* GetAccessor */ && !ts.hasDynamicName(declaration)) { var setter = ts.getDeclarationOfKind(declaration.symbol, 131 /* SetAccessor */); returnType = getAnnotatedAccessorType(setter); } @@ -9030,14 +9153,18 @@ var ts; return result; } } - function getUnwidenedFlagOfTypes(types) { - return ts.forEach(types, function (t) { return t.flags & 131072 /* Unwidened */; }) || 0; + function getWideningFlagsOfTypes(types) { + var result = 0; + for (var i = 0; i < types.length; i++) { + result |= types[i].flags; + } + return result & 786432 /* RequiresWidening */; } function createTypeReference(target, typeArguments) { var id = getTypeListId(typeArguments); var type = target.instantiations[id]; if (!type) { - var flags = 4096 /* Reference */ | getUnwidenedFlagOfTypes(typeArguments); + var flags = 4096 /* Reference */ | getWideningFlagsOfTypes(typeArguments); type = target.instantiations[id] = createObjectType(flags, target.symbol); type.target = target; type.typeArguments = typeArguments; @@ -9254,7 +9381,7 @@ var ts; var id = getTypeListId(sortedTypes); var type = unionTypes[id]; if (!type) { - type = unionTypes[id] = createObjectType(16384 /* Union */ | getUnwidenedFlagOfTypes(sortedTypes)); + type = unionTypes[id] = createObjectType(16384 /* Union */ | getWideningFlagsOfTypes(sortedTypes)); type.types = sortedTypes; } return type; @@ -9481,6 +9608,8 @@ var ts; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: return isContextSensitiveFunctionLikeDeclaration(node); + case 155 /* ParenthesizedExpression */: + return isContextSensitive(node.expression); } return false; } @@ -9541,6 +9670,10 @@ var ts; error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); } else if (errorInfo) { + if (errorInfo.next === undefined) { + errorInfo = undefined; + isRelatedTo(source, target, errorNode !== undefined, headMessage, true); + } if (containingMessageChain) { errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); } @@ -9550,7 +9683,8 @@ var ts; function reportError(message, arg0, arg1, arg2) { errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); } - function isRelatedTo(source, target, reportErrors, headMessage) { + function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { + if (elaborateErrors === void 0) { elaborateErrors = false; } var result; if (source === target) return -1 /* True */; @@ -9619,7 +9753,7 @@ var ts; } 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))) { + if (sourceOrApparentType.flags & 48128 /* ObjectType */ && target.flags & 48128 /* ObjectType */ && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; return result; } @@ -9700,14 +9834,17 @@ var ts; return 0 /* False */; } } - function objectTypeRelatedTo(source, target, reportErrors) { + function objectTypeRelatedTo(source, target, reportErrors, elaborateErrors) { + if (elaborateErrors === void 0) { elaborateErrors = false; } if (overflow) { return 0 /* False */; } var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; var related = relation[id]; if (related !== undefined) { - return related ? -1 /* True */ : 0 /* False */; + if (!elaborateErrors || (related === 3 /* FailedAndReported */)) { + return related === 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */; + } } if (depth > 0) { for (var i = 0; i < depth; i++) { @@ -9729,7 +9866,7 @@ var ts; sourceStack[depth] = source; targetStack[depth] = target; maybeStack[depth] = {}; - maybeStack[depth][id] = true; + maybeStack[depth][id] = 1 /* Succeeded */; depth++; var saveExpandingFlags = expandingFlags; if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) @@ -9758,11 +9895,11 @@ var ts; depth--; if (result) { var maybeCache = maybeStack[depth]; - var destinationCache = result === -1 /* True */ || depth === 0 ? relation : maybeStack[depth - 1]; + var destinationCache = (result === -1 /* True */ || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { - relation[id] = false; + relation[id] = reportErrors ? 3 /* FailedAndReported */ : 2 /* Failed */; } return result; } @@ -9787,12 +9924,13 @@ var ts; } var result = -1 /* True */; var properties = getPropertiesOfObjectType(target); + var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072 /* ObjectLiteral */); 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 || !(targetProp.flags & 536870912 /* Optional */)) { + if (!(targetProp.flags & 536870912 /* Optional */) || requireOptionalProperties) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); } @@ -10137,9 +10275,6 @@ var ts; } 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; } @@ -10150,14 +10285,19 @@ var ts; var properties = getPropertiesOfObjectType(type); var members = {}; ts.forEach(properties, function (p) { - var symbol = createSymbol(p.flags | 67108864 /* Transient */, p.name); - symbol.declarations = p.declarations; - symbol.parent = p.parent; - symbol.type = getWidenedType(getTypeOfSymbol(p)); - symbol.target = p; - if (p.valueDeclaration) - symbol.valueDeclaration = p.valueDeclaration; - members[symbol.name] = symbol; + var propType = getTypeOfSymbol(p); + var widenedType = getWidenedType(propType); + if (propType !== widenedType) { + var symbol = createSymbol(p.flags | 67108864 /* Transient */, p.name); + symbol.declarations = p.declarations; + symbol.parent = p.parent; + symbol.type = widenedType; + symbol.target = p; + if (p.valueDeclaration) + symbol.valueDeclaration = p.valueDeclaration; + p = symbol; + } + members[p.name] = p; }); var stringIndexType = getIndexTypeOfType(type, 0 /* String */); var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); @@ -10168,16 +10308,16 @@ var ts; return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); } function getWidenedType(type) { - if (type.flags & 131072 /* Unwidened */) { + if (type.flags & 786432 /* RequiresWidening */) { if (type.flags & (32 /* Undefined */ | 64 /* Null */)) { return anyType; } + if (type.flags & 131072 /* ObjectLiteral */) { + return getWidenedTypeOfObjectLiteral(type); + } if (type.flags & 16384 /* Union */) { return getUnionType(ts.map(type.types, getWidenedType)); } - if (isTypeOfObjectLiteral(type)) { - return getWidenedTypeOfObjectLiteral(type); - } if (isArrayType(type)) { return createArrayType(getWidenedType(type.typeArguments[0])); } @@ -10197,11 +10337,11 @@ var ts; if (isArrayType(type)) { return reportWideningErrorsInType(type.typeArguments[0]); } - if (isTypeOfObjectLiteral(type)) { + if (type.flags & 131072 /* ObjectLiteral */) { var errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); - if (t.flags & 131072 /* Unwidened */) { + if (t.flags & 262144 /* ContainsUndefinedOrNull */) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } @@ -10241,7 +10381,7 @@ var ts; error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } function reportErrorsFromWidening(declaration, type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 131072 /* Unwidened */) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144 /* ContainsUndefinedOrNull */) { if (!reportWideningErrorsInType(type)) { reportImplicitAnyError(declaration, type); } @@ -10465,11 +10605,14 @@ var ts; } ts.Debug.fail("should not get here"); } - function subtractPrimitiveTypes(type, subtractMask) { + function removeTypesFromUnionType(type, typeKind, isOfTypeKind) { 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); })); + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); + if (narrowedType !== emptyObjectType) { + return narrowedType; + } } } return type; @@ -10614,7 +10757,7 @@ var ts; case 129 /* Constructor */: break loop; } - if (narrowedType !== type && isTypeSubtypeOf(narrowedType, type)) { + if (narrowedType !== type) { if (isVariableAssignedWithin(symbol, node)) { break; } @@ -10632,16 +10775,24 @@ var ts; if (left.expression.kind !== 64 /* Identifier */ || getResolvedSymbol(left.expression) !== symbol) { return type; } - var t = right.text; - var checkType = t === "string" ? stringType : t === "number" ? numberType : t === "boolean" ? booleanType : emptyObjectType; + var typeInfo = primitiveTypeInfo[right.text]; if (expr.operator === 31 /* ExclamationEqualsEqualsToken */) { assumeTrue = !assumeTrue; } if (assumeTrue) { - return checkType === emptyObjectType ? subtractPrimitiveTypes(type, 2 /* String */ | 4 /* Number */ | 8 /* Boolean */) : checkType; + if (!typeInfo) { + return removeTypesFromUnionType(type, 258 /* StringLike */ | 132 /* NumberLike */ | 8 /* Boolean */, true); + } + if (isTypeSubtypeOf(typeInfo.type, type)) { + return typeInfo.type; + } + return removeTypesFromUnionType(type, typeInfo.flags, false); } else { - return checkType === emptyObjectType ? type : subtractPrimitiveTypes(type, checkType.flags); + if (typeInfo) { + return removeTypesFromUnionType(type, typeInfo.flags, true); + } + return type; } } function narrowTypeByAnd(type, expr, assumeTrue) { @@ -10678,8 +10829,14 @@ var ts; if (!prototypeProperty) { return type; } - var prototypeType = getTypeOfSymbol(prototypeProperty); - return isTypeSubtypeOf(prototypeType, type) ? prototypeType : type; + var targetType = getTypeOfSymbol(prototypeProperty); + if (isTypeSubtypeOf(targetType, type)) { + return targetType; + } + if (type.flags & 16384 /* Union */) { + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); + } + return type; } function narrowType(type, expr, assumeTrue) { switch (expr.kind) { @@ -10777,6 +10934,9 @@ var ts; error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); } break; + case 122 /* ComputedPropertyName */: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); + break; } if (needToCaptureLexicalThis) { captureLexicalThis(node, container); @@ -10788,26 +10948,6 @@ var ts; } return anyType; } - function getSuperContainer(node) { - while (true) { - node = node.parent; - if (!node) - return node; - switch (node.kind) { - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - return node; - } - } - } function isInConstructorArgumentInitializer(node, constructorDecl) { for (var n = node; n && n !== constructorDecl; n = n.parent) { if (n.kind === 124 /* Parameter */) { @@ -10828,7 +10968,7 @@ var ts; error(node, ts.Diagnostics.super_can_only_be_referenced_in_a_derived_class); return unknownType; } - var container = getSuperContainer(node); + var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; if (isCallExpression) { @@ -10837,7 +10977,7 @@ var ts; else { var needToCaptureLexicalThis = false; while (container && container.kind === 157 /* ArrowFunction */) { - container = getSuperContainer(container); + container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } if (container && container.parent && container.parent.kind === 191 /* ClassDeclaration */) { @@ -10869,7 +11009,10 @@ var ts; return returnType; } } - if (isCallExpression) { + if (container.kind === 122 /* ComputedPropertyName */) { + error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); + } + else if (isCallExpression) { error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); } else { @@ -11008,9 +11151,15 @@ var ts; function getContextualTypeForObjectLiteralElement(element) { var objectLiteral = element.parent; var type = getContextualType(objectLiteral); - var name = element.name.text; - if (type && name) { - return getTypeOfPropertyOfContextualType(type, name) || isNumericName(name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); + if (type) { + if (!ts.hasDynamicName(element)) { + var symbolName = getSymbolOfNode(element).name; + var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); + if (propertyType) { + return propertyType; + } + } + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); } return undefined; } @@ -11061,6 +11210,8 @@ var ts; case 169 /* TemplateSpan */: ts.Debug.assert(parent.parent.kind === 165 /* TemplateExpression */); return getContextualTypeForSubstitutionExpression(parent.parent, node); + case 155 /* ParenthesizedExpression */: + return getContextualType(parent); } return undefined; } @@ -11165,72 +11316,84 @@ var ts; return createArrayType(getUnionType(elementTypes)); } function isNumericName(name) { + return name.kind === 122 /* ComputedPropertyName */ ? isNumericComputedName(name) : isNumericLiteralName(name.text); + } + function isNumericComputedName(name) { + return isTypeOfKind(checkComputedPropertyName(name), 1 /* Any */ | 132 /* NumberLike */); + } + function isNumericLiteralName(name) { return (+name).toString() === name; } + function checkComputedPropertyName(node) { + var links = getNodeLinks(node.expression); + if (!links.resolvedType) { + links.resolvedType = checkExpression(node.expression); + if (!isTypeOfKind(links.resolvedType, 1 /* Any */ | 132 /* NumberLike */ | 258 /* StringLike */)) { + error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); + } + } + return links.resolvedType; + } function checkObjectLiteral(node, contextualMapper) { checkGrammarObjectLiteralExpression(node); - var members = node.symbol.members; - var properties = {}; + var propertiesTable = {}; + var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var id in members) { - if (ts.hasProperty(members, id)) { - var member = members[id]; - if (member.flags & 4 /* Property */ || ts.isObjectLiteralMethod(member.declarations[0])) { - var memberDecl = member.declarations[0]; - if (memberDecl.kind === 204 /* PropertyAssignment */) { - var type = checkExpression(memberDecl.initializer, contextualMapper); - } - else if (memberDecl.kind === 128 /* MethodDeclaration */) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); - } - else { - ts.Debug.assert(memberDecl.kind === 205 /* ShorthandPropertyAssignment */); - var type = memberDecl.name.kind === 122 /* ComputedPropertyName */ ? unknownType : checkExpression(memberDecl.name, contextualMapper); - } - typeFlags |= type.flags; - var prop = createSymbol(4 /* Property */ | 67108864 /* 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; + for (var i = 0; i < node.properties.length; i++) { + var memberDecl = node.properties[i]; + var member = memberDecl.symbol; + if (memberDecl.kind === 204 /* PropertyAssignment */ || memberDecl.kind === 205 /* ShorthandPropertyAssignment */ || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 204 /* PropertyAssignment */) { + var type = checkPropertyAssignment(memberDecl, contextualMapper); + } + else if (memberDecl.kind === 128 /* MethodDeclaration */) { + var type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { - var getAccessor = ts.getDeclarationOfKind(member, 130 /* GetAccessor */); - if (getAccessor) { - checkAccessorDeclaration(getAccessor); - } - var setAccessor = ts.getDeclarationOfKind(member, 131 /* SetAccessor */); - if (setAccessor) { - checkAccessorDeclaration(setAccessor); - } + ts.Debug.assert(memberDecl.kind === 205 /* ShorthandPropertyAssignment */); + var type = memberDecl.name.kind === 122 /* ComputedPropertyName */ ? unknownType : checkExpression(memberDecl.name, contextualMapper); } - properties[member.name] = member; + typeFlags |= type.flags; + var prop = createSymbol(4 /* Property */ | 67108864 /* 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 { + ts.Debug.assert(memberDecl.kind === 130 /* GetAccessor */ || memberDecl.kind === 131 /* SetAccessor */); + checkAccessorDeclaration(memberDecl); + } + if (!ts.hasDynamicName(memberDecl)) { + propertiesTable[member.name] = member; + } + propertiesArray.push(member); } var stringIndexType = getIndexType(0 /* String */); var numberIndexType = getIndexType(1 /* Number */); - var result = createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= (typeFlags & 131072 /* Unwidened */); + var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); + result.flags |= 131072 /* ObjectLiteral */ | 524288 /* ContainsObjectLiteral */ | (typeFlags & 262144 /* ContainsUndefinedOrNull */); return result; 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); - } + for (var i = 0; i < propertiesArray.length; i++) { + var propertyDecl = node.properties[i]; + if (kind === 0 /* String */ || isNumericName(propertyDecl.name)) { + var type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, type)) { + propTypes.push(type); } } } - return propTypes.length ? getUnionType(propTypes) : undefinedType; + var result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= result.flags; + return result; } return undefined; } @@ -11341,8 +11504,10 @@ var ts; if (objectType === unknownType) { return unknownType; } - if (isConstEnumObjectType(objectType) && node.argumentExpression && node.argumentExpression.kind !== 8 /* StringLiteral */) { - error(node.argumentExpression, ts.Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); + var isConstEnum = isConstEnumObjectType(objectType); + if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8 /* StringLiteral */)) { + error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); + return unknownType; } if (node.argumentExpression) { if (node.argumentExpression.kind === 8 /* StringLiteral */ || node.argumentExpression.kind === 7 /* NumericLiteral */) { @@ -11352,10 +11517,14 @@ var ts; getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } + else if (isConstEnum) { + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + return unknownType; + } } } - if (indexType.flags & (1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { - if (indexType.flags & (1 /* Any */ | 132 /* NumberLike */)) { + if (isTypeOfKind(indexType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { + if (isTypeOfKind(indexType, 1 /* Any */ | 132 /* NumberLike */)) { var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */); if (numberIndexType) { return numberIndexType; @@ -11539,10 +11708,25 @@ var ts; } return args; } + function getEffectiveTypeArguments(callExpression) { + if (callExpression.expression.kind === 90 /* SuperKeyword */) { + var containingClass = ts.getAncestor(callExpression, 191 /* ClassDeclaration */); + var baseClassTypeNode = containingClass && ts.getClassBaseTypeNode(containingClass); + return baseClassTypeNode && baseClassTypeNode.typeArguments; + } + else { + return callExpression.typeArguments; + } + } function resolveCall(node, signatures, candidatesOutArray) { var isTaggedTemplate = node.kind === 153 /* TaggedTemplateExpression */; - var typeArguments = isTaggedTemplate ? undefined : node.typeArguments; - ts.forEach(typeArguments, checkSourceElement); + var typeArguments; + if (!isTaggedTemplate) { + typeArguments = getEffectiveTypeArguments(node); + if (node.expression.kind !== 90 /* SuperKeyword */) { + ts.forEach(typeArguments, checkSourceElement); + } + } var candidates = candidatesOutArray || []; collectCandidates(); if (!candidates.length) { @@ -11659,8 +11843,10 @@ var ts; var result = candidates; var lastParent; var lastSymbol; - var cutoffPos = 0; - var pos; + var cutoffIndex = 0; + var index; + var specializedIndex = -1; + var spliceIndex; ts.Debug.assert(!result.length); for (var i = 0; i < signatures.length; i++) { var signature = signatures[i]; @@ -11668,22 +11854,27 @@ var ts; var parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { if (lastParent && parent === lastParent) { - pos++; + index++; } else { lastParent = parent; - pos = cutoffPos; + index = cutoffIndex; } } else { - pos = cutoffPos = result.length; + index = cutoffIndex = result.length; lastParent = parent; } lastSymbol = symbol; - for (var j = result.length; j > pos; j--) { - result[j] = result[j - 1]; + if (signature.hasStringLiterals) { + specializedIndex++; + spliceIndex = specializedIndex; + cutoffIndex++; } - result[pos] = signature; + else { + spliceIndex = index; + } + result.splice(spliceIndex, 0, signature); } } } @@ -11799,7 +11990,7 @@ var ts; return getReturnTypeOfSignature(signature); } function checkTaggedTemplateExpression(node) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { grammarErrorOnFirstToken(node.template, ts.Diagnostics.Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher); } return getReturnTypeOfSignature(getResolvedSignature(node)); @@ -11948,7 +12139,7 @@ var ts; } } function checkArithmeticOperandType(operand, type, diagnostic) { - if (!(type.flags & (1 /* Any */ | 132 /* NumberLike */))) { + if (!isTypeOfKind(type, 1 /* Any */ | 132 /* NumberLike */)) { error(operand, diagnostic); return false; } @@ -12052,11 +12243,20 @@ var ts; } return numberType; } - function isStructuredType(type) { - if (type.flags & 16384 /* Union */) { - return !ts.forEach(type.types, function (t) { return !isStructuredType(t); }); + function isTypeOfKind(type, kind) { + if (type.flags & kind) { + return true; } - return (type.flags & (48128 /* ObjectType */ | 512 /* TypeParameter */)) !== 0; + if (type.flags & 16384 /* Union */) { + var types = type.types; + for (var i = 0; i < types.length; i++) { + if (!(types[i].flags & kind)) { + return false; + } + } + return true; + } + return false; } function isConstEnumObjectType(type) { return type.flags & (48128 /* ObjectType */ | 32768 /* Anonymous */) && type.symbol && isConstEnumSymbol(type.symbol); @@ -12065,7 +12265,7 @@ var ts; return (symbol.flags & 128 /* ConstEnum */) !== 0; } function checkInstanceOfExpression(node, leftType, rightType) { - if (!(leftType.flags & 1 /* Any */ || isStructuredType(leftType))) { + if (isTypeOfKind(leftType, 510 /* Primitive */)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); } if (!(rightType.flags & 1 /* Any */ || isTypeSubtypeOf(rightType, globalFunctionType))) { @@ -12074,10 +12274,10 @@ var ts; return booleanType; } function checkInExpression(node, leftType, rightType) { - if (leftType !== anyType && leftType !== stringType && leftType !== numberType) { + if (!isTypeOfKind(leftType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number); } - if (!(rightType.flags & 1 /* Any */ || isStructuredType(rightType))) { + if (!isTypeOfKind(rightType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { 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; @@ -12088,7 +12288,7 @@ var ts; var p = properties[i]; if (p.kind === 204 /* PropertyAssignment */ || p.kind === 205 /* ShorthandPropertyAssignment */) { var name = p.name; - var type = sourceType.flags & 1 /* Any */ ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericName(name.text) && getIndexTypeOfType(sourceType, 1 /* Number */) || getIndexTypeOfType(sourceType, 0 /* String */); + var type = sourceType.flags & 1 /* Any */ ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1 /* Number */) || getIndexTypeOfType(sourceType, 0 /* String */); if (type) { checkDestructuringAssignment(p.initializer || name, type); } @@ -12207,13 +12407,13 @@ var ts; if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) rightType = leftType; var resultType; - if (leftType.flags & 132 /* NumberLike */ && rightType.flags & 132 /* NumberLike */) { + if (isTypeOfKind(leftType, 132 /* NumberLike */) && isTypeOfKind(rightType, 132 /* NumberLike */)) { resultType = numberType; } - else if (leftType.flags & 258 /* StringLike */ || rightType.flags & 258 /* StringLike */) { + else if (isTypeOfKind(leftType, 258 /* StringLike */) || isTypeOfKind(rightType, 258 /* StringLike */)) { resultType = stringType; } - else if (leftType.flags & 1 /* Any */ || leftType === unknownType || rightType.flags & 1 /* Any */ || rightType === unknownType) { + else if (leftType.flags & 1 /* Any */ || rightType.flags & 1 /* Any */) { resultType = anyType; } if (!resultType) { @@ -12311,8 +12511,17 @@ var ts; } return links.resolvedType; } + function checkPropertyAssignment(node, contextualMapper) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } + return checkExpression(node.initializer, contextualMapper); + } function checkObjectLiteralMethod(node, contextualMapper) { checkGrammarMethod(node); + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } @@ -12435,12 +12644,15 @@ var ts; checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); checkVariableLikeDeclaration(node); var func = ts.getContainingFunction(node); - if (node.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */)) { + if (node.flags & 112 /* AccessibilityModifier */) { func = ts.getContainingFunction(node); if (!(func.kind === 129 /* Constructor */ && ts.nodeIsPresent(func.body))) { error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } } + if (node.questionToken && ts.isBindingPattern(node.name) && func.body) { + error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature); + } if (node.dotDotDotToken) { if (!isArrayType(getTypeOfSymbol(node.symbol))) { error(node, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); @@ -12585,7 +12797,7 @@ var ts; error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement); } } - if (!ts.hasComputedNameButNotSymbol(node)) { + if (!ts.hasDynamicName(node)) { var otherKind = node.kind === 130 /* GetAccessor */ ? 131 /* SetAccessor */ : 130 /* GetAccessor */; var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind); if (otherAccessor) { @@ -12600,8 +12812,8 @@ var ts; } } } - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } checkFunctionLikeDeclaration(node); } @@ -12909,7 +13121,10 @@ var ts; } function checkFunctionLikeDeclaration(node) { checkSignatureDeclaration(node); - if (!ts.hasComputedNameButNotSymbol(node)) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } + else { var symbol = getSymbolOfNode(node); var localSymbol = node.localSymbol || symbol; var firstDeclaration = ts.getDeclarationOfKind(localSymbol, node.kind); @@ -13063,7 +13278,8 @@ var ts; } function checkVariableLikeDeclaration(node) { checkSourceElement(node.type); - if (ts.hasComputedNameButNotSymbol(node)) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); if (node.initializer) { checkExpressionCached(node.initializer); } @@ -13207,7 +13423,7 @@ var ts; } } var exprType = checkExpression(node.expression); - if (!(exprType.flags & 1 /* Any */ || isStructuredType(exprType))) { + if (!isTypeOfKind(exprType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { 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); @@ -13327,29 +13543,6 @@ var ts; 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 */); @@ -13357,9 +13550,20 @@ var ts; 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 */); + checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); + checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); }); + if (type.flags & 1024 /* Class */ && type.symbol.valueDeclaration.kind === 191 /* ClassDeclaration */) { + var classDeclaration = type.symbol.valueDeclaration; + for (var i = 0; i < classDeclaration.members.length; i++) { + var member = classDeclaration.members[i]; + if (!(member.flags & 128 /* Static */) && ts.hasDynamicName(member)) { + var propType = getTypeOfSymbol(member.symbol); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); + } + } + } } var errorNode; if (stringIndexType && numberIndexType) { @@ -13372,6 +13576,29 @@ var ts; if (errorNode && !isTypeAssignableTo(numberIndexType, stringIndexType)) { error(errorNode, ts.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType)); } + function checkIndexConstraintForProperty(prop, propertyType, containingType, indexDeclaration, indexType, indexKind) { + if (!indexType) { + return; + } + if (indexKind === 1 /* Number */ && !isNumericName(prop.valueDeclaration.name)) { + return; + } + var errorNode; + if (prop.valueDeclaration.name.kind === 122 /* ComputedPropertyName */ || prop.parent === containingType.symbol) { + errorNode = prop.valueDeclaration; + } + else if (indexDeclaration) { + errorNode = indexDeclaration; + } + else if (containingType.flags & 2048 /* Interface */) { + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + } + if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 /* 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)); + } + } } function checkTypeNameIsReserved(name, message) { switch (name.text) { @@ -13600,7 +13827,7 @@ var ts; var ambient = ts.isInAmbientContext(node); var enumIsConst = ts.isConst(node); ts.forEach(node.members, function (member) { - if (isNumericName(member.name.text)) { + if (member.name.kind !== 122 /* ComputedPropertyName */ && isNumericLiteralName(member.name.text)) { error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); } var initializer = member.initializer; @@ -14564,8 +14791,8 @@ var ts; if (symbol && (symbol.flags & 8 /* EnumMember */)) { var declaration = symbol.valueDeclaration; var constantValue; - if (declaration.kind === 206 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { - return constantValue; + if (declaration.kind === 206 /* EnumMember */) { + return getEnumMemberValue(declaration); } } return undefined; @@ -14624,7 +14851,7 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTemplateStringsArrayType = compilerOptions.target >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; + globalTemplateStringsArrayType = languageVersion >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; anyArrayType = createArrayType(anyType); } function checkGrammarModifiers(node) { @@ -14748,6 +14975,9 @@ var ts; else if (node.kind === 192 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); } + else if (node.kind === 124 /* Parameter */ && (flags & 112 /* AccessibilityModifier */) && ts.isBindingPattern(node.name)) { + return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); + } } function checkGrammarForDisallowedTrailingComma(list) { if (list && list.hasTrailingComma) { @@ -14932,16 +15162,14 @@ var ts; } function checkGrammarComputedPropertyName(node) { if (node.kind !== 122 /* ComputedPropertyName */) { - return; + return false; } - grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_not_currently_supported); - return; var computedPropertyName = node; - if (compilerOptions.target < 2 /* ES6 */) { - grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); + if (languageVersion < 2 /* ES6 */) { + return grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); } else if (computedPropertyName.expression.kind === 163 /* BinaryExpression */ && computedPropertyName.expression.operator === 23 /* CommaToken */) { - grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); + return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); } } function checkGrammarForGenerator(node) { @@ -15017,7 +15245,7 @@ var ts; } function checkGrammarAccessor(accessor) { var kind = accessor.kind; - if (compilerOptions.target < 1 /* ES5 */) { + if (languageVersion < 1 /* ES5 */) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); } else if (ts.isInAmbientContext(accessor)) { @@ -15182,7 +15410,7 @@ var ts; if (!declarationList.declarations.length) { return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); } - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { if (ts.isLet(declarationList)) { return grammarErrorOnFirstToken(declarationList, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } @@ -15265,7 +15493,7 @@ var ts; function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { var sourceFile = ts.getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var scanner = ts.createScanner(compilerOptions.target, true, sourceFile.text); + var scanner = ts.createScanner(languageVersion, true, sourceFile.text); var start = scanToken(scanner, node.pos); diagnostics.push(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); return true; @@ -15365,7 +15593,7 @@ var ts; if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); } - else if (compilerOptions.target >= 1 /* ES5 */) { + else if (languageVersion >= 1 /* ES5 */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); } } @@ -15373,7 +15601,7 @@ var ts; function grammarErrorAfterFirstToken(node, message, arg0, arg1, arg2) { var sourceFile = ts.getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var scanner = ts.createScanner(compilerOptions.target, true, sourceFile.text); + var scanner = ts.createScanner(languageVersion, true, sourceFile.text); scanToken(scanner, node.pos); diagnostics.push(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); return true; @@ -15500,9 +15728,10 @@ var ts; function writeCommentRange(currentSourceFile, writer, comment, newLine) { if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var lastLine = currentSourceFile.getLineStarts().length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + var nextLineStart = currentLine === lastLine ? (comment.end + 1) : currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), comment.pos); @@ -15622,6 +15851,7 @@ var ts; function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { var newLine = host.getNewLine(); var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var write; var writeLine; var increaseIndent; @@ -16114,6 +16344,9 @@ var ts; } } function emitPropertyDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } emitJsDocComments(node); emitClassMemberDeclarationFlags(node); emitVariableDeclaration(node); @@ -16182,6 +16415,9 @@ var ts; } } function emitAccessorDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } var accessors = getAllAccessorDeclarations(node.parent, node); if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); @@ -16239,6 +16475,9 @@ var ts; } } function emitFunctionDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } if ((node.kind !== 190 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); if (node.kind === 190 /* FunctionDeclaration */) { @@ -16490,6 +16729,7 @@ var ts; ts.getDeclarationDiagnostics = getDeclarationDiagnostics; function emitFiles(resolver, host, targetSourceFile) { var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = host.getNewLine(); @@ -16646,7 +16886,11 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - scopeName = sourceMapData.sourceMapNames[parentIndex] + "." + scopeName; + var name = node.name; + if (!name || name.kind !== 122 /* ComputedPropertyName */) { + scopeName = "." + scopeName; + } + scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; } scopeNameIndex = ts.getProperty(sourceMapNameIndexMap, scopeName); if (scopeNameIndex === undefined) { @@ -16662,7 +16906,8 @@ var ts; } else if (node.kind === 190 /* FunctionDeclaration */ || node.kind === 156 /* FunctionExpression */ || node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */ || node.kind === 130 /* GetAccessor */ || node.kind === 131 /* SetAccessor */ || node.kind === 195 /* ModuleDeclaration */ || node.kind === 191 /* ClassDeclaration */ || node.kind === 194 /* EnumDeclaration */) { if (node.name) { - scopeName = node.name.text; + var name = node.name; + scopeName = name.kind === 122 /* ComputedPropertyName */ ? ts.getTextOfNode(name) : node.name.text; } recordScopeNameStart(scopeName); } @@ -16882,11 +17127,11 @@ var ts; return false; } function emitLiteral(node) { - var text = compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; + var text = languageVersion < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; if (compilerOptions.sourceMap && (node.kind === 8 /* StringLiteral */ || ts.isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); } - else if (compilerOptions.target < 2 /* ES6 */ && node.kind === 7 /* NumericLiteral */ && isBinaryOrOctalIntegerLiteral(text)) { + else if (languageVersion < 2 /* ES6 */ && node.kind === 7 /* NumericLiteral */ && isBinaryOrOctalIntegerLiteral(text)) { write(node.text); } else { @@ -16897,7 +17142,7 @@ var ts; return '"' + ts.escapeString(node.text) + '"'; } function emitTemplateExpression(node) { - if (compilerOptions.target >= 2 /* ES6 */) { + if (languageVersion >= 2 /* ES6 */) { ts.forEachChild(node, emit); return; } @@ -16944,7 +17189,7 @@ var ts; } } function comparePrecedenceToBinaryPlus(expression) { - ts.Debug.assert(compilerOptions.target <= 1 /* ES5 */); + ts.Debug.assert(languageVersion < 2 /* ES6 */); switch (expression.kind) { case 163 /* BinaryExpression */: switch (expression.operator) { @@ -17110,7 +17355,7 @@ var ts; write("[]"); return; } - if (compilerOptions.target >= 2 /* ES6 */) { + if (languageVersion >= 2 /* ES6 */) { write("["); emitList(elements, 0, elements.length, (node.flags & 256 /* MultiLine */) !== 0, elements.hasTrailingComma); write("]"); @@ -17155,7 +17400,7 @@ var ts; if (!multiLine) { write(" "); } - emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && compilerOptions.target >= 1 /* ES5 */); + emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && languageVersion >= 1 /* ES5 */); if (!multiLine) { write(" "); } @@ -17168,32 +17413,23 @@ var ts; write("]"); } function emitMethod(node) { - if (!ts.isObjectLiteralMethod(node)) { - return; - } - emitLeadingComments(node); emit(node.name); - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { write(": function "); } emitSignatureAndBody(node); - emitTrailingComments(node); } function emitPropertyAssignment(node) { - emitLeadingComments(node); emit(node.name); write(": "); emit(node.initializer); - emitTrailingComments(node); } function emitShorthandPropertyAssignment(node) { - emitLeadingComments(node); emit(node.name); - if (compilerOptions.target < 2 /* ES6 */ || resolver.getExpressionNamePrefix(node.name)) { + if (languageVersion < 2 /* ES6 */ || resolver.getExpressionNamePrefix(node.name)) { write(": "); emitExpressionIdentifier(node.name); } - emitTrailingComments(node); } function tryEmitConstantValue(node) { var constantValue = resolver.getConstantValue(node); @@ -17261,7 +17497,7 @@ var ts; } } function emitTaggedTemplateExpression(node) { - ts.Debug.assert(compilerOptions.target >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); + ts.Debug.assert(languageVersion >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); emit(node.tag); write(" "); emit(node.template); @@ -17314,7 +17550,7 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (compilerOptions.target < 2 /* ES6 */ && node.operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { + if (languageVersion < 2 /* ES6 */ && node.operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { emitDestructuring(node); } else { @@ -17363,13 +17599,10 @@ var ts; } } function emitExpressionStatement(node) { - emitLeadingComments(node); emitParenthesized(node.expression, node.expression.kind === 157 /* ArrowFunction */); write(";"); - emitTrailingComments(node); } function emitIfStatement(node) { - emitLeadingComments(node); var endPos = emitToken(83 /* IfKeyword */, node.pos); write(" "); endPos = emitToken(16 /* OpenParenToken */, endPos); @@ -17387,7 +17620,6 @@ var ts; emitEmbeddedStatement(node.elseStatement); } } - emitTrailingComments(node); } function emitDoStatement(node) { write("do"); @@ -17469,11 +17701,9 @@ var ts; write(";"); } function emitReturnStatement(node) { - emitLeadingComments(node); emitToken(89 /* ReturnKeyword */, node.pos); emitOptional(" ", node.expression); write(";"); - emitTrailingComments(node); } function emitWithStatement(node) { write("with ("); @@ -17754,9 +17984,8 @@ var ts; } } function emitVariableDeclaration(node) { - emitLeadingComments(node); if (ts.isBindingPattern(node.name)) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { emitDestructuring(node); } else { @@ -17768,10 +17997,8 @@ var ts; emitModuleMemberName(node); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitVariableStatement(node) { - emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { if (ts.isLet(node.declarationList)) { write("let "); @@ -17785,11 +18012,9 @@ var ts; } emitCommaList(node.declarationList.declarations); write(";"); - emitTrailingComments(node); } function emitParameter(node) { - emitLeadingComments(node); - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { if (ts.isBindingPattern(node.name)) { var name = createTempVariable(node); if (!tempParameters) { @@ -17809,10 +18034,9 @@ var ts; emit(node.name); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitDefaultValueAssignments(node) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { var tempIndex = 0; ts.forEach(node.parameters, function (p) { if (ts.isBindingPattern(p.name)) { @@ -17841,7 +18065,7 @@ var ts; } } function emitRestParameter(node) { - if (compilerOptions.target < 2 /* ES6 */ && ts.hasRestParameters(node)) { + if (languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; var tempName = createTempVariable(node, true).text; @@ -17879,11 +18103,9 @@ var ts; } } function emitAccessor(node) { - emitLeadingComments(node); write(node.kind === 130 /* GetAccessor */ ? "get " : "set "); emit(node.name); emitSignatureAndBody(node); - emitTrailingComments(node); } function emitFunctionDeclaration(node) { if (ts.nodeIsMissing(node.body)) { @@ -17914,7 +18136,7 @@ var ts; write("("); if (node) { var parameters = node.parameters; - var omitCount = compilerOptions.target < 2 /* ES6 */ && ts.hasRestParameters(node) ? 1 : 0; + var omitCount = languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node) ? 1 : 0; emitList(parameters, 0, parameters.length - omitCount, false, false); } write(")"); @@ -17945,7 +18167,7 @@ var ts; write(" "); emitStart(node.body); write("return "); - emitNode(node.body); + emitNode(node.body, true); emitEnd(node.body); write(";"); emitTempDeclarations(false); @@ -17962,7 +18184,7 @@ var ts; writeLine(); emitLeadingComments(node.body); write("return "); - emit(node.body); + emit(node.body, true); write(";"); emitTrailingComments(node.body); } @@ -18136,7 +18358,6 @@ var ts; }); } function emitClassDeclaration(node) { - emitLeadingComments(node); write("var "); emit(node.name); write(" = (function ("); @@ -18186,7 +18407,6 @@ var ts; emitEnd(node); write(";"); } - emitTrailingComments(node); function emitConstructorOfClass() { var saveTempCount = tempCount; var saveTempVariables = tempVariables; @@ -18261,12 +18481,14 @@ var ts; function emitInterfaceDeclaration(node) { emitPinnedOrTripleSlashComments(node); } - function emitEnumDeclaration(node) { + function shouldEmitEnumDeclaration(node) { var isConstEnum = ts.isConst(node); - if (isConstEnum && !compilerOptions.preserveConstEnums) { + return !isConstEnum || compilerOptions.preserveConstEnums; + } + function emitEnumDeclaration(node) { + if (!shouldEmitEnumDeclaration(node)) { return; } - emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { emitStart(node); write("var "); @@ -18283,7 +18505,7 @@ var ts; write(") {"); increaseIndent(); scopeEmitStart(node); - emitEnumMemberDeclarations(isConstEnum); + emitLines(node.members); decreaseIndent(); writeLine(); emitToken(15 /* CloseBraceToken */, node.members.end); @@ -18304,31 +18526,26 @@ var ts; 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 emitEnumMember(node) { + var enumParent = node.parent; + emitStart(node); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + emitExpressionForPropertyName(node.name); + write("] = "); + if (node.initializer && !ts.isConst(enumParent)) { + emit(node.initializer); } + else { + write(resolver.getEnumMemberValue(node).toString()); + } + write("] = "); + emitExpressionForPropertyName(node.name); + emitEnd(node); + write(";"); } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { if (moduleDeclaration.body.kind === 195 /* ModuleDeclaration */) { @@ -18336,12 +18553,14 @@ var ts; return recursiveInnerModule || moduleDeclaration.body; } } + function shouldEmitModuleDeclaration(node) { + return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums); + } function emitModuleDeclaration(node) { - var shouldEmit = ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums); + var shouldEmit = shouldEmitModuleDeclaration(node); if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } - emitLeadingComments(node); emitStart(node); write("var "); emit(node.name); @@ -18386,7 +18605,6 @@ var ts; emitModuleMemberName(node); write(" = {}));"); emitEnd(node); - emitTrailingComments(node); } function emitImportDeclaration(node) { var emitImportDeclaration = resolver.isReferencedImportDeclaration(node); @@ -18559,13 +18777,38 @@ var ts; } emitLeadingComments(node.endOfFileToken); } - function emitNode(node) { + function emitNode(node, disableComments) { if (!node) { return; } if (node.flags & 2 /* Ambient */) { return emitPinnedOrTripleSlashComments(node); } + var emitComments = !disableComments && shouldEmitLeadingAndTrailingComments(node); + if (emitComments) { + emitLeadingComments(node); + } + emitJavaScriptWorker(node); + if (emitComments) { + emitTrailingComments(node); + } + } + function shouldEmitLeadingAndTrailingComments(node) { + switch (node.kind) { + case 192 /* InterfaceDeclaration */: + case 190 /* FunctionDeclaration */: + case 197 /* ImportDeclaration */: + case 193 /* TypeAliasDeclaration */: + case 198 /* ExportAssignment */: + return false; + case 195 /* ModuleDeclaration */: + return shouldEmitModuleDeclaration(node); + case 194 /* EnumDeclaration */: + return shouldEmitEnumDeclaration(node); + } + return true; + } + function emitJavaScriptWorker(node) { switch (node.kind) { case 64 /* Identifier */: return emitIdentifier(node); @@ -18702,6 +18945,8 @@ var ts; return emitInterfaceDeclaration(node); case 194 /* EnumDeclaration */: return emitEnumDeclaration(node); + case 206 /* EnumMember */: + return emitEnumMember(node); case 195 /* ModuleDeclaration */: return emitModuleDeclaration(node); case 197 /* ImportDeclaration */: @@ -18724,15 +18969,17 @@ var ts; return leadingComments; } function getLeadingCommentsToEmit(node) { - if (node.parent.kind === 207 /* SourceFile */ || node.pos !== node.parent.pos) { - var leadingComments; - if (hasDetachedComments(node.pos)) { - leadingComments = getLeadingCommentsWithoutDetachedComments(); + if (node.parent) { + if (node.parent.kind === 207 /* SourceFile */ || node.pos !== node.parent.pos) { + var leadingComments; + if (hasDetachedComments(node.pos)) { + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); + } + return leadingComments; } - else { - leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); - } - return leadingComments; } } function emitLeadingDeclarationComments(node) { @@ -18741,9 +18988,11 @@ var ts; emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitTrailingDeclarationComments(node) { - if (node.parent.kind === 207 /* SourceFile */ || node.end !== node.parent.end) { - var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + if (node.parent) { + if (node.parent.kind === 207 /* SourceFile */ || node.end !== node.parent.end) { + var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); + emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + } } } function emitLeadingCommentsOfLocalPosition(pos) { @@ -19181,7 +19430,7 @@ var ts; return; } var firstExternalModule = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); - if (firstExternalModule && options.module === 0 /* None */) { + if (firstExternalModule && !options.module) { var externalModuleErrorSpan = ts.getErrorSpanForNode(firstExternalModule.externalModuleIndicator); var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); var errorLength = externalModuleErrorSpan.end - errorStart; @@ -19261,6 +19510,10 @@ var ts; type: "boolean", description: ts.Diagnostics.Print_this_message }, + { + name: "listFiles", + type: "boolean" + }, { name: "locale", type: "string" @@ -19268,6 +19521,7 @@ var ts; { name: "mapRoot", type: "string", + isFilePath: true, description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations, paramType: ts.Diagnostics.LOCATION }, @@ -19318,6 +19572,7 @@ var ts; { name: "outDir", type: "string", + isFilePath: true, description: ts.Diagnostics.Redirect_output_structure_to_the_directory, paramType: ts.Diagnostics.DIRECTORY }, @@ -19326,6 +19581,14 @@ var ts; type: "boolean", description: ts.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code }, + { + name: "project", + shortName: "p", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Compile_the_project_in_the_given_directory, + paramType: ts.Diagnostics.DIRECTORY + }, { name: "removeComments", type: "boolean", @@ -19339,6 +19602,7 @@ var ts; { name: "sourceRoot", type: "string", + isFilePath: true, description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations, paramType: ts.Diagnostics.LOCATION }, @@ -19368,21 +19632,18 @@ var ts; description: ts.Diagnostics.Watch_input_files } ]; - var shortOptionNames = {}; - var optionNameMap = {}; - ts.forEach(ts.optionDeclarations, function (option) { - optionNameMap[option.name.toLowerCase()] = option; - if (option.shortName) { - shortOptionNames[option.shortName] = option.name; - } - }); function parseCommandLine(commandLine) { - var options = { - target: 0 /* ES3 */, - module: 0 /* None */ - }; + var options = {}; var filenames = []; var errors = []; + var shortOptionNames = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name.toLowerCase()] = option; + if (option.shortName) { + shortOptionNames[option.shortName] = option.name; + } + }); parseStrings(commandLine); return { options: options, @@ -19472,10 +19733,87 @@ var ts; } } ts.parseCommandLine = parseCommandLine; + function readConfigFile(filename) { + try { + var text = ts.sys.readFile(filename); + return /\S/.test(text) ? JSON.parse(text) : {}; + } + catch (e) { + } + } + ts.readConfigFile = readConfigFile; + function parseConfigFile(json, basePath) { + var errors = []; + return { + options: getCompilerOptions(), + filenames: getFiles(), + errors: errors + }; + function getCompilerOptions() { + var options = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name] = option; + }); + var jsonOptions = json["compilerOptions"]; + if (jsonOptions) { + for (var id in jsonOptions) { + if (ts.hasProperty(optionNameMap, id)) { + var opt = optionNameMap[id]; + var optType = opt.type; + var value = jsonOptions[id]; + var expectedType = typeof optType === "string" ? optType : "string"; + if (typeof value === expectedType) { + if (typeof optType !== "string") { + var key = value.toLowerCase(); + if (ts.hasProperty(optType, key)) { + value = optType[key]; + } + else { + errors.push(ts.createCompilerDiagnostic(opt.error)); + value = 0; + } + } + if (opt.isFilePath) { + value = ts.normalizePath(ts.combinePaths(basePath, value)); + } + options[opt.name] = value; + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, id, expectedType)); + } + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, id)); + } + } + } + return options; + } + function getFiles() { + var files = []; + if (ts.hasProperty(json, "files")) { + if (json["files"] instanceof Array) { + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); + } + } + else { + var sysFiles = ts.sys.readDirectory(basePath, ".ts"); + for (var i = 0; i < sysFiles.length; i++) { + var name = sysFiles[i]; + if (!ts.fileExtensionIs(name, ".d.ts") || !ts.contains(sysFiles, name.substr(0, name.length - 5) + ".ts")) { + files.push(name); + } + } + } + return files; + } + } + ts.parseConfigFile = parseConfigFile; })(ts || (ts = {})); var ts; (function (ts) { - var version = "1.4.0.0"; + var version = "1.5.0.0"; function validateLocaleAndSetLanguage(locale, errors) { var matchResult = /^([a-z]+)([_\-]([a-z]+))?$/.exec(locale.toLowerCase()); if (!matchResult) { @@ -19568,13 +19906,39 @@ var ts; function reportTimeStatistic(name, time) { reportStatisticalValue(name, (time / 1000).toFixed(2) + "s"); } + function isJSONSupported() { + return typeof JSON === "object" && typeof JSON.parse === "function"; + } + function findConfigFile() { + var searchPath = ts.normalizePath(ts.sys.getCurrentDirectory()); + var filename = "tsconfig.json"; + while (true) { + if (ts.sys.fileExists(filename)) { + return filename; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + filename = "../" + filename; + } + return undefined; + } function executeCommandLine(args) { var commandLine = ts.parseCommandLine(args); - var compilerOptions = commandLine.options; - if (compilerOptions.locale) { - if (typeof JSON === "undefined") { + var configFilename; + var configFileWatcher; + var cachedProgram; + var rootFilenames; + var compilerOptions; + var compilerHost; + var hostGetSourceFile; + var timerHandle; + if (commandLine.options.locale) { + if (!isJSONSupported()) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--locale")); - return ts.sys.exit(1); + return ts.sys.exit(5 /* CompilerOptionsErrors */); } validateLocaleAndSetLanguage(commandLine.options.locale, commandLine.errors); } @@ -19582,92 +19946,126 @@ var ts; reportDiagnostics(commandLine.errors); return ts.sys.exit(5 /* CompilerOptionsErrors */); } - if (compilerOptions.version) { + if (commandLine.options.version) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Version_0, version)); return ts.sys.exit(0 /* Succeeded */); } - if (compilerOptions.help) { + if (commandLine.options.help) { printVersion(); printHelp(); return ts.sys.exit(0 /* Succeeded */); } - if (commandLine.filenames.length === 0) { + if (commandLine.options.project) { + if (!isJSONSupported()) { + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--project")); + return ts.sys.exit(5 /* CompilerOptionsErrors */); + } + configFilename = ts.normalizePath(ts.combinePaths(commandLine.options.project, "tsconfig.json")); + if (commandLine.filenames.length !== 0) { + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line)); + return ts.sys.exit(5 /* CompilerOptionsErrors */); + } + } + else if (commandLine.filenames.length === 0 && isJSONSupported()) { + configFilename = findConfigFile(); + } + if (commandLine.filenames.length === 0 && !configFilename) { printVersion(); printHelp(); return ts.sys.exit(5 /* CompilerOptionsErrors */); } - var defaultCompilerHost = ts.createCompilerHost(compilerOptions); - if (compilerOptions.watch) { + if (commandLine.options.watch) { if (!ts.sys.watchFile) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--watch")); return ts.sys.exit(5 /* CompilerOptionsErrors */); } - watchProgram(commandLine, defaultCompilerHost); + if (configFilename) { + configFileWatcher = ts.sys.watchFile(configFilename, configFileChanged); + } } - else { - var result = compile(commandLine, defaultCompilerHost).exitStatus; - return ts.sys.exit(result); + performCompilation(); + function performCompilation() { + if (!cachedProgram) { + if (configFilename) { + var configObject = ts.readConfigFile(configFilename); + if (!configObject) { + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Unable_to_open_file_0, configFilename)); + return ts.sys.exit(5 /* CompilerOptionsErrors */); + } + var configParseResult = ts.parseConfigFile(configObject, ts.getDirectoryPath(configFilename)); + if (configParseResult.errors.length > 0) { + reportDiagnostics(configParseResult.errors); + return ts.sys.exit(5 /* CompilerOptionsErrors */); + } + rootFilenames = configParseResult.filenames; + compilerOptions = ts.extend(commandLine.options, configParseResult.options); + } + else { + rootFilenames = commandLine.filenames; + compilerOptions = commandLine.options; + } + compilerHost = ts.createCompilerHost(compilerOptions); + hostGetSourceFile = compilerHost.getSourceFile; + compilerHost.getSourceFile = getSourceFile; + } + var compileResult = compile(rootFilenames, compilerOptions, compilerHost); + if (!commandLine.options.watch) { + return ts.sys.exit(compileResult.exitStatus); + } + setCachedProgram(compileResult.program); + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Compilation_complete_Watching_for_file_changes)); + } + function getSourceFile(filename, languageVersion, onError) { + if (cachedProgram) { + var sourceFile = cachedProgram.getSourceFile(filename); + if (sourceFile && sourceFile.fileWatcher) { + return sourceFile; + } + } + var sourceFile = hostGetSourceFile(filename, languageVersion, onError); + if (sourceFile && commandLine.options.watch) { + sourceFile.fileWatcher = ts.sys.watchFile(sourceFile.filename, function () { return sourceFileChanged(sourceFile); }); + } + return sourceFile; + } + function setCachedProgram(program) { + if (cachedProgram) { + var newSourceFiles = program ? program.getSourceFiles() : undefined; + ts.forEach(cachedProgram.getSourceFiles(), function (sourceFile) { + if (!(newSourceFiles && ts.contains(newSourceFiles, sourceFile))) { + if (sourceFile.fileWatcher) { + sourceFile.fileWatcher.close(); + sourceFile.fileWatcher = undefined; + } + } + }); + } + cachedProgram = program; + } + function sourceFileChanged(sourceFile) { + sourceFile.fileWatcher = undefined; + startTimer(); + } + function configFileChanged() { + setCachedProgram(undefined); + startTimer(); + } + function startTimer() { + if (timerHandle) { + clearTimeout(timerHandle); + } + timerHandle = setTimeout(recompile, 250); + } + function recompile() { + timerHandle = undefined; + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.File_change_detected_Starting_incremental_compilation)); + performCompilation(); } } ts.executeCommandLine = executeCommandLine; - function watchProgram(commandLine, compilerHost) { - var watchers = {}; - var updatedFiles = {}; - var program = compile(commandLine, compilerHost).program; - reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Compilation_complete_Watching_for_file_changes)); - addWatchers(program); - return; - function addWatchers(program) { - ts.forEach(program.getSourceFiles(), function (f) { - var filename = getCanonicalName(f.filename); - watchers[filename] = ts.sys.watchFile(filename, fileUpdated); - }); - } - function removeWatchers(program) { - ts.forEach(program.getSourceFiles(), function (f) { - var filename = getCanonicalName(f.filename); - if (ts.hasProperty(watchers, filename)) { - watchers[filename].close(); - } - }); - watchers = {}; - } - function fileUpdated(filename) { - var firstNotification = ts.isEmpty(updatedFiles); - updatedFiles[getCanonicalName(filename)] = true; - if (firstNotification) { - setTimeout(function () { - var changedFiles = updatedFiles; - updatedFiles = {}; - recompile(changedFiles); - }, 250); - } - } - function recompile(changedFiles) { - reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.File_change_detected_Compiling)); - removeWatchers(program); - var oldSourceFiles = ts.arrayToMap(ts.filter(program.getSourceFiles(), function (file) { return !ts.hasProperty(changedFiles, getCanonicalName(file.filename)); }), function (file) { return getCanonicalName(file.filename); }); - var newCompilerHost = ts.clone(compilerHost); - newCompilerHost.getSourceFile = function (fileName, languageVersion, onError) { - fileName = getCanonicalName(fileName); - var sourceFile = ts.lookUp(oldSourceFiles, fileName); - if (sourceFile) { - return sourceFile; - } - return compilerHost.getSourceFile(fileName, languageVersion, onError); - }; - program = compile(commandLine, newCompilerHost).program; - reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Compilation_complete_Watching_for_file_changes)); - addWatchers(program); - } - function getCanonicalName(fileName) { - return compilerHost.getCanonicalFileName(fileName); - } - } - function compile(commandLine, compilerHost) { + function compile(filenames, compilerOptions, compilerHost) { var parseStart = new Date().getTime(); - var compilerOptions = commandLine.options; - var program = ts.createProgram(commandLine.filenames, compilerOptions, compilerHost); + var program = ts.createProgram(filenames, compilerOptions, compilerHost); var bindStart = new Date().getTime(); var errors = program.getDiagnostics(); var exitStatus; @@ -19697,7 +20095,12 @@ var ts; } } reportDiagnostics(errors); - if (commandLine.options.diagnostics) { + if (compilerOptions.listFiles) { + ts.forEach(program.getSourceFiles(), function (file) { + ts.sys.write(file.filename + ts.sys.newLine); + }); + } + if (compilerOptions.diagnostics) { var memoryUsed = ts.sys.getMemoryUsage ? ts.sys.getMemoryUsage() : -1; reportCountStatistic("Files", program.getSourceFiles().length); reportCountStatistic("Lines", countLines(program)); diff --git a/bin/typescript.d.ts b/bin/typescript.d.ts index 592b73ba8d9..11f29d7624e 100644 --- a/bin/typescript.d.ts +++ b/bin/typescript.d.ts @@ -283,6 +283,11 @@ declare module "typescript" { ThisNodeOrAnySubNodesHasError = 32, HasAggregatedChildData = 64, } + const enum RelationComparisonResult { + Succeeded = 1, + Failed = 2, + FailedAndReported = 3, + } interface Node extends TextRange { kind: SyntaxKind; flags: NodeFlags; @@ -994,11 +999,15 @@ declare module "typescript" { Union = 16384, Anonymous = 32768, FromSignature = 65536, - Unwidened = 131072, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, Intrinsic = 127, + Primitive = 510, StringLike = 258, NumberLike = 132, ObjectType = 48128, + RequiresWidening = 786432, } interface Type { flags: TypeFlags; @@ -1123,6 +1132,7 @@ declare module "typescript" { diagnostics?: boolean; emitBOM?: boolean; help?: boolean; + listFiles?: boolean; locale?: string; mapRoot?: string; module?: ModuleKind; @@ -1136,6 +1146,7 @@ declare module "typescript" { out?: string; outDir?: string; preserveConstEnums?: boolean; + project?: string; removeComments?: boolean; sourceMap?: boolean; sourceRoot?: string; @@ -1168,6 +1179,7 @@ declare module "typescript" { interface CommandLineOption { name: string; type: string | Map; + isFilePath?: boolean; shortName?: string; description?: DiagnosticMessage; paramType?: DiagnosticMessage; @@ -1428,6 +1440,7 @@ declare module "typescript" { isOpen: boolean; version: string; scriptSnapshot: IScriptSnapshot; + nameTable: Map; getNamedDeclarations(): Declaration[]; } /** @@ -1470,6 +1483,7 @@ declare module "typescript" { } interface LanguageServiceHost extends Logger { getCompilationSettings(): CompilerOptions; + getNewLine?(): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; getScriptIsOpen(fileName: string): boolean; diff --git a/bin/typescriptServices.d.ts b/bin/typescriptServices.d.ts index 6fd1cda359a..d4fa86da1b5 100644 --- a/bin/typescriptServices.d.ts +++ b/bin/typescriptServices.d.ts @@ -283,6 +283,11 @@ declare module ts { ThisNodeOrAnySubNodesHasError = 32, HasAggregatedChildData = 64, } + const enum RelationComparisonResult { + Succeeded = 1, + Failed = 2, + FailedAndReported = 3, + } interface Node extends TextRange { kind: SyntaxKind; flags: NodeFlags; @@ -994,11 +999,15 @@ declare module ts { Union = 16384, Anonymous = 32768, FromSignature = 65536, - Unwidened = 131072, + ObjectLiteral = 131072, + ContainsUndefinedOrNull = 262144, + ContainsObjectLiteral = 524288, Intrinsic = 127, + Primitive = 510, StringLike = 258, NumberLike = 132, ObjectType = 48128, + RequiresWidening = 786432, } interface Type { flags: TypeFlags; @@ -1123,6 +1132,7 @@ declare module ts { diagnostics?: boolean; emitBOM?: boolean; help?: boolean; + listFiles?: boolean; locale?: string; mapRoot?: string; module?: ModuleKind; @@ -1136,6 +1146,7 @@ declare module ts { out?: string; outDir?: string; preserveConstEnums?: boolean; + project?: string; removeComments?: boolean; sourceMap?: boolean; sourceRoot?: string; @@ -1168,6 +1179,7 @@ declare module ts { interface CommandLineOption { name: string; type: string | Map; + isFilePath?: boolean; shortName?: string; description?: DiagnosticMessage; paramType?: DiagnosticMessage; @@ -1428,6 +1440,7 @@ declare module ts { isOpen: boolean; version: string; scriptSnapshot: IScriptSnapshot; + nameTable: Map; getNamedDeclarations(): Declaration[]; } /** @@ -1470,6 +1483,7 @@ declare module ts { } interface LanguageServiceHost extends Logger { getCompilationSettings(): CompilerOptions; + getNewLine?(): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; getScriptIsOpen(fileName: string): boolean; diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index c3725bdc367..0ea95acc9f6 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -280,6 +280,12 @@ var ts; ParserContextFlags[ParserContextFlags["HasAggregatedChildData"] = 64] = "HasAggregatedChildData"; })(ts.ParserContextFlags || (ts.ParserContextFlags = {})); var ParserContextFlags = ts.ParserContextFlags; + (function (RelationComparisonResult) { + RelationComparisonResult[RelationComparisonResult["Succeeded"] = 1] = "Succeeded"; + RelationComparisonResult[RelationComparisonResult["Failed"] = 2] = "Failed"; + RelationComparisonResult[RelationComparisonResult["FailedAndReported"] = 3] = "FailedAndReported"; + })(ts.RelationComparisonResult || (ts.RelationComparisonResult = {})); + var RelationComparisonResult = ts.RelationComparisonResult; (function (EmitReturnStatus) { EmitReturnStatus[EmitReturnStatus["Succeeded"] = 0] = "Succeeded"; EmitReturnStatus[EmitReturnStatus["AllOutputGenerationSkipped"] = 1] = "AllOutputGenerationSkipped"; @@ -407,11 +413,15 @@ var ts; TypeFlags[TypeFlags["Union"] = 16384] = "Union"; TypeFlags[TypeFlags["Anonymous"] = 32768] = "Anonymous"; TypeFlags[TypeFlags["FromSignature"] = 65536] = "FromSignature"; - TypeFlags[TypeFlags["Unwidened"] = 131072] = "Unwidened"; + TypeFlags[TypeFlags["ObjectLiteral"] = 131072] = "ObjectLiteral"; + TypeFlags[TypeFlags["ContainsUndefinedOrNull"] = 262144] = "ContainsUndefinedOrNull"; + TypeFlags[TypeFlags["ContainsObjectLiteral"] = 524288] = "ContainsObjectLiteral"; TypeFlags[TypeFlags["Intrinsic"] = 127] = "Intrinsic"; + TypeFlags[TypeFlags["Primitive"] = 510] = "Primitive"; TypeFlags[TypeFlags["StringLike"] = 258] = "StringLike"; TypeFlags[TypeFlags["NumberLike"] = 132] = "NumberLike"; TypeFlags[TypeFlags["ObjectType"] = 48128] = "ObjectType"; + TypeFlags[TypeFlags["RequiresWidening"] = 786432] = "RequiresWidening"; })(ts.TypeFlags || (ts.TypeFlags = {})); var TypeFlags = ts.TypeFlags; (function (SignatureKind) { @@ -733,6 +743,19 @@ var ts; return result; } ts.clone = clone; + function extend(first, second) { + var result = {}; + for (var id in first) { + result[id] = first[id]; + } + for (var id in second) { + if (!hasProperty(result, id)) { + result[id] = second[id]; + } + } + return result; + } + ts.extend = extend; function forEachValue(map, callback) { var result; for (var id in map) { @@ -1054,7 +1077,7 @@ var ts; return path2; if (!(path2 && path2.length)) return path1; - if (path2.charAt(0) === ts.directorySeparator) + if (getRootLength(path2) !== 0) return path2; if (path1.charAt(path1.length - 1) === ts.directorySeparator) return path1 + path2; @@ -1224,6 +1247,32 @@ var ts; fileStream.Close(); } } + function getNames(collection) { + var result = []; + for (var e = new Enumerator(collection); !e.atEnd(); e.moveNext()) { + result.push(e.item().Name); + } + return result.sort(); + } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var folder = fso.GetFolder(path || "."); + var files = getNames(folder.files); + for (var i = 0; i < files.length; i++) { + var name = files[i]; + if (!extension || ts.fileExtensionIs(name, extension)) { + result.push(ts.combinePaths(path, name)); + } + } + var subfolders = getNames(folder.subfolders); + for (var i = 0; i < subfolders.length; i++) { + visitDirectory(ts.combinePaths(path, subfolders[i])); + } + } + } return { args: args, newLine: "\r\n", @@ -1253,6 +1302,7 @@ var ts; getCurrentDirectory: function () { return new ActiveXObject("WScript.Shell").CurrentDirectory; }, + readDirectory: readDirectory, exit: function (exitCode) { try { WScript.Quit(exitCode); @@ -1297,6 +1347,30 @@ var ts; } _fs.writeFileSync(fileName, data, "utf8"); } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var files = _fs.readdirSync(path || ".").sort(); + var directories = []; + for (var i = 0; i < files.length; i++) { + var name = ts.combinePaths(path, files[i]); + var stat = _fs.lstatSync(name); + if (stat.isFile()) { + if (!extension || ts.fileExtensionIs(name, extension)) { + result.push(name); + } + } + else if (stat.isDirectory()) { + directories.push(name); + } + } + for (var i = 0; i < directories.length; i++) { + visitDirectory(directories[i]); + } + } + } return { args: process.argv.slice(2), newLine: _os.EOL, @@ -1341,6 +1415,7 @@ var ts; getCurrentDirectory: function () { return process.cwd(); }, + readDirectory: readDirectory, getMemoryUsage: function () { if (global.gc) { global.gc(); @@ -1510,6 +1585,7 @@ var ts; Modifiers_cannot_appear_here: { code: 1184, category: 1 /* Error */, key: "Modifiers cannot appear here." }, Merge_conflict_marker_encountered: { code: 1185, category: 1 /* Error */, key: "Merge conflict marker encountered." }, A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1 /* Error */, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1 /* Error */, key: "A parameter property may not be a binding pattern." }, 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." }, @@ -1661,6 +1737,11 @@ var ts; Type_0_has_no_property_1: { code: 2460, category: 1 /* Error */, key: "Type '{0}' has no property '{1}'." }, Type_0_is_not_an_array_type: { code: 2461, category: 1 /* Error */, key: "Type '{0}' is not an array type." }, A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1 /* Error */, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1 /* Error */, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: 1 /* Error */, key: "A computed property name must be of type 'string', 'number', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1 /* Error */, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1 /* Error */, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: 1 /* Error */, key: "A computed property name cannot reference a type parameter from its containing type." }, 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}'." }, @@ -1733,19 +1814,22 @@ var ts; 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'." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1 /* Error */, key: "A const enum member can only be accessed using a string literal.", isEarly: true }, 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'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1 /* Error */, key: "Property '{0}' does not exist on 'const' enum '{1}'.", isEarly: true }, 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}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1 /* Error */, key: "Compiler option '{0}' requires a value of type {1}." }, 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." }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1 /* Error */, key: "Option noEmit cannot be specified with option out or outDir." }, - Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1 /* Error */, key: "Option noEmit cannot be specified with option declaration." }, + 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." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1 /* Error */, key: "Option 'project' cannot be mixed with source files on a command line." }, 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." }, @@ -1760,6 +1844,7 @@ var ts; 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." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2 /* Message */, key: "Compile the project in the given directory." }, 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" }, @@ -1767,7 +1852,7 @@ var ts; 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..." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2 /* Message */, key: "File change detected. Starting incremental compilation..." }, KIND: { code: 6034, category: 2 /* Message */, key: "KIND" }, FILE: { code: 6035, category: 2 /* Message */, key: "FILE" }, VERSION: { code: 6036, category: 2 /* Message */, key: "VERSION" }, @@ -1783,7 +1868,7 @@ var ts; 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}." }, - Raise_error_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." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2 /* Message */, key: "Raise error 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'." }, Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2 /* Message */, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, @@ -1805,8 +1890,7 @@ var ts; 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." }, yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported.", isEarly: true }, - Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true }, - Computed_property_names_are_not_currently_supported: { code: 9002, category: 1 /* Error */, key: "Computed property names are not currently supported.", isEarly: true } + Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true } }; })(ts || (ts = {})); var ts; @@ -1946,10 +2030,10 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart); + return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); } function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion === 0 /* ES3 */ ? lookupInUnicodeMap(code, unicodeES3IdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart); + return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; @@ -1993,7 +2077,7 @@ var ts; } ts.computeLineStarts = computeLineStarts; function getPositionFromLineAndCharacter(lineStarts, line, character) { - ts.Debug.assert(line > 0); + ts.Debug.assert(line > 0 && line <= lineStarts.length); return lineStarts[line - 1] + character - 1; } ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; @@ -2657,7 +2741,7 @@ var ts; value = 0; } tokenValue = "" + value; - return 7 /* NumericLiteral */; + return token = 7 /* NumericLiteral */; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 /* O */ || text.charCodeAt(pos + 1) === 111 /* o */)) { pos += 2; @@ -2667,7 +2751,7 @@ var ts; value = 0; } tokenValue = "" + value; - return 7 /* NumericLiteral */; + return token = 7 /* NumericLiteral */; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { tokenValue = "" + scanOctalDigits(); @@ -3225,6 +3309,12 @@ var ts; return undefined; } switch (node.kind) { + case 122 /* ComputedPropertyName */: + if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + return node; + } + node = node.parent; + break; case 157 /* ArrowFunction */: if (!includeArrowFunctions) { continue; @@ -3246,13 +3336,24 @@ var ts; } } ts.getThisContainer = getThisContainer; - function getSuperContainer(node) { + function getSuperContainer(node, includeFunctions) { while (true) { node = node.parent; - if (!node) { - return undefined; - } + if (!node) + return node; switch (node.kind) { + case 122 /* ComputedPropertyName */: + if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + return node; + } + node = node.parent; + break; + case 190 /* FunctionDeclaration */: + case 156 /* FunctionExpression */: + case 157 /* ArrowFunction */: + if (!includeFunctions) { + continue; + } case 126 /* PropertyDeclaration */: case 125 /* PropertySignature */: case 128 /* MethodDeclaration */: @@ -3345,6 +3446,8 @@ var ts; return node === parent.expression; case 169 /* TemplateSpan */: return node === parent.expression; + case 122 /* ComputedPropertyName */: + return node === parent.expression; default: if (isExpression(parent)) { return true; @@ -4563,7 +4666,7 @@ var ts; return canFollowModifier(); } function canFollowModifier() { - return token === 18 /* OpenBracketToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); + return token === 18 /* OpenBracketToken */ || token === 14 /* OpenBraceToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); } function isListElement(parsingContext, inErrorRecovery) { var node = currentNode(parsingContext); @@ -6892,7 +6995,7 @@ var ts; })(ts.ModuleInstanceState || (ts.ModuleInstanceState = {})); var ModuleInstanceState = ts.ModuleInstanceState; function getModuleInstanceState(node) { - if (node.kind === 192 /* InterfaceDeclaration */) { + if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 193 /* TypeAliasDeclaration */) { return 0 /* NonInstantiated */; } else if (ts.isConstEnumDeclaration(node)) { @@ -6925,10 +7028,10 @@ var ts; } } ts.getModuleInstanceState = getModuleInstanceState; - function hasComputedNameButNotSymbol(declaration) { + function hasDynamicName(declaration) { return declaration.name && declaration.name.kind === 122 /* ComputedPropertyName */; } - ts.hasComputedNameButNotSymbol = hasComputedNameButNotSymbol; + ts.hasDynamicName = hasDynamicName; function bindSourceFile(file) { var parent; var container; @@ -6964,7 +7067,7 @@ var ts; if (node.kind === 195 /* ModuleDeclaration */ && node.name.kind === 8 /* StringLiteral */) { return '"' + node.name.text + '"'; } - ts.Debug.assert(!hasComputedNameButNotSymbol(node)); + ts.Debug.assert(!hasDynamicName(node)); return node.name.text; } switch (node.kind) { @@ -6984,9 +7087,7 @@ var ts; return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); } function declareSymbol(symbols, parent, node, includes, excludes) { - if (hasComputedNameButNotSymbol(node)) { - return undefined; - } + ts.Debug.assert(!hasDynamicName(node)); var name = getDeclarationName(node); if (name !== undefined) { var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); @@ -7205,14 +7306,14 @@ var ts; break; case 126 /* PropertyDeclaration */: case 125 /* PropertySignature */: - bindDeclaration(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0), 107455 /* PropertyExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0), 107455 /* PropertyExcludes */, false); break; case 204 /* PropertyAssignment */: case 205 /* ShorthandPropertyAssignment */: - bindDeclaration(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); break; case 206 /* EnumMember */: - bindDeclaration(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); + bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); break; case 132 /* CallSignature */: case 133 /* ConstructSignature */: @@ -7221,7 +7322,7 @@ var ts; break; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: - bindDeclaration(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */, true); break; case 190 /* FunctionDeclaration */: bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); @@ -7230,10 +7331,10 @@ var ts; bindDeclaration(node, 16384 /* Constructor */, 0, true); break; case 130 /* GetAccessor */: - bindDeclaration(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); break; case 131 /* SetAccessor */: - bindDeclaration(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); + bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); break; case 136 /* FunctionType */: case 137 /* ConstructorType */: @@ -7306,6 +7407,14 @@ var ts; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */, 107455 /* PropertyExcludes */); } } + function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) { + if (hasDynamicName(node)) { + bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); + } + else { + bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer); + } + } } ts.bindSourceFile = bindSourceFile; })(ts || (ts = {})); @@ -7322,6 +7431,7 @@ var ts; var emptyArray = []; var emptySymbols = {}; var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var emitResolver = createResolver(); var checker = { getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, @@ -7367,8 +7477,8 @@ var ts; var numberType = createIntrinsicType(4 /* Number */, "number"); var booleanType = createIntrinsicType(8 /* Boolean */, "boolean"); var voidType = createIntrinsicType(16 /* Void */, "void"); - var undefinedType = createIntrinsicType(32 /* Undefined */ | 131072 /* Unwidened */, "undefined"); - var nullType = createIntrinsicType(64 /* Null */ | 131072 /* Unwidened */, "null"); + var undefinedType = createIntrinsicType(32 /* Undefined */ | 262144 /* ContainsUndefinedOrNull */, "undefined"); + var nullType = createIntrinsicType(64 /* Null */ | 262144 /* ContainsUndefinedOrNull */, "null"); var unknownType = createIntrinsicType(1 /* Any */, "unknown"); var resolvingType = createIntrinsicType(1 /* Any */, "__resolving__"); var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); @@ -7398,6 +7508,20 @@ var ts; var potentialThisCollisions = []; var diagnostics = []; var diagnosticsModified = false; + var primitiveTypeInfo = { + "string": { + type: stringType, + flags: 258 /* StringLike */ + }, + "number": { + type: numberType, + flags: 132 /* NumberLike */ + }, + "boolean": { + type: booleanType, + flags: 8 /* Boolean */ + } + }; function addDiagnostic(diagnostic) { diagnostics.push(diagnostic); diagnosticsModified = true; @@ -7614,6 +7738,15 @@ var ts; break loop; } break; + case 122 /* ComputedPropertyName */: + var grandparent = location.parent.parent; + if (grandparent.kind === 191 /* ClassDeclaration */ || grandparent.kind === 192 /* InterfaceDeclaration */) { + if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056 /* Type */)) { + error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); + return undefined; + } + } + break; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: case 129 /* Constructor */: @@ -8648,7 +8781,7 @@ var ts; } if (pattern.kind === 144 /* ObjectBindingPattern */) { var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericName(name.text) && getIndexTypeOfType(parentType, 1 /* Number */) || getIndexTypeOfType(parentType, 0 /* String */); + var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1 /* Number */) || getIndexTypeOfType(parentType, 0 /* String */); if (!type) { error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); return unknownType; @@ -8685,7 +8818,7 @@ var ts; } if (declaration.kind === 124 /* Parameter */) { var func = declaration.parent; - if (func.kind === 131 /* SetAccessor */ && !ts.hasComputedNameButNotSymbol(func)) { + if (func.kind === 131 /* SetAccessor */ && !ts.hasDynamicName(func)) { var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 130 /* GetAccessor */); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); @@ -9466,7 +9599,7 @@ var ts; returnType = getTypeFromTypeNode(declaration.type); } else { - if (declaration.kind === 130 /* GetAccessor */ && !ts.hasComputedNameButNotSymbol(declaration)) { + if (declaration.kind === 130 /* GetAccessor */ && !ts.hasDynamicName(declaration)) { var setter = ts.getDeclarationOfKind(declaration.symbol, 131 /* SetAccessor */); returnType = getAnnotatedAccessorType(setter); } @@ -9628,14 +9761,18 @@ var ts; return result; } } - function getUnwidenedFlagOfTypes(types) { - return ts.forEach(types, function (t) { return t.flags & 131072 /* Unwidened */; }) || 0; + function getWideningFlagsOfTypes(types) { + var result = 0; + for (var i = 0; i < types.length; i++) { + result |= types[i].flags; + } + return result & 786432 /* RequiresWidening */; } function createTypeReference(target, typeArguments) { var id = getTypeListId(typeArguments); var type = target.instantiations[id]; if (!type) { - var flags = 4096 /* Reference */ | getUnwidenedFlagOfTypes(typeArguments); + var flags = 4096 /* Reference */ | getWideningFlagsOfTypes(typeArguments); type = target.instantiations[id] = createObjectType(flags, target.symbol); type.target = target; type.typeArguments = typeArguments; @@ -9852,7 +9989,7 @@ var ts; var id = getTypeListId(sortedTypes); var type = unionTypes[id]; if (!type) { - type = unionTypes[id] = createObjectType(16384 /* Union */ | getUnwidenedFlagOfTypes(sortedTypes)); + type = unionTypes[id] = createObjectType(16384 /* Union */ | getWideningFlagsOfTypes(sortedTypes)); type.types = sortedTypes; } return type; @@ -10079,6 +10216,8 @@ var ts; case 128 /* MethodDeclaration */: case 127 /* MethodSignature */: return isContextSensitiveFunctionLikeDeclaration(node); + case 155 /* ParenthesizedExpression */: + return isContextSensitive(node.expression); } return false; } @@ -10139,6 +10278,10 @@ var ts; error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); } else if (errorInfo) { + if (errorInfo.next === undefined) { + errorInfo = undefined; + isRelatedTo(source, target, errorNode !== undefined, headMessage, true); + } if (containingMessageChain) { errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); } @@ -10148,7 +10291,8 @@ var ts; function reportError(message, arg0, arg1, arg2) { errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); } - function isRelatedTo(source, target, reportErrors, headMessage) { + function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { + if (elaborateErrors === void 0) { elaborateErrors = false; } var result; if (source === target) return -1 /* True */; @@ -10217,7 +10361,7 @@ var ts; } 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))) { + if (sourceOrApparentType.flags & 48128 /* ObjectType */ && target.flags & 48128 /* ObjectType */ && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; return result; } @@ -10298,14 +10442,17 @@ var ts; return 0 /* False */; } } - function objectTypeRelatedTo(source, target, reportErrors) { + function objectTypeRelatedTo(source, target, reportErrors, elaborateErrors) { + if (elaborateErrors === void 0) { elaborateErrors = false; } if (overflow) { return 0 /* False */; } var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; var related = relation[id]; if (related !== undefined) { - return related ? -1 /* True */ : 0 /* False */; + if (!elaborateErrors || (related === 3 /* FailedAndReported */)) { + return related === 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */; + } } if (depth > 0) { for (var i = 0; i < depth; i++) { @@ -10327,7 +10474,7 @@ var ts; sourceStack[depth] = source; targetStack[depth] = target; maybeStack[depth] = {}; - maybeStack[depth][id] = true; + maybeStack[depth][id] = 1 /* Succeeded */; depth++; var saveExpandingFlags = expandingFlags; if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) @@ -10356,11 +10503,11 @@ var ts; depth--; if (result) { var maybeCache = maybeStack[depth]; - var destinationCache = result === -1 /* True */ || depth === 0 ? relation : maybeStack[depth - 1]; + var destinationCache = (result === -1 /* True */ || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { - relation[id] = false; + relation[id] = reportErrors ? 3 /* FailedAndReported */ : 2 /* Failed */; } return result; } @@ -10385,12 +10532,13 @@ var ts; } var result = -1 /* True */; var properties = getPropertiesOfObjectType(target); + var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072 /* ObjectLiteral */); 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 || !(targetProp.flags & 536870912 /* Optional */)) { + if (!(targetProp.flags & 536870912 /* Optional */) || requireOptionalProperties) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); } @@ -10735,9 +10883,6 @@ var ts; } 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; } @@ -10748,14 +10893,19 @@ var ts; var properties = getPropertiesOfObjectType(type); var members = {}; ts.forEach(properties, function (p) { - var symbol = createSymbol(p.flags | 67108864 /* Transient */, p.name); - symbol.declarations = p.declarations; - symbol.parent = p.parent; - symbol.type = getWidenedType(getTypeOfSymbol(p)); - symbol.target = p; - if (p.valueDeclaration) - symbol.valueDeclaration = p.valueDeclaration; - members[symbol.name] = symbol; + var propType = getTypeOfSymbol(p); + var widenedType = getWidenedType(propType); + if (propType !== widenedType) { + var symbol = createSymbol(p.flags | 67108864 /* Transient */, p.name); + symbol.declarations = p.declarations; + symbol.parent = p.parent; + symbol.type = widenedType; + symbol.target = p; + if (p.valueDeclaration) + symbol.valueDeclaration = p.valueDeclaration; + p = symbol; + } + members[p.name] = p; }); var stringIndexType = getIndexTypeOfType(type, 0 /* String */); var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); @@ -10766,16 +10916,16 @@ var ts; return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); } function getWidenedType(type) { - if (type.flags & 131072 /* Unwidened */) { + if (type.flags & 786432 /* RequiresWidening */) { if (type.flags & (32 /* Undefined */ | 64 /* Null */)) { return anyType; } + if (type.flags & 131072 /* ObjectLiteral */) { + return getWidenedTypeOfObjectLiteral(type); + } if (type.flags & 16384 /* Union */) { return getUnionType(ts.map(type.types, getWidenedType)); } - if (isTypeOfObjectLiteral(type)) { - return getWidenedTypeOfObjectLiteral(type); - } if (isArrayType(type)) { return createArrayType(getWidenedType(type.typeArguments[0])); } @@ -10795,11 +10945,11 @@ var ts; if (isArrayType(type)) { return reportWideningErrorsInType(type.typeArguments[0]); } - if (isTypeOfObjectLiteral(type)) { + if (type.flags & 131072 /* ObjectLiteral */) { var errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); - if (t.flags & 131072 /* Unwidened */) { + if (t.flags & 262144 /* ContainsUndefinedOrNull */) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } @@ -10839,7 +10989,7 @@ var ts; error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } function reportErrorsFromWidening(declaration, type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 131072 /* Unwidened */) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144 /* ContainsUndefinedOrNull */) { if (!reportWideningErrorsInType(type)) { reportImplicitAnyError(declaration, type); } @@ -11063,11 +11213,14 @@ var ts; } ts.Debug.fail("should not get here"); } - function subtractPrimitiveTypes(type, subtractMask) { + function removeTypesFromUnionType(type, typeKind, isOfTypeKind) { 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); })); + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); + if (narrowedType !== emptyObjectType) { + return narrowedType; + } } } return type; @@ -11212,7 +11365,7 @@ var ts; case 129 /* Constructor */: break loop; } - if (narrowedType !== type && isTypeSubtypeOf(narrowedType, type)) { + if (narrowedType !== type) { if (isVariableAssignedWithin(symbol, node)) { break; } @@ -11230,16 +11383,24 @@ var ts; if (left.expression.kind !== 64 /* Identifier */ || getResolvedSymbol(left.expression) !== symbol) { return type; } - var t = right.text; - var checkType = t === "string" ? stringType : t === "number" ? numberType : t === "boolean" ? booleanType : emptyObjectType; + var typeInfo = primitiveTypeInfo[right.text]; if (expr.operator === 31 /* ExclamationEqualsEqualsToken */) { assumeTrue = !assumeTrue; } if (assumeTrue) { - return checkType === emptyObjectType ? subtractPrimitiveTypes(type, 2 /* String */ | 4 /* Number */ | 8 /* Boolean */) : checkType; + if (!typeInfo) { + return removeTypesFromUnionType(type, 258 /* StringLike */ | 132 /* NumberLike */ | 8 /* Boolean */, true); + } + if (isTypeSubtypeOf(typeInfo.type, type)) { + return typeInfo.type; + } + return removeTypesFromUnionType(type, typeInfo.flags, false); } else { - return checkType === emptyObjectType ? type : subtractPrimitiveTypes(type, checkType.flags); + if (typeInfo) { + return removeTypesFromUnionType(type, typeInfo.flags, true); + } + return type; } } function narrowTypeByAnd(type, expr, assumeTrue) { @@ -11276,8 +11437,14 @@ var ts; if (!prototypeProperty) { return type; } - var prototypeType = getTypeOfSymbol(prototypeProperty); - return isTypeSubtypeOf(prototypeType, type) ? prototypeType : type; + var targetType = getTypeOfSymbol(prototypeProperty); + if (isTypeSubtypeOf(targetType, type)) { + return targetType; + } + if (type.flags & 16384 /* Union */) { + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); + } + return type; } function narrowType(type, expr, assumeTrue) { switch (expr.kind) { @@ -11375,6 +11542,9 @@ var ts; error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); } break; + case 122 /* ComputedPropertyName */: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); + break; } if (needToCaptureLexicalThis) { captureLexicalThis(node, container); @@ -11386,26 +11556,6 @@ var ts; } return anyType; } - function getSuperContainer(node) { - while (true) { - node = node.parent; - if (!node) - return node; - switch (node.kind) { - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - return node; - } - } - } function isInConstructorArgumentInitializer(node, constructorDecl) { for (var n = node; n && n !== constructorDecl; n = n.parent) { if (n.kind === 124 /* Parameter */) { @@ -11426,7 +11576,7 @@ var ts; error(node, ts.Diagnostics.super_can_only_be_referenced_in_a_derived_class); return unknownType; } - var container = getSuperContainer(node); + var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; if (isCallExpression) { @@ -11435,7 +11585,7 @@ var ts; else { var needToCaptureLexicalThis = false; while (container && container.kind === 157 /* ArrowFunction */) { - container = getSuperContainer(container); + container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } if (container && container.parent && container.parent.kind === 191 /* ClassDeclaration */) { @@ -11467,7 +11617,10 @@ var ts; return returnType; } } - if (isCallExpression) { + if (container.kind === 122 /* ComputedPropertyName */) { + error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); + } + else if (isCallExpression) { error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); } else { @@ -11606,9 +11759,15 @@ var ts; function getContextualTypeForObjectLiteralElement(element) { var objectLiteral = element.parent; var type = getContextualType(objectLiteral); - var name = element.name.text; - if (type && name) { - return getTypeOfPropertyOfContextualType(type, name) || isNumericName(name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); + if (type) { + if (!ts.hasDynamicName(element)) { + var symbolName = getSymbolOfNode(element).name; + var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); + if (propertyType) { + return propertyType; + } + } + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); } return undefined; } @@ -11659,6 +11818,8 @@ var ts; case 169 /* TemplateSpan */: ts.Debug.assert(parent.parent.kind === 165 /* TemplateExpression */); return getContextualTypeForSubstitutionExpression(parent.parent, node); + case 155 /* ParenthesizedExpression */: + return getContextualType(parent); } return undefined; } @@ -11763,72 +11924,84 @@ var ts; return createArrayType(getUnionType(elementTypes)); } function isNumericName(name) { + return name.kind === 122 /* ComputedPropertyName */ ? isNumericComputedName(name) : isNumericLiteralName(name.text); + } + function isNumericComputedName(name) { + return isTypeOfKind(checkComputedPropertyName(name), 1 /* Any */ | 132 /* NumberLike */); + } + function isNumericLiteralName(name) { return (+name).toString() === name; } + function checkComputedPropertyName(node) { + var links = getNodeLinks(node.expression); + if (!links.resolvedType) { + links.resolvedType = checkExpression(node.expression); + if (!isTypeOfKind(links.resolvedType, 1 /* Any */ | 132 /* NumberLike */ | 258 /* StringLike */)) { + error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); + } + } + return links.resolvedType; + } function checkObjectLiteral(node, contextualMapper) { checkGrammarObjectLiteralExpression(node); - var members = node.symbol.members; - var properties = {}; + var propertiesTable = {}; + var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var id in members) { - if (ts.hasProperty(members, id)) { - var member = members[id]; - if (member.flags & 4 /* Property */ || ts.isObjectLiteralMethod(member.declarations[0])) { - var memberDecl = member.declarations[0]; - if (memberDecl.kind === 204 /* PropertyAssignment */) { - var type = checkExpression(memberDecl.initializer, contextualMapper); - } - else if (memberDecl.kind === 128 /* MethodDeclaration */) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); - } - else { - ts.Debug.assert(memberDecl.kind === 205 /* ShorthandPropertyAssignment */); - var type = memberDecl.name.kind === 122 /* ComputedPropertyName */ ? unknownType : checkExpression(memberDecl.name, contextualMapper); - } - typeFlags |= type.flags; - var prop = createSymbol(4 /* Property */ | 67108864 /* 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; + for (var i = 0; i < node.properties.length; i++) { + var memberDecl = node.properties[i]; + var member = memberDecl.symbol; + if (memberDecl.kind === 204 /* PropertyAssignment */ || memberDecl.kind === 205 /* ShorthandPropertyAssignment */ || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 204 /* PropertyAssignment */) { + var type = checkPropertyAssignment(memberDecl, contextualMapper); + } + else if (memberDecl.kind === 128 /* MethodDeclaration */) { + var type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { - var getAccessor = ts.getDeclarationOfKind(member, 130 /* GetAccessor */); - if (getAccessor) { - checkAccessorDeclaration(getAccessor); - } - var setAccessor = ts.getDeclarationOfKind(member, 131 /* SetAccessor */); - if (setAccessor) { - checkAccessorDeclaration(setAccessor); - } + ts.Debug.assert(memberDecl.kind === 205 /* ShorthandPropertyAssignment */); + var type = memberDecl.name.kind === 122 /* ComputedPropertyName */ ? unknownType : checkExpression(memberDecl.name, contextualMapper); } - properties[member.name] = member; + typeFlags |= type.flags; + var prop = createSymbol(4 /* Property */ | 67108864 /* 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 { + ts.Debug.assert(memberDecl.kind === 130 /* GetAccessor */ || memberDecl.kind === 131 /* SetAccessor */); + checkAccessorDeclaration(memberDecl); + } + if (!ts.hasDynamicName(memberDecl)) { + propertiesTable[member.name] = member; + } + propertiesArray.push(member); } var stringIndexType = getIndexType(0 /* String */); var numberIndexType = getIndexType(1 /* Number */); - var result = createAnonymousType(node.symbol, properties, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= (typeFlags & 131072 /* Unwidened */); + var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); + result.flags |= 131072 /* ObjectLiteral */ | 524288 /* ContainsObjectLiteral */ | (typeFlags & 262144 /* ContainsUndefinedOrNull */); return result; 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); - } + for (var i = 0; i < propertiesArray.length; i++) { + var propertyDecl = node.properties[i]; + if (kind === 0 /* String */ || isNumericName(propertyDecl.name)) { + var type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, type)) { + propTypes.push(type); } } } - return propTypes.length ? getUnionType(propTypes) : undefinedType; + var result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= result.flags; + return result; } return undefined; } @@ -11939,8 +12112,10 @@ var ts; if (objectType === unknownType) { return unknownType; } - if (isConstEnumObjectType(objectType) && node.argumentExpression && node.argumentExpression.kind !== 8 /* StringLiteral */) { - error(node.argumentExpression, ts.Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string); + var isConstEnum = isConstEnumObjectType(objectType); + if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8 /* StringLiteral */)) { + error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); + return unknownType; } if (node.argumentExpression) { if (node.argumentExpression.kind === 8 /* StringLiteral */ || node.argumentExpression.kind === 7 /* NumericLiteral */) { @@ -11950,10 +12125,14 @@ var ts; getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } + else if (isConstEnum) { + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + return unknownType; + } } } - if (indexType.flags & (1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { - if (indexType.flags & (1 /* Any */ | 132 /* NumberLike */)) { + if (isTypeOfKind(indexType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { + if (isTypeOfKind(indexType, 1 /* Any */ | 132 /* NumberLike */)) { var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */); if (numberIndexType) { return numberIndexType; @@ -12137,10 +12316,25 @@ var ts; } return args; } + function getEffectiveTypeArguments(callExpression) { + if (callExpression.expression.kind === 90 /* SuperKeyword */) { + var containingClass = ts.getAncestor(callExpression, 191 /* ClassDeclaration */); + var baseClassTypeNode = containingClass && ts.getClassBaseTypeNode(containingClass); + return baseClassTypeNode && baseClassTypeNode.typeArguments; + } + else { + return callExpression.typeArguments; + } + } function resolveCall(node, signatures, candidatesOutArray) { var isTaggedTemplate = node.kind === 153 /* TaggedTemplateExpression */; - var typeArguments = isTaggedTemplate ? undefined : node.typeArguments; - ts.forEach(typeArguments, checkSourceElement); + var typeArguments; + if (!isTaggedTemplate) { + typeArguments = getEffectiveTypeArguments(node); + if (node.expression.kind !== 90 /* SuperKeyword */) { + ts.forEach(typeArguments, checkSourceElement); + } + } var candidates = candidatesOutArray || []; collectCandidates(); if (!candidates.length) { @@ -12257,8 +12451,10 @@ var ts; var result = candidates; var lastParent; var lastSymbol; - var cutoffPos = 0; - var pos; + var cutoffIndex = 0; + var index; + var specializedIndex = -1; + var spliceIndex; ts.Debug.assert(!result.length); for (var i = 0; i < signatures.length; i++) { var signature = signatures[i]; @@ -12266,22 +12462,27 @@ var ts; var parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { if (lastParent && parent === lastParent) { - pos++; + index++; } else { lastParent = parent; - pos = cutoffPos; + index = cutoffIndex; } } else { - pos = cutoffPos = result.length; + index = cutoffIndex = result.length; lastParent = parent; } lastSymbol = symbol; - for (var j = result.length; j > pos; j--) { - result[j] = result[j - 1]; + if (signature.hasStringLiterals) { + specializedIndex++; + spliceIndex = specializedIndex; + cutoffIndex++; } - result[pos] = signature; + else { + spliceIndex = index; + } + result.splice(spliceIndex, 0, signature); } } } @@ -12397,7 +12598,7 @@ var ts; return getReturnTypeOfSignature(signature); } function checkTaggedTemplateExpression(node) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { grammarErrorOnFirstToken(node.template, ts.Diagnostics.Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher); } return getReturnTypeOfSignature(getResolvedSignature(node)); @@ -12546,7 +12747,7 @@ var ts; } } function checkArithmeticOperandType(operand, type, diagnostic) { - if (!(type.flags & (1 /* Any */ | 132 /* NumberLike */))) { + if (!isTypeOfKind(type, 1 /* Any */ | 132 /* NumberLike */)) { error(operand, diagnostic); return false; } @@ -12650,11 +12851,20 @@ var ts; } return numberType; } - function isStructuredType(type) { - if (type.flags & 16384 /* Union */) { - return !ts.forEach(type.types, function (t) { return !isStructuredType(t); }); + function isTypeOfKind(type, kind) { + if (type.flags & kind) { + return true; } - return (type.flags & (48128 /* ObjectType */ | 512 /* TypeParameter */)) !== 0; + if (type.flags & 16384 /* Union */) { + var types = type.types; + for (var i = 0; i < types.length; i++) { + if (!(types[i].flags & kind)) { + return false; + } + } + return true; + } + return false; } function isConstEnumObjectType(type) { return type.flags & (48128 /* ObjectType */ | 32768 /* Anonymous */) && type.symbol && isConstEnumSymbol(type.symbol); @@ -12663,7 +12873,7 @@ var ts; return (symbol.flags & 128 /* ConstEnum */) !== 0; } function checkInstanceOfExpression(node, leftType, rightType) { - if (!(leftType.flags & 1 /* Any */ || isStructuredType(leftType))) { + if (isTypeOfKind(leftType, 510 /* Primitive */)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); } if (!(rightType.flags & 1 /* Any */ || isTypeSubtypeOf(rightType, globalFunctionType))) { @@ -12672,10 +12882,10 @@ var ts; return booleanType; } function checkInExpression(node, leftType, rightType) { - if (leftType !== anyType && leftType !== stringType && leftType !== numberType) { + if (!isTypeOfKind(leftType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number); } - if (!(rightType.flags & 1 /* Any */ || isStructuredType(rightType))) { + if (!isTypeOfKind(rightType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { 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; @@ -12686,7 +12896,7 @@ var ts; var p = properties[i]; if (p.kind === 204 /* PropertyAssignment */ || p.kind === 205 /* ShorthandPropertyAssignment */) { var name = p.name; - var type = sourceType.flags & 1 /* Any */ ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericName(name.text) && getIndexTypeOfType(sourceType, 1 /* Number */) || getIndexTypeOfType(sourceType, 0 /* String */); + var type = sourceType.flags & 1 /* Any */ ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1 /* Number */) || getIndexTypeOfType(sourceType, 0 /* String */); if (type) { checkDestructuringAssignment(p.initializer || name, type); } @@ -12805,13 +13015,13 @@ var ts; if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) rightType = leftType; var resultType; - if (leftType.flags & 132 /* NumberLike */ && rightType.flags & 132 /* NumberLike */) { + if (isTypeOfKind(leftType, 132 /* NumberLike */) && isTypeOfKind(rightType, 132 /* NumberLike */)) { resultType = numberType; } - else if (leftType.flags & 258 /* StringLike */ || rightType.flags & 258 /* StringLike */) { + else if (isTypeOfKind(leftType, 258 /* StringLike */) || isTypeOfKind(rightType, 258 /* StringLike */)) { resultType = stringType; } - else if (leftType.flags & 1 /* Any */ || leftType === unknownType || rightType.flags & 1 /* Any */ || rightType === unknownType) { + else if (leftType.flags & 1 /* Any */ || rightType.flags & 1 /* Any */) { resultType = anyType; } if (!resultType) { @@ -12909,8 +13119,17 @@ var ts; } return links.resolvedType; } + function checkPropertyAssignment(node, contextualMapper) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } + return checkExpression(node.initializer, contextualMapper); + } function checkObjectLiteralMethod(node, contextualMapper) { checkGrammarMethod(node); + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } @@ -13033,12 +13252,15 @@ var ts; checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); checkVariableLikeDeclaration(node); var func = ts.getContainingFunction(node); - if (node.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */)) { + if (node.flags & 112 /* AccessibilityModifier */) { func = ts.getContainingFunction(node); if (!(func.kind === 129 /* Constructor */ && ts.nodeIsPresent(func.body))) { error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } } + if (node.questionToken && ts.isBindingPattern(node.name) && func.body) { + error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature); + } if (node.dotDotDotToken) { if (!isArrayType(getTypeOfSymbol(node.symbol))) { error(node, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); @@ -13183,7 +13405,7 @@ var ts; error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement); } } - if (!ts.hasComputedNameButNotSymbol(node)) { + if (!ts.hasDynamicName(node)) { var otherKind = node.kind === 130 /* GetAccessor */ ? 131 /* SetAccessor */ : 130 /* GetAccessor */; var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind); if (otherAccessor) { @@ -13198,8 +13420,8 @@ var ts; } } } - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); } checkFunctionLikeDeclaration(node); } @@ -13507,7 +13729,10 @@ var ts; } function checkFunctionLikeDeclaration(node) { checkSignatureDeclaration(node); - if (!ts.hasComputedNameButNotSymbol(node)) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); + } + else { var symbol = getSymbolOfNode(node); var localSymbol = node.localSymbol || symbol; var firstDeclaration = ts.getDeclarationOfKind(localSymbol, node.kind); @@ -13661,7 +13886,8 @@ var ts; } function checkVariableLikeDeclaration(node) { checkSourceElement(node.type); - if (ts.hasComputedNameButNotSymbol(node)) { + if (ts.hasDynamicName(node)) { + checkComputedPropertyName(node.name); if (node.initializer) { checkExpressionCached(node.initializer); } @@ -13805,7 +14031,7 @@ var ts; } } var exprType = checkExpression(node.expression); - if (!(exprType.flags & 1 /* Any */ || isStructuredType(exprType))) { + if (!isTypeOfKind(exprType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { 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); @@ -13925,29 +14151,6 @@ var ts; 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 */); @@ -13955,9 +14158,20 @@ var ts; 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 */); + checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); + checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); }); + if (type.flags & 1024 /* Class */ && type.symbol.valueDeclaration.kind === 191 /* ClassDeclaration */) { + var classDeclaration = type.symbol.valueDeclaration; + for (var i = 0; i < classDeclaration.members.length; i++) { + var member = classDeclaration.members[i]; + if (!(member.flags & 128 /* Static */) && ts.hasDynamicName(member)) { + var propType = getTypeOfSymbol(member.symbol); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); + } + } + } } var errorNode; if (stringIndexType && numberIndexType) { @@ -13970,6 +14184,29 @@ var ts; if (errorNode && !isTypeAssignableTo(numberIndexType, stringIndexType)) { error(errorNode, ts.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType)); } + function checkIndexConstraintForProperty(prop, propertyType, containingType, indexDeclaration, indexType, indexKind) { + if (!indexType) { + return; + } + if (indexKind === 1 /* Number */ && !isNumericName(prop.valueDeclaration.name)) { + return; + } + var errorNode; + if (prop.valueDeclaration.name.kind === 122 /* ComputedPropertyName */ || prop.parent === containingType.symbol) { + errorNode = prop.valueDeclaration; + } + else if (indexDeclaration) { + errorNode = indexDeclaration; + } + else if (containingType.flags & 2048 /* Interface */) { + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + } + if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 /* 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)); + } + } } function checkTypeNameIsReserved(name, message) { switch (name.text) { @@ -14198,7 +14435,7 @@ var ts; var ambient = ts.isInAmbientContext(node); var enumIsConst = ts.isConst(node); ts.forEach(node.members, function (member) { - if (isNumericName(member.name.text)) { + if (member.name.kind !== 122 /* ComputedPropertyName */ && isNumericLiteralName(member.name.text)) { error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); } var initializer = member.initializer; @@ -15162,8 +15399,8 @@ var ts; if (symbol && (symbol.flags & 8 /* EnumMember */)) { var declaration = symbol.valueDeclaration; var constantValue; - if (declaration.kind === 206 /* EnumMember */ && (constantValue = getNodeLinks(declaration).enumMemberValue) !== undefined) { - return constantValue; + if (declaration.kind === 206 /* EnumMember */) { + return getEnumMemberValue(declaration); } } return undefined; @@ -15222,7 +15459,7 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTemplateStringsArrayType = compilerOptions.target >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; + globalTemplateStringsArrayType = languageVersion >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; anyArrayType = createArrayType(anyType); } function checkGrammarModifiers(node) { @@ -15346,6 +15583,9 @@ var ts; else if (node.kind === 192 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); } + else if (node.kind === 124 /* Parameter */ && (flags & 112 /* AccessibilityModifier */) && ts.isBindingPattern(node.name)) { + return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); + } } function checkGrammarForDisallowedTrailingComma(list) { if (list && list.hasTrailingComma) { @@ -15530,16 +15770,14 @@ var ts; } function checkGrammarComputedPropertyName(node) { if (node.kind !== 122 /* ComputedPropertyName */) { - return; + return false; } - grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_not_currently_supported); - return; var computedPropertyName = node; - if (compilerOptions.target < 2 /* ES6 */) { - grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); + if (languageVersion < 2 /* ES6 */) { + return grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); } else if (computedPropertyName.expression.kind === 163 /* BinaryExpression */ && computedPropertyName.expression.operator === 23 /* CommaToken */) { - grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); + return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); } } function checkGrammarForGenerator(node) { @@ -15615,7 +15853,7 @@ var ts; } function checkGrammarAccessor(accessor) { var kind = accessor.kind; - if (compilerOptions.target < 1 /* ES5 */) { + if (languageVersion < 1 /* ES5 */) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); } else if (ts.isInAmbientContext(accessor)) { @@ -15780,7 +16018,7 @@ var ts; if (!declarationList.declarations.length) { return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); } - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { if (ts.isLet(declarationList)) { return grammarErrorOnFirstToken(declarationList, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } @@ -15863,7 +16101,7 @@ var ts; function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { var sourceFile = ts.getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var scanner = ts.createScanner(compilerOptions.target, true, sourceFile.text); + var scanner = ts.createScanner(languageVersion, true, sourceFile.text); var start = scanToken(scanner, node.pos); diagnostics.push(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); return true; @@ -15963,7 +16201,7 @@ var ts; if (node.parserContextFlags & 1 /* StrictMode */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); } - else if (compilerOptions.target >= 1 /* ES5 */) { + else if (languageVersion >= 1 /* ES5 */) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); } } @@ -15971,7 +16209,7 @@ var ts; function grammarErrorAfterFirstToken(node, message, arg0, arg1, arg2) { var sourceFile = ts.getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var scanner = ts.createScanner(compilerOptions.target, true, sourceFile.text); + var scanner = ts.createScanner(languageVersion, true, sourceFile.text); scanToken(scanner, node.pos); diagnostics.push(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); return true; @@ -16098,9 +16336,10 @@ var ts; function writeCommentRange(currentSourceFile, writer, comment, newLine) { if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); + var lastLine = currentSourceFile.getLineStarts().length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + var nextLineStart = currentLine === lastLine ? (comment.end + 1) : currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), comment.pos); @@ -16220,6 +16459,7 @@ var ts; function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { var newLine = host.getNewLine(); var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var write; var writeLine; var increaseIndent; @@ -16712,6 +16952,9 @@ var ts; } } function emitPropertyDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } emitJsDocComments(node); emitClassMemberDeclarationFlags(node); emitVariableDeclaration(node); @@ -16780,6 +17023,9 @@ var ts; } } function emitAccessorDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } var accessors = getAllAccessorDeclarations(node.parent, node); if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); @@ -16837,6 +17083,9 @@ var ts; } } function emitFunctionDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } if ((node.kind !== 190 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); if (node.kind === 190 /* FunctionDeclaration */) { @@ -17088,6 +17337,7 @@ var ts; ts.getDeclarationDiagnostics = getDeclarationDiagnostics; function emitFiles(resolver, host, targetSourceFile) { var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0 /* ES3 */; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = host.getNewLine(); @@ -17244,7 +17494,11 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - scopeName = sourceMapData.sourceMapNames[parentIndex] + "." + scopeName; + var name = node.name; + if (!name || name.kind !== 122 /* ComputedPropertyName */) { + scopeName = "." + scopeName; + } + scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; } scopeNameIndex = ts.getProperty(sourceMapNameIndexMap, scopeName); if (scopeNameIndex === undefined) { @@ -17260,7 +17514,8 @@ var ts; } else if (node.kind === 190 /* FunctionDeclaration */ || node.kind === 156 /* FunctionExpression */ || node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */ || node.kind === 130 /* GetAccessor */ || node.kind === 131 /* SetAccessor */ || node.kind === 195 /* ModuleDeclaration */ || node.kind === 191 /* ClassDeclaration */ || node.kind === 194 /* EnumDeclaration */) { if (node.name) { - scopeName = node.name.text; + var name = node.name; + scopeName = name.kind === 122 /* ComputedPropertyName */ ? ts.getTextOfNode(name) : node.name.text; } recordScopeNameStart(scopeName); } @@ -17480,11 +17735,11 @@ var ts; return false; } function emitLiteral(node) { - var text = compilerOptions.target < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; + var text = languageVersion < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; if (compilerOptions.sourceMap && (node.kind === 8 /* StringLiteral */ || ts.isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); } - else if (compilerOptions.target < 2 /* ES6 */ && node.kind === 7 /* NumericLiteral */ && isBinaryOrOctalIntegerLiteral(text)) { + else if (languageVersion < 2 /* ES6 */ && node.kind === 7 /* NumericLiteral */ && isBinaryOrOctalIntegerLiteral(text)) { write(node.text); } else { @@ -17495,7 +17750,7 @@ var ts; return '"' + ts.escapeString(node.text) + '"'; } function emitTemplateExpression(node) { - if (compilerOptions.target >= 2 /* ES6 */) { + if (languageVersion >= 2 /* ES6 */) { ts.forEachChild(node, emit); return; } @@ -17542,7 +17797,7 @@ var ts; } } function comparePrecedenceToBinaryPlus(expression) { - ts.Debug.assert(compilerOptions.target <= 1 /* ES5 */); + ts.Debug.assert(languageVersion < 2 /* ES6 */); switch (expression.kind) { case 163 /* BinaryExpression */: switch (expression.operator) { @@ -17708,7 +17963,7 @@ var ts; write("[]"); return; } - if (compilerOptions.target >= 2 /* ES6 */) { + if (languageVersion >= 2 /* ES6 */) { write("["); emitList(elements, 0, elements.length, (node.flags & 256 /* MultiLine */) !== 0, elements.hasTrailingComma); write("]"); @@ -17753,7 +18008,7 @@ var ts; if (!multiLine) { write(" "); } - emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && compilerOptions.target >= 1 /* ES5 */); + emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && languageVersion >= 1 /* ES5 */); if (!multiLine) { write(" "); } @@ -17766,32 +18021,23 @@ var ts; write("]"); } function emitMethod(node) { - if (!ts.isObjectLiteralMethod(node)) { - return; - } - emitLeadingComments(node); emit(node.name); - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { write(": function "); } emitSignatureAndBody(node); - emitTrailingComments(node); } function emitPropertyAssignment(node) { - emitLeadingComments(node); emit(node.name); write(": "); emit(node.initializer); - emitTrailingComments(node); } function emitShorthandPropertyAssignment(node) { - emitLeadingComments(node); emit(node.name); - if (compilerOptions.target < 2 /* ES6 */ || resolver.getExpressionNamePrefix(node.name)) { + if (languageVersion < 2 /* ES6 */ || resolver.getExpressionNamePrefix(node.name)) { write(": "); emitExpressionIdentifier(node.name); } - emitTrailingComments(node); } function tryEmitConstantValue(node) { var constantValue = resolver.getConstantValue(node); @@ -17859,7 +18105,7 @@ var ts; } } function emitTaggedTemplateExpression(node) { - ts.Debug.assert(compilerOptions.target >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); + ts.Debug.assert(languageVersion >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); emit(node.tag); write(" "); emit(node.template); @@ -17912,7 +18158,7 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (compilerOptions.target < 2 /* ES6 */ && node.operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { + if (languageVersion < 2 /* ES6 */ && node.operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { emitDestructuring(node); } else { @@ -17961,13 +18207,10 @@ var ts; } } function emitExpressionStatement(node) { - emitLeadingComments(node); emitParenthesized(node.expression, node.expression.kind === 157 /* ArrowFunction */); write(";"); - emitTrailingComments(node); } function emitIfStatement(node) { - emitLeadingComments(node); var endPos = emitToken(83 /* IfKeyword */, node.pos); write(" "); endPos = emitToken(16 /* OpenParenToken */, endPos); @@ -17985,7 +18228,6 @@ var ts; emitEmbeddedStatement(node.elseStatement); } } - emitTrailingComments(node); } function emitDoStatement(node) { write("do"); @@ -18067,11 +18309,9 @@ var ts; write(";"); } function emitReturnStatement(node) { - emitLeadingComments(node); emitToken(89 /* ReturnKeyword */, node.pos); emitOptional(" ", node.expression); write(";"); - emitTrailingComments(node); } function emitWithStatement(node) { write("with ("); @@ -18352,9 +18592,8 @@ var ts; } } function emitVariableDeclaration(node) { - emitLeadingComments(node); if (ts.isBindingPattern(node.name)) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { emitDestructuring(node); } else { @@ -18366,10 +18605,8 @@ var ts; emitModuleMemberName(node); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitVariableStatement(node) { - emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { if (ts.isLet(node.declarationList)) { write("let "); @@ -18383,11 +18620,9 @@ var ts; } emitCommaList(node.declarationList.declarations); write(";"); - emitTrailingComments(node); } function emitParameter(node) { - emitLeadingComments(node); - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { if (ts.isBindingPattern(node.name)) { var name = createTempVariable(node); if (!tempParameters) { @@ -18407,10 +18642,9 @@ var ts; emit(node.name); emitOptional(" = ", node.initializer); } - emitTrailingComments(node); } function emitDefaultValueAssignments(node) { - if (compilerOptions.target < 2 /* ES6 */) { + if (languageVersion < 2 /* ES6 */) { var tempIndex = 0; ts.forEach(node.parameters, function (p) { if (ts.isBindingPattern(p.name)) { @@ -18439,7 +18673,7 @@ var ts; } } function emitRestParameter(node) { - if (compilerOptions.target < 2 /* ES6 */ && ts.hasRestParameters(node)) { + if (languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; var tempName = createTempVariable(node, true).text; @@ -18477,11 +18711,9 @@ var ts; } } function emitAccessor(node) { - emitLeadingComments(node); write(node.kind === 130 /* GetAccessor */ ? "get " : "set "); emit(node.name); emitSignatureAndBody(node); - emitTrailingComments(node); } function emitFunctionDeclaration(node) { if (ts.nodeIsMissing(node.body)) { @@ -18512,7 +18744,7 @@ var ts; write("("); if (node) { var parameters = node.parameters; - var omitCount = compilerOptions.target < 2 /* ES6 */ && ts.hasRestParameters(node) ? 1 : 0; + var omitCount = languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node) ? 1 : 0; emitList(parameters, 0, parameters.length - omitCount, false, false); } write(")"); @@ -18543,7 +18775,7 @@ var ts; write(" "); emitStart(node.body); write("return "); - emitNode(node.body); + emitNode(node.body, true); emitEnd(node.body); write(";"); emitTempDeclarations(false); @@ -18560,7 +18792,7 @@ var ts; writeLine(); emitLeadingComments(node.body); write("return "); - emit(node.body); + emit(node.body, true); write(";"); emitTrailingComments(node.body); } @@ -18734,7 +18966,6 @@ var ts; }); } function emitClassDeclaration(node) { - emitLeadingComments(node); write("var "); emit(node.name); write(" = (function ("); @@ -18784,7 +19015,6 @@ var ts; emitEnd(node); write(";"); } - emitTrailingComments(node); function emitConstructorOfClass() { var saveTempCount = tempCount; var saveTempVariables = tempVariables; @@ -18859,12 +19089,14 @@ var ts; function emitInterfaceDeclaration(node) { emitPinnedOrTripleSlashComments(node); } - function emitEnumDeclaration(node) { + function shouldEmitEnumDeclaration(node) { var isConstEnum = ts.isConst(node); - if (isConstEnum && !compilerOptions.preserveConstEnums) { + return !isConstEnum || compilerOptions.preserveConstEnums; + } + function emitEnumDeclaration(node) { + if (!shouldEmitEnumDeclaration(node)) { return; } - emitLeadingComments(node); if (!(node.flags & 1 /* Export */)) { emitStart(node); write("var "); @@ -18881,7 +19113,7 @@ var ts; write(") {"); increaseIndent(); scopeEmitStart(node); - emitEnumMemberDeclarations(isConstEnum); + emitLines(node.members); decreaseIndent(); writeLine(); emitToken(15 /* CloseBraceToken */, node.members.end); @@ -18902,31 +19134,26 @@ var ts; 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 emitEnumMember(node) { + var enumParent = node.parent; + emitStart(node); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + write(resolver.getLocalNameOfContainer(enumParent)); + write("["); + emitExpressionForPropertyName(node.name); + write("] = "); + if (node.initializer && !ts.isConst(enumParent)) { + emit(node.initializer); } + else { + write(resolver.getEnumMemberValue(node).toString()); + } + write("] = "); + emitExpressionForPropertyName(node.name); + emitEnd(node); + write(";"); } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { if (moduleDeclaration.body.kind === 195 /* ModuleDeclaration */) { @@ -18934,12 +19161,14 @@ var ts; return recursiveInnerModule || moduleDeclaration.body; } } + function shouldEmitModuleDeclaration(node) { + return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums); + } function emitModuleDeclaration(node) { - var shouldEmit = ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums); + var shouldEmit = shouldEmitModuleDeclaration(node); if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); } - emitLeadingComments(node); emitStart(node); write("var "); emit(node.name); @@ -18984,7 +19213,6 @@ var ts; emitModuleMemberName(node); write(" = {}));"); emitEnd(node); - emitTrailingComments(node); } function emitImportDeclaration(node) { var emitImportDeclaration = resolver.isReferencedImportDeclaration(node); @@ -19157,13 +19385,38 @@ var ts; } emitLeadingComments(node.endOfFileToken); } - function emitNode(node) { + function emitNode(node, disableComments) { if (!node) { return; } if (node.flags & 2 /* Ambient */) { return emitPinnedOrTripleSlashComments(node); } + var emitComments = !disableComments && shouldEmitLeadingAndTrailingComments(node); + if (emitComments) { + emitLeadingComments(node); + } + emitJavaScriptWorker(node); + if (emitComments) { + emitTrailingComments(node); + } + } + function shouldEmitLeadingAndTrailingComments(node) { + switch (node.kind) { + case 192 /* InterfaceDeclaration */: + case 190 /* FunctionDeclaration */: + case 197 /* ImportDeclaration */: + case 193 /* TypeAliasDeclaration */: + case 198 /* ExportAssignment */: + return false; + case 195 /* ModuleDeclaration */: + return shouldEmitModuleDeclaration(node); + case 194 /* EnumDeclaration */: + return shouldEmitEnumDeclaration(node); + } + return true; + } + function emitJavaScriptWorker(node) { switch (node.kind) { case 64 /* Identifier */: return emitIdentifier(node); @@ -19300,6 +19553,8 @@ var ts; return emitInterfaceDeclaration(node); case 194 /* EnumDeclaration */: return emitEnumDeclaration(node); + case 206 /* EnumMember */: + return emitEnumMember(node); case 195 /* ModuleDeclaration */: return emitModuleDeclaration(node); case 197 /* ImportDeclaration */: @@ -19322,15 +19577,17 @@ var ts; return leadingComments; } function getLeadingCommentsToEmit(node) { - if (node.parent.kind === 207 /* SourceFile */ || node.pos !== node.parent.pos) { - var leadingComments; - if (hasDetachedComments(node.pos)) { - leadingComments = getLeadingCommentsWithoutDetachedComments(); + if (node.parent) { + if (node.parent.kind === 207 /* SourceFile */ || node.pos !== node.parent.pos) { + var leadingComments; + if (hasDetachedComments(node.pos)) { + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); + } + return leadingComments; } - else { - leadingComments = ts.getLeadingCommentRangesOfNode(node, currentSourceFile); - } - return leadingComments; } } function emitLeadingDeclarationComments(node) { @@ -19339,9 +19596,11 @@ var ts; emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitTrailingDeclarationComments(node) { - if (node.parent.kind === 207 /* SourceFile */ || node.end !== node.parent.end) { - var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + if (node.parent) { + if (node.parent.kind === 207 /* SourceFile */ || node.end !== node.parent.end) { + var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); + emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + } } } function emitLeadingCommentsOfLocalPosition(pos) { @@ -19779,7 +20038,7 @@ var ts; return; } var firstExternalModule = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); - if (firstExternalModule && options.module === 0 /* None */) { + if (firstExternalModule && !options.module) { var externalModuleErrorSpan = ts.getErrorSpanForNode(firstExternalModule.externalModuleIndicator); var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); var errorLength = externalModuleErrorSpan.end - errorStart; @@ -19859,6 +20118,10 @@ var ts; type: "boolean", description: ts.Diagnostics.Print_this_message }, + { + name: "listFiles", + type: "boolean" + }, { name: "locale", type: "string" @@ -19866,6 +20129,7 @@ var ts; { name: "mapRoot", type: "string", + isFilePath: true, description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations, paramType: ts.Diagnostics.LOCATION }, @@ -19916,6 +20180,7 @@ var ts; { name: "outDir", type: "string", + isFilePath: true, description: ts.Diagnostics.Redirect_output_structure_to_the_directory, paramType: ts.Diagnostics.DIRECTORY }, @@ -19924,6 +20189,14 @@ var ts; type: "boolean", description: ts.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code }, + { + name: "project", + shortName: "p", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Compile_the_project_in_the_given_directory, + paramType: ts.Diagnostics.DIRECTORY + }, { name: "removeComments", type: "boolean", @@ -19937,6 +20210,7 @@ var ts; { name: "sourceRoot", type: "string", + isFilePath: true, description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations, paramType: ts.Diagnostics.LOCATION }, @@ -19966,21 +20240,18 @@ var ts; description: ts.Diagnostics.Watch_input_files } ]; - var shortOptionNames = {}; - var optionNameMap = {}; - ts.forEach(ts.optionDeclarations, function (option) { - optionNameMap[option.name.toLowerCase()] = option; - if (option.shortName) { - shortOptionNames[option.shortName] = option.name; - } - }); function parseCommandLine(commandLine) { - var options = { - target: 0 /* ES3 */, - module: 0 /* None */ - }; + var options = {}; var filenames = []; var errors = []; + var shortOptionNames = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name.toLowerCase()] = option; + if (option.shortName) { + shortOptionNames[option.shortName] = option.name; + } + }); parseStrings(commandLine); return { options: options, @@ -20070,6 +20341,83 @@ var ts; } } ts.parseCommandLine = parseCommandLine; + function readConfigFile(filename) { + try { + var text = ts.sys.readFile(filename); + return /\S/.test(text) ? JSON.parse(text) : {}; + } + catch (e) { + } + } + ts.readConfigFile = readConfigFile; + function parseConfigFile(json, basePath) { + var errors = []; + return { + options: getCompilerOptions(), + filenames: getFiles(), + errors: errors + }; + function getCompilerOptions() { + var options = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name] = option; + }); + var jsonOptions = json["compilerOptions"]; + if (jsonOptions) { + for (var id in jsonOptions) { + if (ts.hasProperty(optionNameMap, id)) { + var opt = optionNameMap[id]; + var optType = opt.type; + var value = jsonOptions[id]; + var expectedType = typeof optType === "string" ? optType : "string"; + if (typeof value === expectedType) { + if (typeof optType !== "string") { + var key = value.toLowerCase(); + if (ts.hasProperty(optType, key)) { + value = optType[key]; + } + else { + errors.push(ts.createCompilerDiagnostic(opt.error)); + value = 0; + } + } + if (opt.isFilePath) { + value = ts.normalizePath(ts.combinePaths(basePath, value)); + } + options[opt.name] = value; + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, id, expectedType)); + } + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, id)); + } + } + } + return options; + } + function getFiles() { + var files = []; + if (ts.hasProperty(json, "files")) { + if (json["files"] instanceof Array) { + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); + } + } + else { + var sysFiles = ts.sys.readDirectory(basePath, ".ts"); + for (var i = 0; i < sysFiles.length; i++) { + var name = sysFiles[i]; + if (!ts.fileExtensionIs(name, ".d.ts") || !ts.contains(sysFiles, name.substr(0, name.length - 5) + ".ts")) { + files.push(name); + } + } + } + return files; + } + } + ts.parseConfigFile = parseConfigFile; })(ts || (ts = {})); var ts; (function (ts) { @@ -20205,8 +20553,9 @@ var ts; case 145 /* ArrayBindingPattern */: ts.forEach(node.elements, visit); break; + case 146 /* BindingElement */: case 188 /* VariableDeclaration */: - if (ts.isBindingPattern(node)) { + if (ts.isBindingPattern(node.name)) { visit(node.name); break; } @@ -20353,17 +20702,30 @@ var ts; case 190 /* FunctionDeclaration */: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement); case 188 /* VariableDeclaration */: - if (ts.isBindingPattern(node.name)) { - break; - } - 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); + case 146 /* BindingElement */: + var variableDeclarationNode; + var name; + if (node.kind === 146 /* BindingElement */) { + name = node.name; + variableDeclarationNode = node; + while (variableDeclarationNode && variableDeclarationNode.kind !== 188 /* VariableDeclaration */) { + variableDeclarationNode = variableDeclarationNode.parent; + } + ts.Debug.assert(variableDeclarationNode !== undefined); } else { - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.variableElement); + ts.Debug.assert(!ts.isBindingPattern(node.name)); + variableDeclarationNode = node; + name = node.name; + } + if (ts.isConst(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.constElement); + } + else if (ts.isLet(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.letElement); + } + else { + return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); } case 129 /* Constructor */: return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); @@ -21281,6 +21643,9 @@ var ts; end: scanner.getTextPos(), kind: currentToken }; + if (trailingTrivia) { + trailingTrivia = undefined; + } while (scanner.getStartPos() < endPos) { currentToken = scanner.scan(); if (!ts.isTrivia(currentToken)) { @@ -22227,7 +22592,9 @@ var ts; })(Constants || (Constants = {})); function formatOnEnter(position, sourceFile, rulesProvider, options) { var line = sourceFile.getLineAndCharacterFromPosition(position).line; - ts.Debug.assert(line >= 2); + if (line === 1) { + return []; + } var span = { pos: ts.getStartPositionOfLine(line - 1, sourceFile), end: ts.getEndLinePosition(line, sourceFile) + 1 @@ -22345,7 +22712,13 @@ var ts; return start; } var precedingToken = ts.findPrecedingToken(originalRange.pos, sourceFile); - return precedingToken ? precedingToken.end : enclosingNode.pos; + if (!precedingToken) { + return enclosingNode.pos; + } + if (precedingToken.end >= originalRange.pos) { + return enclosingNode.pos; + } + return precedingToken.end; } function getOwnOrInheritedDelta(n, options, sourceFile) { var previousLine = -1 /* Unknown */; @@ -22556,7 +22929,7 @@ var ts; if (listEndToken !== 0 /* Unknown */) { if (formattingScanner.isOnToken()) { var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.kind === listEndToken) { + if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); } } @@ -22908,7 +23281,8 @@ var ts; if (!precedingToken) { return 0; } - if ((precedingToken.kind === 8 /* StringLiteral */ || precedingToken.kind === 9 /* RegularExpressionLiteral */) && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { + var precedingTokenIsLiteral = precedingToken.kind === 8 /* StringLiteral */ || precedingToken.kind === 9 /* RegularExpressionLiteral */ || precedingToken.kind === 10 /* NoSubstitutionTemplateLiteral */ || precedingToken.kind === 11 /* TemplateHead */ || precedingToken.kind === 12 /* TemplateMiddle */ || precedingToken.kind === 13 /* TemplateTail */; + if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { return 0; } var lineAtPosition = sourceFile.getLineAndCharacterFromPosition(position).line; @@ -23243,7 +23617,7 @@ var __extends = this.__extends || function (d, b) { }; var ts; (function (ts) { - ts.servicesVersion = "0.4"; + ts.servicesVersion = "0.5"; var ScriptSnapshot; (function (ScriptSnapshot) { var StringScriptSnapshot = (function () { @@ -23440,28 +23814,30 @@ var ts; function getJsDocCommentsSeparatedByNewLines() { var paramTag = "@param"; var jsDocCommentParts = []; - ts.forEach(declarations, function (declaration) { - var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); - if (canUseParsedParamTagComments && declaration.kind === 124 /* Parameter */) { - ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedParamJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); + ts.forEach(declarations, function (declaration, indexOfDeclaration) { + if (ts.indexOf(declarations, declaration) === indexOfDeclaration) { + var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); + if (canUseParsedParamTagComments && declaration.kind === 124 /* Parameter */) { + ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedParamJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); + } + }); + } + if (declaration.kind === 195 /* ModuleDeclaration */ && declaration.body.kind === 195 /* ModuleDeclaration */) { + return; + } + while (declaration.kind === 195 /* ModuleDeclaration */ && declaration.parent.kind === 195 /* ModuleDeclaration */) { + declaration = declaration.parent; + } + ts.forEach(getJsDocCommentTextRange(declaration.kind === 188 /* VariableDeclaration */ ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); } }); } - if (declaration.kind === 195 /* ModuleDeclaration */ && declaration.body.kind === 195 /* ModuleDeclaration */) { - return; - } - while (declaration.kind === 195 /* ModuleDeclaration */ && declaration.parent.kind === 195 /* ModuleDeclaration */) { - declaration = declaration.parent; - } - ts.forEach(getJsDocCommentTextRange(declaration.kind === 188 /* VariableDeclaration */ ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); - } - }); }); return jsDocCommentParts; function getJsDocCommentTextRange(node, sourceFile) { @@ -24087,6 +24463,7 @@ var ts; function createLanguageServiceSourceFile(filename, scriptSnapshot, scriptTarget, version, isOpen, setNodeParents) { var sourceFile = ts.createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); setSourceFileFields(sourceFile, scriptSnapshot, version, isOpen); + sourceFile.nameTable = sourceFile.identifiers; return sourceFile; } ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; @@ -24110,6 +24487,7 @@ var ts; if (!ts.disableIncrementalParsing) { var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); + newSourceFile.nameTable = undefined; return newSourceFile; } } @@ -24409,7 +24787,9 @@ var ts; getCancellationToken: function () { return cancellationToken; }, getCanonicalFileName: function (filename) { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); }, useCaseSensitiveFileNames: function () { return useCaseSensitivefilenames; }, - getNewLine: function () { return "\r\n"; }, + getNewLine: function () { + return host.getNewLine ? host.getNewLine() : "\r\n"; + }, getDefaultLibFilename: function (options) { return host.getDefaultLibFilename(options); }, @@ -25395,7 +25775,7 @@ var ts; return undefined; } if (node.kind === 64 /* Identifier */ || node.kind === 92 /* ThisKeyword */ || node.kind === 90 /* SuperKeyword */ || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return getReferencesForNode(node, [sourceFile], false, false); + return getReferencesForNode(node, [sourceFile], true, false, false); } switch (node.kind) { case 83 /* IfKeyword */: @@ -25817,9 +26197,27 @@ var ts; return undefined; } ts.Debug.assert(node.kind === 64 /* Identifier */ || node.kind === 7 /* NumericLiteral */ || node.kind === 8 /* StringLiteral */); - return getReferencesForNode(node, program.getSourceFiles(), findInStrings, findInComments); + return getReferencesForNode(node, program.getSourceFiles(), false, findInStrings, findInComments); } - function getReferencesForNode(node, sourceFiles, findInStrings, findInComments) { + function initializeNameTable(sourceFile) { + var nameTable = {}; + walk(sourceFile); + sourceFile.nameTable = nameTable; + function walk(node) { + switch (node.kind) { + case 64 /* Identifier */: + nameTable[node.text] = node.text; + break; + case 8 /* StringLiteral */: + case 7 /* NumericLiteral */: + nameTable[node.text] = node.text; + break; + default: + ts.forEachChild(node, walk); + } + } + } + function getReferencesForNode(node, sourceFiles, searchOnlyInCurrentFile, findInStrings, findInComments) { if (isLabelName(node)) { if (isJumpStatementTarget(node)) { var labelDefinition = getTargetLabel(node.parent, node.text); @@ -25852,14 +26250,25 @@ var ts; 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, internedName)) { - result = result || []; - getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); - } - }); + if (searchOnlyInCurrentFile) { + ts.Debug.assert(sourceFiles.length === 1); + result = []; + getReferencesInNode(sourceFiles[0], symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); + } + else { + var internedName = getInternedName(symbol, declarations); + ts.forEach(sourceFiles, function (sourceFile) { + cancellationToken.throwIfCancellationRequested(); + if (!sourceFile.nameTable) { + initializeNameTable(sourceFile); + } + ts.Debug.assert(sourceFile.nameTable !== undefined); + if (ts.lookUp(sourceFile.nameTable, internedName)) { + result = result || []; + getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); + } + }); + } } return result; function getDeclaredName(symbol) { @@ -25891,7 +26300,7 @@ var ts; return ts.getAncestor(privateDeclaration, 191 /* ClassDeclaration */); } } - if (symbol.parent) { + if (symbol.parent || (symbol.getFlags() & 268435456 /* UnionProperty */)) { return undefined; } var scope = undefined; @@ -26026,7 +26435,7 @@ var ts; } } function getReferencesForSuperKeyword(superKeyword) { - var searchSpaceNode = ts.getSuperContainer(superKeyword); + var searchSpaceNode = ts.getSuperContainer(superKeyword, false); if (!searchSpaceNode) { return undefined; } @@ -26054,7 +26463,7 @@ var ts; if (!node || node.kind !== 90 /* SuperKeyword */) { return; } - var container = ts.getSuperContainer(node); + var container = ts.getSuperContainer(node, false); if (container && (128 /* Static */ & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { result.push(getReferenceEntryFromNode(node)); } diff --git a/bin/typescriptServices_internal.d.ts b/bin/typescriptServices_internal.d.ts index 5731d6959de..82f5e606758 100644 --- a/bin/typescriptServices_internal.d.ts +++ b/bin/typescriptServices_internal.d.ts @@ -44,6 +44,7 @@ declare module ts { function getProperty(map: Map, key: string): T; function isEmpty(map: Map): boolean; function clone(object: T): T; + function extend(first: Map, second: Map): Map; function forEachValue(map: Map, callback: (value: T) => U): U; function forEachKey(map: Map, callback: (key: string) => U): U; function lookUp(map: Map, key: string): T; @@ -125,6 +126,7 @@ declare module ts { createDirectory(directoryName: string): void; getExecutingFilePath(): string; getCurrentDirectory(): string; + readDirectory(path: string, extension?: string): string[]; getMemoryUsage?(): number; exit(exitCode?: number): void; } @@ -186,7 +188,7 @@ declare module ts { function isObjectLiteralMethod(node: Node): boolean; function getContainingFunction(node: Node): FunctionLikeDeclaration; function getThisContainer(node: Node, includeArrowFunctions: boolean): Node; - function getSuperContainer(node: Node): Node; + function getSuperContainer(node: Node, includeFunctions: boolean): Node; function getInvokedExpression(node: CallLikeExpression): Expression; function isExpression(node: Node): boolean; function isInstantiatedModule(node: ModuleDeclaration, preserveConstEnums: boolean): boolean; @@ -244,6 +246,8 @@ declare module ts { declare module ts { var optionDeclarations: CommandLineOption[]; function parseCommandLine(commandLine: string[]): ParsedCommandLine; + function readConfigFile(filename: string): any; + function parseConfigFile(json: any, basePath?: string): ParsedCommandLine; } declare module ts { interface ListItemInfo { diff --git a/bin/typescript_internal.d.ts b/bin/typescript_internal.d.ts index e9bff0d37f9..2758ab3c212 100644 --- a/bin/typescript_internal.d.ts +++ b/bin/typescript_internal.d.ts @@ -44,6 +44,7 @@ declare module "typescript" { function getProperty(map: Map, key: string): T; function isEmpty(map: Map): boolean; function clone(object: T): T; + function extend(first: Map, second: Map): Map; function forEachValue(map: Map, callback: (value: T) => U): U; function forEachKey(map: Map, callback: (key: string) => U): U; function lookUp(map: Map, key: string): T; @@ -125,6 +126,7 @@ declare module "typescript" { createDirectory(directoryName: string): void; getExecutingFilePath(): string; getCurrentDirectory(): string; + readDirectory(path: string, extension?: string): string[]; getMemoryUsage?(): number; exit(exitCode?: number): void; } @@ -186,7 +188,7 @@ declare module "typescript" { function isObjectLiteralMethod(node: Node): boolean; function getContainingFunction(node: Node): FunctionLikeDeclaration; function getThisContainer(node: Node, includeArrowFunctions: boolean): Node; - function getSuperContainer(node: Node): Node; + function getSuperContainer(node: Node, includeFunctions: boolean): Node; function getInvokedExpression(node: CallLikeExpression): Expression; function isExpression(node: Node): boolean; function isInstantiatedModule(node: ModuleDeclaration, preserveConstEnums: boolean): boolean; @@ -244,6 +246,8 @@ declare module "typescript" { declare module "typescript" { var optionDeclarations: CommandLineOption[]; function parseCommandLine(commandLine: string[]): ParsedCommandLine; + function readConfigFile(filename: string): any; + function parseConfigFile(json: any, basePath?: string): ParsedCommandLine; } declare module "typescript" { interface ListItemInfo { From 6a0eaf52bffe0f954549a9c3ead51e6bfba58534 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 16:51:12 -0800 Subject: [PATCH 143/211] Update an error --- src/compiler/checker.ts | 4 ++-- .../diagnosticInformationMap.generated.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- ...mitArrowFunctionWhenUsingArguments.errors.txt | 16 ++++++++-------- ...ArrowFunctionWhenUsingArgumentsES6.errors.txt | 16 ++++++++-------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ab5bc93512b..29c22064787 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4852,11 +4852,11 @@ module ts { // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. // Although in down-level emit of arrow function, we emit it using function expression which means that // arguments objects will be bound to the inner object; emitting arrow function natively in ES6, arguments objects - // will be bound to non-arrow function that contain this arrow function. This results in inconsistent behaviour. + // will be bound to non-arrow function that contain this arrow function. This results in inconsistent behavior. // To avoid that we will give an error to users if they use arguments objects in arrow function so that they // can explicitly bound arguments objects if (symbol === argumentsSymbol && getContainingFunction(node).kind === SyntaxKind.ArrowFunction) { - error(node, Diagnostics.The_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead); + error(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression); } if (symbol.flags & SymbolFlags.Import) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index cb6b9098864..94a026a1858 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -452,6 +452,6 @@ module ts { 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.", isEarly: true }, Generators_are_not_currently_supported: { code: 9001, category: DiagnosticCategory.Error, key: "Generators are not currently supported.", isEarly: true }, - The_argument_object_has_different_behaviour_across_Javascript_versions_Use_function_expression_or_rest_parameters_instead: { code: 9002, category: DiagnosticCategory.Error, key: "The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead" }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: DiagnosticCategory.Error, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." }, }; } \ No newline at end of file diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index f3880aa545f..0d13e2f761c 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1909,7 +1909,7 @@ "code": 9001, "isEarly": true }, - "The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead": { + "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression.": { "category": "Error", "code": 9002 } diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt index ea5e4ca1df1..3a0ab0e597c 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.errors.txt @@ -1,21 +1,21 @@ -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(2,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(7,19): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(13,13): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(19,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(2,15): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(7,19): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(13,13): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts(19,15): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. ==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts (4 errors) ==== var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } var b = function () { var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } } @@ -23,7 +23,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts () => { var arg = arguments[0]; ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } } @@ -31,7 +31,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArguments.ts foo(() => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. }); function bar() { diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt index 060c1a6d3f4..f879f11799b 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.errors.txt @@ -1,21 +1,21 @@ -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(2,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(7,19): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(13,13): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead -tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(19,15): error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(2,15): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(7,19): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(13,13): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. +tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts(19,15): error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. ==== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6.ts (4 errors) ==== var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } var b = function () { var a = () => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } } @@ -23,7 +23,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6 () => { var arg = arguments[0]; ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. } } @@ -31,7 +31,7 @@ tests/cases/conformance/es6/arrowFunction/emitArrowFunctionWhenUsingArgumentsES6 foo(() => { var arg = arguments[0]; // error ~~~~~~~~~ -!!! error TS9002: The 'argument' object has different behaviour across Javascript versions. Use function expression or rest parameters instead +!!! error TS9002: The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression. }); function bar() { From 416267172d832bd224a6b6d74842c60fbbddd89e Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 17:48:07 -0800 Subject: [PATCH 144/211] Address code review --- src/compiler/checker.ts | 2 +- src/compiler/emitter.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 29c22064787..072c7cd9ebb 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4915,7 +4915,7 @@ module ts { container = getThisContainer(container, /* includeArrowFunctions */ false); // When targeting es6, arrow function lexically bind "this" so we do not need to do the work of binding "this" in emitted code - needToCaptureLexicalThis = !(compilerOptions.target >= ScriptTarget.ES6); + needToCaptureLexicalThis = (languageVersion < ScriptTarget.ES6); } switch (container.kind) { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index e889ecc8868..c33f7fd5234 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1487,7 +1487,6 @@ module ts { // targetSourceFile is when users only want one file in entire project to be emitted. This is used in compilerOnSave feature export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile?: SourceFile): EmitResult { - // var program = resolver.getProgram(); var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || ScriptTarget.ES3; var sourceMapDataList: SourceMapData[] = compilerOptions.sourceMap ? [] : undefined; @@ -3241,7 +3240,7 @@ module ts { } function shouldEmitAsArrowFunction(node: FunctionLikeDeclaration): boolean { - return node.kind === SyntaxKind.ArrowFunction && compilerOptions.target >= ScriptTarget.ES6; + return node.kind === SyntaxKind.ArrowFunction && languageVersion >= ScriptTarget.ES6; } function emitFunctionDeclaration(node: FunctionLikeDeclaration) { From a595a785c55ea416809c7523353db237ae469911 Mon Sep 17 00:00:00 2001 From: Yui T Date: Fri, 30 Jan 2015 18:11:11 -0800 Subject: [PATCH 145/211] Remove tabs in json --- src/compiler/diagnosticMessages.json | 3822 +++++++++++++------------- 1 file changed, 1911 insertions(+), 1911 deletions(-) diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 0d13e2f761c..a20f6adf649 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1,1916 +1,1916 @@ { - "Unterminated string literal.": { - "category": "Error", - "code": 1002 - }, - "Identifier expected.": { - "category": "Error", - "code": 1003 - }, - "'{0}' expected.": { - "category": "Error", - "code": 1005, - "isEarly": true - }, - "A file cannot have a reference to itself.": { - "category": "Error", - "code": 1006 - }, - "Trailing comma not allowed.": { - "category": "Error", - "code": 1009, - "isEarly": true - }, - "'*/' expected.": { - "category": "Error", - "code": 1010 - }, - "Unexpected token.": { - "category": "Error", - "code": 1012 - }, - "Catch clause parameter cannot have a type annotation.": { - "category": "Error", - "code": 1013, - "isEarly": true - }, - "A rest parameter must be last in a parameter list.": { - "category": "Error", - "code": 1014, - "isEarly": true - }, - "Parameter cannot have question mark and initializer.": { - "category": "Error", - "code": 1015, - "isEarly": true - }, - "A required parameter cannot follow an optional parameter.": { - "category": "Error", - "code": 1016, - "isEarly": true - }, - "An index signature cannot have a rest parameter.": { - "category": "Error", - "code": 1017, - "isEarly": true - }, - "An index signature parameter cannot have an accessibility modifier.": { - "category": "Error", - "code": 1018, - "isEarly": true - }, - "An index signature parameter cannot have a question mark.": { - "category": "Error", - "code": 1019, - "isEarly": true - }, - "An index signature parameter cannot have an initializer.": { - "category": "Error", - "code": 1020, - "isEarly": true - }, - "An index signature must have a type annotation.": { - "category": "Error", - "code": 1021, - "isEarly": true - }, - "An index signature parameter must have a type annotation.": { - "category": "Error", - "code": 1022, - "isEarly": true - }, - "An index signature parameter type must be 'string' or 'number'.": { - "category": "Error", - "code": 1023, - "isEarly": true - }, - "A class or interface declaration can only have one 'extends' clause.": { - "category": "Error", - "code": 1024 - }, - "An 'extends' clause must precede an 'implements' clause.": { - "category": "Error", - "code": 1025 - }, - "A class can only extend a single class.": { - "category": "Error", - "code": 1026 - }, - "A class declaration can only have one 'implements' clause.": { - "category": "Error", - "code": 1027 - }, - "Accessibility modifier already seen.": { - "category": "Error", - "code": 1028, - "isEarly": true - }, - "'{0}' modifier must precede '{1}' modifier.": { - "category": "Error", - "code": 1029, - "isEarly": true - }, - "'{0}' modifier already seen.": { - "category": "Error", - "code": 1030, - "isEarly": true - }, - "'{0}' modifier cannot appear on a class element.": { - "category": "Error", - "code": 1031, - "isEarly": true - }, - "An interface declaration cannot have an 'implements' clause.": { - "category": "Error", - "code": 1032 - }, - "'super' must be followed by an argument list or member access.": { - "category": "Error", - "code": 1034 - }, - "Only ambient modules can use quoted names.": { - "category": "Error", - "code": 1035, - "isEarly": true - }, - "Statements are not allowed in ambient contexts.": { - "category": "Error", - "code": 1036, - "isEarly": true - }, - "A 'declare' modifier cannot be used in an already ambient context.": { - "category": "Error", - "code": 1038, - "isEarly": true - }, - "Initializers are not allowed in ambient contexts.": { - "category": "Error", - "code": 1039, - "isEarly": true - }, - "'{0}' modifier cannot appear on a module element.": { - "category": "Error", - "code": 1044, - "isEarly": true - }, - "A 'declare' modifier cannot be used with an interface declaration.": { - "category": "Error", - "code": 1045, - "isEarly": true - }, - "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { - "category": "Error", - "code": 1046 - }, - "A rest parameter cannot be optional.": { - "category": "Error", - "code": 1047, - "isEarly": true - }, - "A rest parameter cannot have an initializer.": { - "category": "Error", - "code": 1048, - "isEarly": true - }, - "A 'set' accessor must have exactly one parameter.": { - "category": "Error", - "code": 1049, - "isEarly": true - }, - "A 'set' accessor cannot have an optional parameter.": { - "category": "Error", - "code": 1051, - "isEarly": true - }, - "A 'set' accessor parameter cannot have an initializer.": { - "category": "Error", - "code": 1052, - "isEarly": true - }, - "A 'set' accessor cannot have rest parameter.": { - "category": "Error", - "code": 1053, - "isEarly": true - }, - "A 'get' accessor cannot have parameters.": { - "category": "Error", - "code": 1054, - "isEarly": true - }, - "Accessors are only available when targeting ECMAScript 5 and higher.": { - "category": "Error", - "code": 1056, - "isEarly": true - }, - "Enum member must have initializer.": { - "category": "Error", - "code": 1061, - "isEarly": true - }, - "An export assignment cannot be used in an internal module.": { - "category": "Error", - "code": 1063, - "isEarly": true - }, - "Ambient enum elements can only have integer literal initializers.": { - "category": "Error", - "code": 1066, - "isEarly": true - }, - "Unexpected token. A constructor, method, accessor, or property was expected.": { - "category": "Error", - "code": 1068 - }, - "A 'declare' modifier cannot be used with an import declaration.": { - "category": "Error", - "code": 1079, - "isEarly": true - }, - "Invalid 'reference' directive syntax.": { - "category": "Error", - "code": 1084 - }, - "Octal literals are not available when targeting ECMAScript 5 and higher.": { - "category": "Error", - "code": 1085, - "isEarly": true - }, - "An accessor cannot be declared in an ambient context.": { - "category": "Error", - "code": 1086, - "isEarly": true - }, - "'{0}' modifier cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1089, - "isEarly": true - }, - "'{0}' modifier cannot appear on a parameter.": { - "category": "Error", - "code": 1090, - "isEarly": true - }, - "Only a single variable declaration is allowed in a 'for...in' statement.": { - "category": "Error", - "code": 1091, - "isEarly": true - }, - "Type parameters cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1092, - "isEarly": true - }, - "Type annotation cannot appear on a constructor declaration.": { - "category": "Error", - "code": 1093, - "isEarly": true - }, - "An accessor cannot have type parameters.": { - "category": "Error", - "code": 1094, - "isEarly": true - }, - "A 'set' accessor cannot have a return type annotation.": { - "category": "Error", - "code": 1095, - "isEarly": true - }, - "An index signature must have exactly one parameter.": { - "category": "Error", - "code": 1096, - "isEarly": true - }, - "'{0}' list cannot be empty.": { - "category": "Error", - "code": 1097, - "isEarly": true - }, - "Type parameter list cannot be empty.": { - "category": "Error", - "code": 1098, - "isEarly": true - }, - "Type argument list cannot be empty.": { - "category": "Error", - "code": 1099, - "isEarly": true - }, - "Invalid use of '{0}' in strict mode.": { - "category": "Error", - "code": 1100, - "isEarly": true - }, - "'with' statements are not allowed in strict mode.": { - "category": "Error", - "code": 1101, - "isEarly": true - }, - "'delete' cannot be called on an identifier in strict mode.": { - "category": "Error", - "code": 1102, - "isEarly": true - }, - "A 'continue' statement can only be used within an enclosing iteration statement.": { - "category": "Error", - "code": 1104, - "isEarly": true - }, - "A 'break' statement can only be used within an enclosing iteration or switch statement.": { - "category": "Error", - "code": 1105, - "isEarly": true - }, - "Jump target cannot cross function boundary.": { - "category": "Error", - "code": 1107, - "isEarly": true - }, - "A 'return' statement can only be used within a function body.": { - "category": "Error", - "code": 1108, - "isEarly": true - }, - "Expression expected.": { - "category": "Error", - "code": 1109, - "isEarly": true - }, - "Type expected.": { - "category": "Error", - "code": 1110, - "isEarly": true - }, - "A class member cannot be declared optional.": { - "category": "Error", - "code": 1112, - "isEarly": true - }, - "A 'default' clause cannot appear more than once in a 'switch' statement.": { - "category": "Error", - "code": 1113, - "isEarly": true - }, - "Duplicate label '{0}'": { - "category": "Error", - "code": 1114, - "isEarly": true - }, - "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { - "category": "Error", - "code": 1115, - "isEarly": true - }, - "A 'break' statement can only jump to a label of an enclosing statement.": { - "category": "Error", - "code": 1116, - "isEarly": true - }, - "An object literal cannot have multiple properties with the same name in strict mode.": { - "category": "Error", - "code": 1117, - "isEarly": true - }, - "An object literal cannot have multiple get/set accessors with the same name.": { - "category": "Error", - "code": 1118, - "isEarly": true - }, - "An object literal cannot have property and accessor with the same name.": { - "category": "Error", - "code": 1119, - "isEarly": true - }, - "An export assignment cannot have modifiers.": { - "category": "Error", - "code": 1120, - "isEarly": true - }, - "Octal literals are not allowed in strict mode.": { - "category": "Error", - "code": 1121, - "isEarly": true - }, - "A tuple type element list cannot be empty.": { - "category": "Error", - "code": 1122, - "isEarly": true - }, - "Variable declaration list cannot be empty.": { - "category": "Error", - "code": 1123, - "isEarly": true - }, - "Digit expected.": { - "category": "Error", - "code": 1124 - }, - "Hexadecimal digit expected.": { - "category": "Error", - "code": 1125 - }, - "Unexpected end of text.": { - "category": "Error", - "code": 1126 - }, - "Invalid character.": { - "category": "Error", - "code": 1127 - }, - "Declaration or statement expected.": { - "category": "Error", - "code": 1128 - }, - "Statement expected.": { - "category": "Error", - "code": 1129 - }, - "'case' or 'default' expected.": { - "category": "Error", - "code": 1130 - }, - "Property or signature expected.": { - "category": "Error", - "code": 1131 - }, - "Enum member expected.": { - "category": "Error", - "code": 1132 - }, - "Type reference expected.": { - "category": "Error", - "code": 1133 - }, - "Variable declaration expected.": { - "category": "Error", - "code": 1134 - }, - "Argument expression expected.": { - "category": "Error", - "code": 1135, - "isEarly": true - }, - "Property assignment expected.": { - "category": "Error", - "code": 1136 - }, - "Expression or comma expected.": { - "category": "Error", - "code": 1137 - }, - "Parameter declaration expected.": { - "category": "Error", - "code": 1138 - }, - "Type parameter declaration expected.": { - "category": "Error", - "code": 1139 - }, - "Type argument expected.": { - "category": "Error", - "code": 1140 - }, - "String literal expected.": { - "category": "Error", - "code": 1141, - "isEarly": true - }, - "Line break not permitted here.": { - "category": "Error", - "code": 1142, - "isEarly": true - }, - "'{' or ';' expected.": { - "category": "Error", - "code": 1144 - }, - "Modifiers not permitted on index signature members.": { - "category": "Error", - "code": 1145, - "isEarly": true - }, - "Declaration expected.": { - "category": "Error", - "code": 1146 - }, - "Import declarations in an internal module cannot reference an external module.": { - "category": "Error", - "code": 1147, - "isEarly": true - }, - "Cannot compile external modules unless the '--module' flag is provided.": { - "category": "Error", - "code": 1148 - }, - "Filename '{0}' differs from already included filename '{1}' only in casing": { - "category": "Error", - "code": 1149 - }, - "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { - "category": "Error", - "code": 1150, - "isEarly": true - }, - "'var', 'let' or 'const' expected.": { - "category": "Error", - "code": 1152 - }, - "'let' declarations are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1153, - "isEarly": true - }, - "'const' declarations are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1154, - "isEarly": true - }, - "'const' declarations must be initialized": { - "category": "Error", - "code": 1155, - "isEarly": true - }, - "'const' declarations can only be declared inside a block.": { - "category": "Error", - "code": 1156, - "isEarly": true - }, - "'let' declarations can only be declared inside a block.": { - "category": "Error", - "code": 1157, - "isEarly": true - }, - "Tagged templates are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1159, - "isEarly": true - }, - "Unterminated template literal.": { - "category": "Error", - "code": 1160 - }, - "Unterminated regular expression literal.": { - "category": "Error", - "code": 1161 - }, - "An object member cannot be declared optional.": { - "category": "Error", - "code": 1162, - "isEarly": true - }, - "'yield' expression must be contained_within a generator declaration.": { - "category": "Error", - "code": 1163, - "isEarly": true - }, - "Computed property names are not allowed in enums.": { - "category": "Error", - "code": 1164, - "isEarly": true - }, - "Computed property names are not allowed in an ambient context.": { - "category": "Error", - "code": 1165, - "isEarly": true - }, - "Computed property names are not allowed in class property declarations.": { - "category": "Error", - "code": 1166, - "isEarly": true - }, - "Computed property names are only available when targeting ECMAScript 6 and higher.": { - "category": "Error", - "code": 1167, - "isEarly": true - }, - "Computed property names are not allowed in method overloads.": { - "category": "Error", - "code": 1168, - "isEarly": true - }, - "Computed property names are not allowed in interfaces.": { - "category": "Error", - "code": 1169, - "isEarly": true - }, - "Computed property names are not allowed in type literals.": { - "category": "Error", - "code": 1170, - "isEarly": true - }, - "A comma expression is not allowed in a computed property name.": { - "category": "Error", - "code": 1171 - }, - "'extends' clause already seen.": { - "category": "Error", - "code": 1172, - "isEarly": true - }, - "'extends' clause must precede 'implements' clause.": { - "category": "Error", - "code": 1173, - "isEarly": true - }, - "Classes can only extend a single class.": { - "category": "Error", - "code": 1174, - "isEarly": true - }, - "'implements' clause already seen.": { - "category": "Error", - "code": 1175, - "isEarly": true - }, - "Interface declaration cannot have 'implements' clause.": { - "category": "Error", - "code": 1176, - "isEarly": true - }, - "Binary digit expected.": { - "category": "Error", - "code": 1177 - }, - "Octal digit expected.": { - "category": "Error", - "code": 1178 - }, - "Unexpected token. '{' expected.": { - "category": "Error", - "code": 1179 - }, - "Property destructuring pattern expected.": { - "category": "Error", - "code": 1180 - }, - "Array element destructuring pattern expected.": { - "category": "Error", - "code": 1181 - }, - "A destructuring declaration must have an initializer.": { - "category": "Error", - "code": 1182, - "isEarly": true - }, - "Destructuring declarations are not allowed in ambient contexts.": { - "category": "Error", - "code": 1183, - "isEarly": true - }, - "An implementation cannot be declared in ambient contexts.": { - "category": "Error", - "code": 1184, - "isEarly": true - }, - "Modifiers cannot appear here.": { - "category": "Error", - "code": 1184 - }, - "Merge conflict marker encountered.": { - "category": "Error", - "code": 1185 - }, - "A rest element cannot have an initializer.": { - "category": "Error", - "code": 1186 - }, - "A parameter property may not be a binding pattern.": { - "category": "Error", - "code": 1187 - }, + "Unterminated string literal.": { + "category": "Error", + "code": 1002 + }, + "Identifier expected.": { + "category": "Error", + "code": 1003 + }, + "'{0}' expected.": { + "category": "Error", + "code": 1005, + "isEarly": true + }, + "A file cannot have a reference to itself.": { + "category": "Error", + "code": 1006 + }, + "Trailing comma not allowed.": { + "category": "Error", + "code": 1009, + "isEarly": true + }, + "'*/' expected.": { + "category": "Error", + "code": 1010 + }, + "Unexpected token.": { + "category": "Error", + "code": 1012 + }, + "Catch clause parameter cannot have a type annotation.": { + "category": "Error", + "code": 1013, + "isEarly": true + }, + "A rest parameter must be last in a parameter list.": { + "category": "Error", + "code": 1014, + "isEarly": true + }, + "Parameter cannot have question mark and initializer.": { + "category": "Error", + "code": 1015, + "isEarly": true + }, + "A required parameter cannot follow an optional parameter.": { + "category": "Error", + "code": 1016, + "isEarly": true + }, + "An index signature cannot have a rest parameter.": { + "category": "Error", + "code": 1017, + "isEarly": true + }, + "An index signature parameter cannot have an accessibility modifier.": { + "category": "Error", + "code": 1018, + "isEarly": true + }, + "An index signature parameter cannot have a question mark.": { + "category": "Error", + "code": 1019, + "isEarly": true + }, + "An index signature parameter cannot have an initializer.": { + "category": "Error", + "code": 1020, + "isEarly": true + }, + "An index signature must have a type annotation.": { + "category": "Error", + "code": 1021, + "isEarly": true + }, + "An index signature parameter must have a type annotation.": { + "category": "Error", + "code": 1022, + "isEarly": true + }, + "An index signature parameter type must be 'string' or 'number'.": { + "category": "Error", + "code": 1023, + "isEarly": true + }, + "A class or interface declaration can only have one 'extends' clause.": { + "category": "Error", + "code": 1024 + }, + "An 'extends' clause must precede an 'implements' clause.": { + "category": "Error", + "code": 1025 + }, + "A class can only extend a single class.": { + "category": "Error", + "code": 1026 + }, + "A class declaration can only have one 'implements' clause.": { + "category": "Error", + "code": 1027 + }, + "Accessibility modifier already seen.": { + "category": "Error", + "code": 1028, + "isEarly": true + }, + "'{0}' modifier must precede '{1}' modifier.": { + "category": "Error", + "code": 1029, + "isEarly": true + }, + "'{0}' modifier already seen.": { + "category": "Error", + "code": 1030, + "isEarly": true + }, + "'{0}' modifier cannot appear on a class element.": { + "category": "Error", + "code": 1031, + "isEarly": true + }, + "An interface declaration cannot have an 'implements' clause.": { + "category": "Error", + "code": 1032 + }, + "'super' must be followed by an argument list or member access.": { + "category": "Error", + "code": 1034 + }, + "Only ambient modules can use quoted names.": { + "category": "Error", + "code": 1035, + "isEarly": true + }, + "Statements are not allowed in ambient contexts.": { + "category": "Error", + "code": 1036, + "isEarly": true + }, + "A 'declare' modifier cannot be used in an already ambient context.": { + "category": "Error", + "code": 1038, + "isEarly": true + }, + "Initializers are not allowed in ambient contexts.": { + "category": "Error", + "code": 1039, + "isEarly": true + }, + "'{0}' modifier cannot appear on a module element.": { + "category": "Error", + "code": 1044, + "isEarly": true + }, + "A 'declare' modifier cannot be used with an interface declaration.": { + "category": "Error", + "code": 1045, + "isEarly": true + }, + "A 'declare' modifier is required for a top level declaration in a .d.ts file.": { + "category": "Error", + "code": 1046 + }, + "A rest parameter cannot be optional.": { + "category": "Error", + "code": 1047, + "isEarly": true + }, + "A rest parameter cannot have an initializer.": { + "category": "Error", + "code": 1048, + "isEarly": true + }, + "A 'set' accessor must have exactly one parameter.": { + "category": "Error", + "code": 1049, + "isEarly": true + }, + "A 'set' accessor cannot have an optional parameter.": { + "category": "Error", + "code": 1051, + "isEarly": true + }, + "A 'set' accessor parameter cannot have an initializer.": { + "category": "Error", + "code": 1052, + "isEarly": true + }, + "A 'set' accessor cannot have rest parameter.": { + "category": "Error", + "code": 1053, + "isEarly": true + }, + "A 'get' accessor cannot have parameters.": { + "category": "Error", + "code": 1054, + "isEarly": true + }, + "Accessors are only available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 1056, + "isEarly": true + }, + "Enum member must have initializer.": { + "category": "Error", + "code": 1061, + "isEarly": true + }, + "An export assignment cannot be used in an internal module.": { + "category": "Error", + "code": 1063, + "isEarly": true + }, + "Ambient enum elements can only have integer literal initializers.": { + "category": "Error", + "code": 1066, + "isEarly": true + }, + "Unexpected token. A constructor, method, accessor, or property was expected.": { + "category": "Error", + "code": 1068 + }, + "A 'declare' modifier cannot be used with an import declaration.": { + "category": "Error", + "code": 1079, + "isEarly": true + }, + "Invalid 'reference' directive syntax.": { + "category": "Error", + "code": 1084 + }, + "Octal literals are not available when targeting ECMAScript 5 and higher.": { + "category": "Error", + "code": 1085, + "isEarly": true + }, + "An accessor cannot be declared in an ambient context.": { + "category": "Error", + "code": 1086, + "isEarly": true + }, + "'{0}' modifier cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1089, + "isEarly": true + }, + "'{0}' modifier cannot appear on a parameter.": { + "category": "Error", + "code": 1090, + "isEarly": true + }, + "Only a single variable declaration is allowed in a 'for...in' statement.": { + "category": "Error", + "code": 1091, + "isEarly": true + }, + "Type parameters cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1092, + "isEarly": true + }, + "Type annotation cannot appear on a constructor declaration.": { + "category": "Error", + "code": 1093, + "isEarly": true + }, + "An accessor cannot have type parameters.": { + "category": "Error", + "code": 1094, + "isEarly": true + }, + "A 'set' accessor cannot have a return type annotation.": { + "category": "Error", + "code": 1095, + "isEarly": true + }, + "An index signature must have exactly one parameter.": { + "category": "Error", + "code": 1096, + "isEarly": true + }, + "'{0}' list cannot be empty.": { + "category": "Error", + "code": 1097, + "isEarly": true + }, + "Type parameter list cannot be empty.": { + "category": "Error", + "code": 1098, + "isEarly": true + }, + "Type argument list cannot be empty.": { + "category": "Error", + "code": 1099, + "isEarly": true + }, + "Invalid use of '{0}' in strict mode.": { + "category": "Error", + "code": 1100, + "isEarly": true + }, + "'with' statements are not allowed in strict mode.": { + "category": "Error", + "code": 1101, + "isEarly": true + }, + "'delete' cannot be called on an identifier in strict mode.": { + "category": "Error", + "code": 1102, + "isEarly": true + }, + "A 'continue' statement can only be used within an enclosing iteration statement.": { + "category": "Error", + "code": 1104, + "isEarly": true + }, + "A 'break' statement can only be used within an enclosing iteration or switch statement.": { + "category": "Error", + "code": 1105, + "isEarly": true + }, + "Jump target cannot cross function boundary.": { + "category": "Error", + "code": 1107, + "isEarly": true + }, + "A 'return' statement can only be used within a function body.": { + "category": "Error", + "code": 1108, + "isEarly": true + }, + "Expression expected.": { + "category": "Error", + "code": 1109, + "isEarly": true + }, + "Type expected.": { + "category": "Error", + "code": 1110, + "isEarly": true + }, + "A class member cannot be declared optional.": { + "category": "Error", + "code": 1112, + "isEarly": true + }, + "A 'default' clause cannot appear more than once in a 'switch' statement.": { + "category": "Error", + "code": 1113, + "isEarly": true + }, + "Duplicate label '{0}'": { + "category": "Error", + "code": 1114, + "isEarly": true + }, + "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { + "category": "Error", + "code": 1115, + "isEarly": true + }, + "A 'break' statement can only jump to a label of an enclosing statement.": { + "category": "Error", + "code": 1116, + "isEarly": true + }, + "An object literal cannot have multiple properties with the same name in strict mode.": { + "category": "Error", + "code": 1117, + "isEarly": true + }, + "An object literal cannot have multiple get/set accessors with the same name.": { + "category": "Error", + "code": 1118, + "isEarly": true + }, + "An object literal cannot have property and accessor with the same name.": { + "category": "Error", + "code": 1119, + "isEarly": true + }, + "An export assignment cannot have modifiers.": { + "category": "Error", + "code": 1120, + "isEarly": true + }, + "Octal literals are not allowed in strict mode.": { + "category": "Error", + "code": 1121, + "isEarly": true + }, + "A tuple type element list cannot be empty.": { + "category": "Error", + "code": 1122, + "isEarly": true + }, + "Variable declaration list cannot be empty.": { + "category": "Error", + "code": 1123, + "isEarly": true + }, + "Digit expected.": { + "category": "Error", + "code": 1124 + }, + "Hexadecimal digit expected.": { + "category": "Error", + "code": 1125 + }, + "Unexpected end of text.": { + "category": "Error", + "code": 1126 + }, + "Invalid character.": { + "category": "Error", + "code": 1127 + }, + "Declaration or statement expected.": { + "category": "Error", + "code": 1128 + }, + "Statement expected.": { + "category": "Error", + "code": 1129 + }, + "'case' or 'default' expected.": { + "category": "Error", + "code": 1130 + }, + "Property or signature expected.": { + "category": "Error", + "code": 1131 + }, + "Enum member expected.": { + "category": "Error", + "code": 1132 + }, + "Type reference expected.": { + "category": "Error", + "code": 1133 + }, + "Variable declaration expected.": { + "category": "Error", + "code": 1134 + }, + "Argument expression expected.": { + "category": "Error", + "code": 1135, + "isEarly": true + }, + "Property assignment expected.": { + "category": "Error", + "code": 1136 + }, + "Expression or comma expected.": { + "category": "Error", + "code": 1137 + }, + "Parameter declaration expected.": { + "category": "Error", + "code": 1138 + }, + "Type parameter declaration expected.": { + "category": "Error", + "code": 1139 + }, + "Type argument expected.": { + "category": "Error", + "code": 1140 + }, + "String literal expected.": { + "category": "Error", + "code": 1141, + "isEarly": true + }, + "Line break not permitted here.": { + "category": "Error", + "code": 1142, + "isEarly": true + }, + "'{' or ';' expected.": { + "category": "Error", + "code": 1144 + }, + "Modifiers not permitted on index signature members.": { + "category": "Error", + "code": 1145, + "isEarly": true + }, + "Declaration expected.": { + "category": "Error", + "code": 1146 + }, + "Import declarations in an internal module cannot reference an external module.": { + "category": "Error", + "code": 1147, + "isEarly": true + }, + "Cannot compile external modules unless the '--module' flag is provided.": { + "category": "Error", + "code": 1148 + }, + "Filename '{0}' differs from already included filename '{1}' only in casing": { + "category": "Error", + "code": 1149 + }, + "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { + "category": "Error", + "code": 1150, + "isEarly": true + }, + "'var', 'let' or 'const' expected.": { + "category": "Error", + "code": 1152 + }, + "'let' declarations are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1153, + "isEarly": true + }, + "'const' declarations are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1154, + "isEarly": true + }, + "'const' declarations must be initialized": { + "category": "Error", + "code": 1155, + "isEarly": true + }, + "'const' declarations can only be declared inside a block.": { + "category": "Error", + "code": 1156, + "isEarly": true + }, + "'let' declarations can only be declared inside a block.": { + "category": "Error", + "code": 1157, + "isEarly": true + }, + "Tagged templates are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1159, + "isEarly": true + }, + "Unterminated template literal.": { + "category": "Error", + "code": 1160 + }, + "Unterminated regular expression literal.": { + "category": "Error", + "code": 1161 + }, + "An object member cannot be declared optional.": { + "category": "Error", + "code": 1162, + "isEarly": true + }, + "'yield' expression must be contained_within a generator declaration.": { + "category": "Error", + "code": 1163, + "isEarly": true + }, + "Computed property names are not allowed in enums.": { + "category": "Error", + "code": 1164, + "isEarly": true + }, + "Computed property names are not allowed in an ambient context.": { + "category": "Error", + "code": 1165, + "isEarly": true + }, + "Computed property names are not allowed in class property declarations.": { + "category": "Error", + "code": 1166, + "isEarly": true + }, + "Computed property names are only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 1167, + "isEarly": true + }, + "Computed property names are not allowed in method overloads.": { + "category": "Error", + "code": 1168, + "isEarly": true + }, + "Computed property names are not allowed in interfaces.": { + "category": "Error", + "code": 1169, + "isEarly": true + }, + "Computed property names are not allowed in type literals.": { + "category": "Error", + "code": 1170, + "isEarly": true + }, + "A comma expression is not allowed in a computed property name.": { + "category": "Error", + "code": 1171 + }, + "'extends' clause already seen.": { + "category": "Error", + "code": 1172, + "isEarly": true + }, + "'extends' clause must precede 'implements' clause.": { + "category": "Error", + "code": 1173, + "isEarly": true + }, + "Classes can only extend a single class.": { + "category": "Error", + "code": 1174, + "isEarly": true + }, + "'implements' clause already seen.": { + "category": "Error", + "code": 1175, + "isEarly": true + }, + "Interface declaration cannot have 'implements' clause.": { + "category": "Error", + "code": 1176, + "isEarly": true + }, + "Binary digit expected.": { + "category": "Error", + "code": 1177 + }, + "Octal digit expected.": { + "category": "Error", + "code": 1178 + }, + "Unexpected token. '{' expected.": { + "category": "Error", + "code": 1179 + }, + "Property destructuring pattern expected.": { + "category": "Error", + "code": 1180 + }, + "Array element destructuring pattern expected.": { + "category": "Error", + "code": 1181 + }, + "A destructuring declaration must have an initializer.": { + "category": "Error", + "code": 1182, + "isEarly": true + }, + "Destructuring declarations are not allowed in ambient contexts.": { + "category": "Error", + "code": 1183, + "isEarly": true + }, + "An implementation cannot be declared in ambient contexts.": { + "category": "Error", + "code": 1184, + "isEarly": true + }, + "Modifiers cannot appear here.": { + "category": "Error", + "code": 1184 + }, + "Merge conflict marker encountered.": { + "category": "Error", + "code": 1185 + }, + "A rest element cannot have an initializer.": { + "category": "Error", + "code": 1186 + }, + "A parameter property may not be a binding pattern.": { + "category": "Error", + "code": 1187 + }, - "Duplicate identifier '{0}'.": { - "category": "Error", - "code": 2300 - }, - "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { - "category": "Error", - "code": 2301 - }, - "Static members cannot reference class type parameters.": { - "category": "Error", - "code": 2302 - }, - "Circular definition of import alias '{0}'.": { - "category": "Error", - "code": 2303 - }, - "Cannot find name '{0}'.": { - "category": "Error", - "code": 2304 - }, - "Module '{0}' has no exported member '{1}'.": { - "category": "Error", - "code": 2305 - }, - "File '{0}' is not an external module.": { - "category": "Error", - "code": 2306 - }, - "Cannot find external module '{0}'.": { - "category": "Error", - "code": 2307 - }, - "A module cannot have more than one export assignment.": { - "category": "Error", - "code": 2308 - }, - "An export assignment cannot be used in a module with other exported elements.": { - "category": "Error", - "code": 2309 - }, - "Type '{0}' recursively references itself as a base type.": { - "category": "Error", - "code": 2310 - }, - "A class may only extend another class.": { - "category": "Error", - "code": 2311 - }, - "An interface may only extend a class or another interface.": { - "category": "Error", - "code": 2312 - }, - "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { - "category": "Error", - "code": 2313 - }, - "Generic type '{0}' requires {1} type argument(s).": { - "category": "Error", - "code": 2314 - }, - "Type '{0}' is not generic.": { - "category": "Error", - "code": 2315 - }, - "Global type '{0}' must be a class or interface type.": { - "category": "Error", - "code": 2316 - }, - "Global type '{0}' must have {1} type parameter(s).": { - "category": "Error", - "code": 2317 - }, - "Cannot find global type '{0}'.": { - "category": "Error", - "code": 2318 - }, - "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { - "category": "Error", - "code": 2319 - }, - "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.": { - "category": "Error", - "code": 2320 - }, - "Excessive stack depth comparing types '{0}' and '{1}'.": { - "category": "Error", - "code": 2321 - }, - "Type '{0}' is not assignable to type '{1}'.": { - "category": "Error", - "code": 2322 - }, - "Property '{0}' is missing in type '{1}'.": { - "category": "Error", - "code": 2324 - }, - "Property '{0}' is private in type '{1}' but not in type '{2}'.": { - "category": "Error", - "code": 2325 - }, - "Types of property '{0}' are incompatible.": { - "category": "Error", - "code": 2326 - }, - "Property '{0}' is optional in type '{1}' but required in type '{2}'.": { - "category": "Error", - "code": 2327 - }, - "Types of parameters '{0}' and '{1}' are incompatible.": { - "category": "Error", - "code": 2328 - }, - "Index signature is missing in type '{0}'.": { - "category": "Error", - "code": 2329 - }, - "Index signatures are incompatible.": { - "category": "Error", - "code": 2330 - }, - "'this' cannot be referenced in a module body.": { - "category": "Error", - "code": 2331 - }, - "'this' cannot be referenced in current location.": { - "category": "Error", - "code": 2332 - }, - "'this' cannot be referenced in constructor arguments.": { - "category": "Error", - "code": 2333 - }, - "'this' cannot be referenced in a static property initializer.": { - "category": "Error", - "code": 2334 - }, - "'super' can only be referenced in a derived class.": { - "category": "Error", - "code": 2335 - }, - "'super' cannot be referenced in constructor arguments.": { - "category": "Error", - "code": 2336 - }, - "Super calls are not permitted outside constructors or in nested functions inside constructors": { - "category": "Error", - "code": 2337 - }, - "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class": { - "category": "Error", - "code": 2338 - }, - "Property '{0}' does not exist on type '{1}'.": { - "category": "Error", - "code": 2339 - }, - "Only public and protected methods of the base class are accessible via the 'super' keyword": { - "category": "Error", - "code": 2340 - }, - "Property '{0}' is private and only accessible within class '{1}'.": { - "category": "Error", - "code": 2341 - }, - "An index expression argument must be of type 'string', 'number', or 'any'.": { - "category": "Error", - "code": 2342 - }, - "Type '{0}' does not satisfy the constraint '{1}'.": { - "category": "Error", - "code": 2344 - }, - "Argument of type '{0}' is not assignable to parameter of type '{1}'.": { - "category": "Error", - "code": 2345 - }, - "Supplied parameters do not match any signature of call target.": { - "category": "Error", - "code": 2346 - }, - "Untyped function calls may not accept type arguments.": { - "category": "Error", - "code": 2347 - }, - "Value of type '{0}' is not callable. Did you mean to include 'new'?": { - "category": "Error", - "code": 2348 - }, - "Cannot invoke an expression whose type lacks a call signature.": { - "category": "Error", - "code": 2349 - }, - "Only a void function can be called with the 'new' keyword.": { - "category": "Error", - "code": 2350 - }, - "Cannot use 'new' with an expression whose type lacks a call or construct signature.": { - "category": "Error", - "code": 2351 - }, - "Neither type '{0}' nor type '{1}' is assignable to the other.": { - "category": "Error", - "code": 2352 - }, - "No best common type exists among return expressions.": { - "category": "Error", - "code": 2354 - }, - "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.": { - "category": "Error", - "code": 2355 - }, - "An arithmetic operand must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2356 - }, - "The operand of an increment or decrement operator must be a variable, property or indexer.": { - "category": "Error", - "code": 2357 - }, - "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { - "category": "Error", - "code": 2358 - }, - "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { - "category": "Error", - "code": 2359 - }, - "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { - "category": "Error", - "code": 2360 - }, - "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter": { - "category": "Error", - "code": 2361 - }, - "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2362 - }, - "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { - "category": "Error", - "code": 2363 - }, - "Invalid left-hand side of assignment expression.": { - "category": "Error", - "code": 2364 - }, - "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { - "category": "Error", - "code": 2365 - }, - "Type parameter name cannot be '{0}'": { - "category": "Error", - "code": 2368 - }, - "A parameter property is only allowed in a constructor implementation.": { - "category": "Error", - "code": 2369 - }, - "A rest parameter must be of an array type.": { - "category": "Error", - "code": 2370 - }, - "A parameter initializer is only allowed in a function or constructor implementation.": { - "category": "Error", - "code": 2371 - }, - "Parameter '{0}' cannot be referenced in its initializer.": { - "category": "Error", - "code": 2372 - }, - "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { - "category": "Error", - "code": 2373 - }, - "Duplicate string index signature.": { - "category": "Error", - "code": 2374 - }, - "Duplicate number index signature.": { - "category": "Error", - "code": 2375 - }, - "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { - "category": "Error", - "code": 2376 - }, - "Constructors for derived classes must contain a 'super' call.": { - "category": "Error", - "code": 2377 - }, - "A 'get' accessor must return a value or consist of a single 'throw' statement.": { - "category": "Error", - "code": 2378 - }, - "Getter and setter accessors do not agree in visibility.": { - "category": "Error", - "code": 2379 - }, - "'get' and 'set' accessor must have the same type.": { - "category": "Error", - "code": 2380 - }, - "A signature with an implementation cannot use a string literal type.": { - "category": "Error", - "code": 2381 - }, - "Specialized overload signature is not assignable to any non-specialized signature.": { - "category": "Error", - "code": 2382 - }, - "Overload signatures must all be exported or not exported.": { - "category": "Error", - "code": 2383 - }, - "Overload signatures must all be ambient or non-ambient.": { - "category": "Error", - "code": 2384 - }, - "Overload signatures must all be public, private or protected.": { - "category": "Error", - "code": 2385 - }, - "Overload signatures must all be optional or required.": { - "category": "Error", - "code": 2386 - }, - "Function overload must be static.": { - "category": "Error", - "code": 2387 - }, - "Function overload must not be static.": { - "category": "Error", - "code": 2388 - }, - "Function implementation name must be '{0}'.": { - "category": "Error", - "code": 2389 - }, - "Constructor implementation is missing.": { - "category": "Error", - "code": 2390 - }, - "Function implementation is missing or not immediately following the declaration.": { - "category": "Error", - "code": 2391 - }, - "Multiple constructor implementations are not allowed.": { - "category": "Error", - "code": 2392 - }, - "Duplicate function implementation.": { - "category": "Error", - "code": 2393 - }, - "Overload signature is not compatible with function implementation.": { - "category": "Error", - "code": 2394 - }, - "Individual declarations in merged declaration {0} must be all exported or all local.": { - "category": "Error", - "code": 2395 - }, - "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { - "category": "Error", - "code": 2396 - }, - "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { - "category": "Error", - "code": 2399 - }, - "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { - "category": "Error", - "code": 2400 - }, - "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { - "category": "Error", - "code": 2401 - }, - "Expression resolves to '_super' that compiler uses to capture base class reference.": { - "category": "Error", - "code": 2402 - }, - "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { - "category": "Error", - "code": 2403 - }, - "The left-hand side of a 'for...in' statement cannot use a type annotation.": { - "category": "Error", - "code": 2404 - }, - "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.": { - "category": "Error", - "code": 2405 - }, - "Invalid left-hand side in 'for...in' statement.": { - "category": "Error", - "code": 2406 - }, - "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { - "category": "Error", - "code": 2407 - }, - "Setters cannot return a value.": { - "category": "Error", - "code": 2408 - }, - "Return type of constructor signature must be assignable to the instance type of the class": { - "category": "Error", - "code": 2409 - }, - "All symbols within a 'with' block will be resolved to 'any'.": { - "category": "Error", - "code": 2410 - }, - "Property '{0}' of type '{1}' is not assignable to string index type '{2}'.": { - "category": "Error", - "code": 2411 - }, - "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.": { - "category": "Error", - "code": 2412 - }, - "Numeric index type '{0}' is not assignable to string index type '{1}'.": { - "category": "Error", - "code": 2413 - }, - "Class name cannot be '{0}'": { - "category": "Error", - "code": 2414 - }, - "Class '{0}' incorrectly extends base class '{1}'.": { - "category": "Error", - "code": 2415 - }, - "Class static side '{0}' incorrectly extends base class static side '{1}'.": { - "category": "Error", - "code": 2417 - }, - "Type name '{0}' in extends clause does not reference constructor function for '{0}'.": { - "category": "Error", - "code": 2419 - }, - "Class '{0}' incorrectly implements interface '{1}'.": { - "category": "Error", - "code": 2420 - }, - "A class may only implement another class or interface.": { - "category": "Error", - "code": 2422 - }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { - "category": "Error", - "code": 2423 - }, - "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { - "category": "Error", - "code": 2424 - }, - "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { - "category": "Error", - "code": 2425 - }, - "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { - "category": "Error", - "code": 2426 - }, - "Interface name cannot be '{0}'": { - "category": "Error", - "code": 2427 - }, - "All declarations of an interface must have identical type parameters.": { - "category": "Error", - "code": 2428 - }, - "Interface '{0}' incorrectly extends interface '{1}'.": { - "category": "Error", - "code": 2430 - }, - "Enum name cannot be '{0}'": { - "category": "Error", - "code": 2431 - }, - "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.": { - "category": "Error", - "code": 2432 - }, - "A module declaration cannot be in a different file from a class or function with which it is merged": { - "category": "Error", - "code": 2433 - }, - "A module declaration cannot be located prior to a class or function with which it is merged": { - "category": "Error", - "code": 2434 - }, - "Ambient external modules cannot be nested in other modules.": { - "category": "Error", - "code": 2435 - }, - "Ambient external module declaration cannot specify relative module name.": { - "category": "Error", - "code": 2436 - }, - "Module '{0}' is hidden by a local declaration with the same name": { - "category": "Error", - "code": 2437 - }, - "Import name cannot be '{0}'": { - "category": "Error", - "code": 2438 - }, - "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { - "category": "Error", - "code": 2439 - }, - "Import declaration conflicts with local declaration of '{0}'": { - "category": "Error", - "code": 2440 - }, - "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { - "category": "Error", - "code": 2441 - }, - "Types have separate declarations of a private property '{0}'.": { - "category": "Error", - "code": 2442 - }, - "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.": { - "category": "Error", - "code": 2443 - }, - "Property '{0}' is protected in type '{1}' but public in type '{2}'.": { - "category": "Error", - "code": 2444 - }, - "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.": { - "category": "Error", - "code": 2445 - }, - "Property '{0}' is protected and only accessible through an instance of class '{1}'.": { - "category": "Error", - "code": 2446 - }, - "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.": { - "category": "Error", - "code": 2447 - }, - "Block-scoped variable '{0}' used before its declaration.": { - "category": "Error", - "code": 2448, - "isEarly": true - }, - "The operand of an increment or decrement operator cannot be a constant.": { - "category": "Error", - "code": 2449, - "isEarly": true - }, - "Left-hand side of assignment expression cannot be a constant.": { - "category": "Error", - "code": 2450, - "isEarly": true - }, - "Cannot redeclare block-scoped variable '{0}'.": { - "category": "Error", - "code": 2451, - "isEarly": true - }, - "An enum member cannot have a numeric name.": { - "category": "Error", - "code": 2452 - }, - "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.": { - "category": "Error", - "code": 2453 - }, - "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.": { - "category": "Error", - "code": 2455 - }, - "Type alias '{0}' circularly references itself.": { - "category": "Error", - "code": 2456 - }, - "Type alias name cannot be '{0}'": { - "category": "Error", - "code": 2457 - }, - "An AMD module cannot have multiple name assignments.": { - "category": "Error", - "code": 2458 - }, - "Type '{0}' has no property '{1}' and no string index signature.": { - "category": "Error", - "code": 2459 - }, - "Type '{0}' has no property '{1}'.": { - "category": "Error", - "code": 2460 - }, - "Type '{0}' is not an array type.": { - "category": "Error", - "code": 2461 - }, - "A rest element must be last in an array destructuring pattern": { - "category": "Error", - "code": 2462 - }, - "A binding pattern parameter cannot be optional in an implementation signature.": { - "category": "Error", - "code": 2463 - }, - "A computed property name must be of type 'string', 'number', or 'any'.": { - "category": "Error", - "code": 2464 - }, - "'this' cannot be referenced in a computed property name.": { - "category": "Error", - "code": 2465 - }, - "'super' cannot be referenced in a computed property name.": { - "category": "Error", - "code": 2466 - }, - "A computed property name cannot reference a type parameter from its containing type.": { - "category": "Error", - "code": 2466 - }, + "Duplicate identifier '{0}'.": { + "category": "Error", + "code": 2300 + }, + "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.": { + "category": "Error", + "code": 2301 + }, + "Static members cannot reference class type parameters.": { + "category": "Error", + "code": 2302 + }, + "Circular definition of import alias '{0}'.": { + "category": "Error", + "code": 2303 + }, + "Cannot find name '{0}'.": { + "category": "Error", + "code": 2304 + }, + "Module '{0}' has no exported member '{1}'.": { + "category": "Error", + "code": 2305 + }, + "File '{0}' is not an external module.": { + "category": "Error", + "code": 2306 + }, + "Cannot find external module '{0}'.": { + "category": "Error", + "code": 2307 + }, + "A module cannot have more than one export assignment.": { + "category": "Error", + "code": 2308 + }, + "An export assignment cannot be used in a module with other exported elements.": { + "category": "Error", + "code": 2309 + }, + "Type '{0}' recursively references itself as a base type.": { + "category": "Error", + "code": 2310 + }, + "A class may only extend another class.": { + "category": "Error", + "code": 2311 + }, + "An interface may only extend a class or another interface.": { + "category": "Error", + "code": 2312 + }, + "Constraint of a type parameter cannot reference any type parameter from the same type parameter list.": { + "category": "Error", + "code": 2313 + }, + "Generic type '{0}' requires {1} type argument(s).": { + "category": "Error", + "code": 2314 + }, + "Type '{0}' is not generic.": { + "category": "Error", + "code": 2315 + }, + "Global type '{0}' must be a class or interface type.": { + "category": "Error", + "code": 2316 + }, + "Global type '{0}' must have {1} type parameter(s).": { + "category": "Error", + "code": 2317 + }, + "Cannot find global type '{0}'.": { + "category": "Error", + "code": 2318 + }, + "Named properties '{0}' of types '{1}' and '{2}' are not identical.": { + "category": "Error", + "code": 2319 + }, + "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.": { + "category": "Error", + "code": 2320 + }, + "Excessive stack depth comparing types '{0}' and '{1}'.": { + "category": "Error", + "code": 2321 + }, + "Type '{0}' is not assignable to type '{1}'.": { + "category": "Error", + "code": 2322 + }, + "Property '{0}' is missing in type '{1}'.": { + "category": "Error", + "code": 2324 + }, + "Property '{0}' is private in type '{1}' but not in type '{2}'.": { + "category": "Error", + "code": 2325 + }, + "Types of property '{0}' are incompatible.": { + "category": "Error", + "code": 2326 + }, + "Property '{0}' is optional in type '{1}' but required in type '{2}'.": { + "category": "Error", + "code": 2327 + }, + "Types of parameters '{0}' and '{1}' are incompatible.": { + "category": "Error", + "code": 2328 + }, + "Index signature is missing in type '{0}'.": { + "category": "Error", + "code": 2329 + }, + "Index signatures are incompatible.": { + "category": "Error", + "code": 2330 + }, + "'this' cannot be referenced in a module body.": { + "category": "Error", + "code": 2331 + }, + "'this' cannot be referenced in current location.": { + "category": "Error", + "code": 2332 + }, + "'this' cannot be referenced in constructor arguments.": { + "category": "Error", + "code": 2333 + }, + "'this' cannot be referenced in a static property initializer.": { + "category": "Error", + "code": 2334 + }, + "'super' can only be referenced in a derived class.": { + "category": "Error", + "code": 2335 + }, + "'super' cannot be referenced in constructor arguments.": { + "category": "Error", + "code": 2336 + }, + "Super calls are not permitted outside constructors or in nested functions inside constructors": { + "category": "Error", + "code": 2337 + }, + "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class": { + "category": "Error", + "code": 2338 + }, + "Property '{0}' does not exist on type '{1}'.": { + "category": "Error", + "code": 2339 + }, + "Only public and protected methods of the base class are accessible via the 'super' keyword": { + "category": "Error", + "code": 2340 + }, + "Property '{0}' is private and only accessible within class '{1}'.": { + "category": "Error", + "code": 2341 + }, + "An index expression argument must be of type 'string', 'number', or 'any'.": { + "category": "Error", + "code": 2342 + }, + "Type '{0}' does not satisfy the constraint '{1}'.": { + "category": "Error", + "code": 2344 + }, + "Argument of type '{0}' is not assignable to parameter of type '{1}'.": { + "category": "Error", + "code": 2345 + }, + "Supplied parameters do not match any signature of call target.": { + "category": "Error", + "code": 2346 + }, + "Untyped function calls may not accept type arguments.": { + "category": "Error", + "code": 2347 + }, + "Value of type '{0}' is not callable. Did you mean to include 'new'?": { + "category": "Error", + "code": 2348 + }, + "Cannot invoke an expression whose type lacks a call signature.": { + "category": "Error", + "code": 2349 + }, + "Only a void function can be called with the 'new' keyword.": { + "category": "Error", + "code": 2350 + }, + "Cannot use 'new' with an expression whose type lacks a call or construct signature.": { + "category": "Error", + "code": 2351 + }, + "Neither type '{0}' nor type '{1}' is assignable to the other.": { + "category": "Error", + "code": 2352 + }, + "No best common type exists among return expressions.": { + "category": "Error", + "code": 2354 + }, + "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.": { + "category": "Error", + "code": 2355 + }, + "An arithmetic operand must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2356 + }, + "The operand of an increment or decrement operator must be a variable, property or indexer.": { + "category": "Error", + "code": 2357 + }, + "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": { + "category": "Error", + "code": 2358 + }, + "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": { + "category": "Error", + "code": 2359 + }, + "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'.": { + "category": "Error", + "code": 2360 + }, + "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter": { + "category": "Error", + "code": 2361 + }, + "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2362 + }, + "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.": { + "category": "Error", + "code": 2363 + }, + "Invalid left-hand side of assignment expression.": { + "category": "Error", + "code": 2364 + }, + "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": { + "category": "Error", + "code": 2365 + }, + "Type parameter name cannot be '{0}'": { + "category": "Error", + "code": 2368 + }, + "A parameter property is only allowed in a constructor implementation.": { + "category": "Error", + "code": 2369 + }, + "A rest parameter must be of an array type.": { + "category": "Error", + "code": 2370 + }, + "A parameter initializer is only allowed in a function or constructor implementation.": { + "category": "Error", + "code": 2371 + }, + "Parameter '{0}' cannot be referenced in its initializer.": { + "category": "Error", + "code": 2372 + }, + "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.": { + "category": "Error", + "code": 2373 + }, + "Duplicate string index signature.": { + "category": "Error", + "code": 2374 + }, + "Duplicate number index signature.": { + "category": "Error", + "code": 2375 + }, + "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.": { + "category": "Error", + "code": 2376 + }, + "Constructors for derived classes must contain a 'super' call.": { + "category": "Error", + "code": 2377 + }, + "A 'get' accessor must return a value or consist of a single 'throw' statement.": { + "category": "Error", + "code": 2378 + }, + "Getter and setter accessors do not agree in visibility.": { + "category": "Error", + "code": 2379 + }, + "'get' and 'set' accessor must have the same type.": { + "category": "Error", + "code": 2380 + }, + "A signature with an implementation cannot use a string literal type.": { + "category": "Error", + "code": 2381 + }, + "Specialized overload signature is not assignable to any non-specialized signature.": { + "category": "Error", + "code": 2382 + }, + "Overload signatures must all be exported or not exported.": { + "category": "Error", + "code": 2383 + }, + "Overload signatures must all be ambient or non-ambient.": { + "category": "Error", + "code": 2384 + }, + "Overload signatures must all be public, private or protected.": { + "category": "Error", + "code": 2385 + }, + "Overload signatures must all be optional or required.": { + "category": "Error", + "code": 2386 + }, + "Function overload must be static.": { + "category": "Error", + "code": 2387 + }, + "Function overload must not be static.": { + "category": "Error", + "code": 2388 + }, + "Function implementation name must be '{0}'.": { + "category": "Error", + "code": 2389 + }, + "Constructor implementation is missing.": { + "category": "Error", + "code": 2390 + }, + "Function implementation is missing or not immediately following the declaration.": { + "category": "Error", + "code": 2391 + }, + "Multiple constructor implementations are not allowed.": { + "category": "Error", + "code": 2392 + }, + "Duplicate function implementation.": { + "category": "Error", + "code": 2393 + }, + "Overload signature is not compatible with function implementation.": { + "category": "Error", + "code": 2394 + }, + "Individual declarations in merged declaration {0} must be all exported or all local.": { + "category": "Error", + "code": 2395 + }, + "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.": { + "category": "Error", + "code": 2396 + }, + "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { + "category": "Error", + "code": 2399 + }, + "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.": { + "category": "Error", + "code": 2400 + }, + "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.": { + "category": "Error", + "code": 2401 + }, + "Expression resolves to '_super' that compiler uses to capture base class reference.": { + "category": "Error", + "code": 2402 + }, + "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.": { + "category": "Error", + "code": 2403 + }, + "The left-hand side of a 'for...in' statement cannot use a type annotation.": { + "category": "Error", + "code": 2404 + }, + "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.": { + "category": "Error", + "code": 2405 + }, + "Invalid left-hand side in 'for...in' statement.": { + "category": "Error", + "code": 2406 + }, + "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.": { + "category": "Error", + "code": 2407 + }, + "Setters cannot return a value.": { + "category": "Error", + "code": 2408 + }, + "Return type of constructor signature must be assignable to the instance type of the class": { + "category": "Error", + "code": 2409 + }, + "All symbols within a 'with' block will be resolved to 'any'.": { + "category": "Error", + "code": 2410 + }, + "Property '{0}' of type '{1}' is not assignable to string index type '{2}'.": { + "category": "Error", + "code": 2411 + }, + "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.": { + "category": "Error", + "code": 2412 + }, + "Numeric index type '{0}' is not assignable to string index type '{1}'.": { + "category": "Error", + "code": 2413 + }, + "Class name cannot be '{0}'": { + "category": "Error", + "code": 2414 + }, + "Class '{0}' incorrectly extends base class '{1}'.": { + "category": "Error", + "code": 2415 + }, + "Class static side '{0}' incorrectly extends base class static side '{1}'.": { + "category": "Error", + "code": 2417 + }, + "Type name '{0}' in extends clause does not reference constructor function for '{0}'.": { + "category": "Error", + "code": 2419 + }, + "Class '{0}' incorrectly implements interface '{1}'.": { + "category": "Error", + "code": 2420 + }, + "A class may only implement another class or interface.": { + "category": "Error", + "code": 2422 + }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.": { + "category": "Error", + "code": 2423 + }, + "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": { + "category": "Error", + "code": 2424 + }, + "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2425 + }, + "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.": { + "category": "Error", + "code": 2426 + }, + "Interface name cannot be '{0}'": { + "category": "Error", + "code": 2427 + }, + "All declarations of an interface must have identical type parameters.": { + "category": "Error", + "code": 2428 + }, + "Interface '{0}' incorrectly extends interface '{1}'.": { + "category": "Error", + "code": 2430 + }, + "Enum name cannot be '{0}'": { + "category": "Error", + "code": 2431 + }, + "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.": { + "category": "Error", + "code": 2432 + }, + "A module declaration cannot be in a different file from a class or function with which it is merged": { + "category": "Error", + "code": 2433 + }, + "A module declaration cannot be located prior to a class or function with which it is merged": { + "category": "Error", + "code": 2434 + }, + "Ambient external modules cannot be nested in other modules.": { + "category": "Error", + "code": 2435 + }, + "Ambient external module declaration cannot specify relative module name.": { + "category": "Error", + "code": 2436 + }, + "Module '{0}' is hidden by a local declaration with the same name": { + "category": "Error", + "code": 2437 + }, + "Import name cannot be '{0}'": { + "category": "Error", + "code": 2438 + }, + "Import declaration in an ambient external module declaration cannot reference external module through relative external module name.": { + "category": "Error", + "code": 2439 + }, + "Import declaration conflicts with local declaration of '{0}'": { + "category": "Error", + "code": 2440 + }, + "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module.": { + "category": "Error", + "code": 2441 + }, + "Types have separate declarations of a private property '{0}'.": { + "category": "Error", + "code": 2442 + }, + "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.": { + "category": "Error", + "code": 2443 + }, + "Property '{0}' is protected in type '{1}' but public in type '{2}'.": { + "category": "Error", + "code": 2444 + }, + "Property '{0}' is protected and only accessible within class '{1}' and its subclasses.": { + "category": "Error", + "code": 2445 + }, + "Property '{0}' is protected and only accessible through an instance of class '{1}'.": { + "category": "Error", + "code": 2446 + }, + "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.": { + "category": "Error", + "code": 2447 + }, + "Block-scoped variable '{0}' used before its declaration.": { + "category": "Error", + "code": 2448, + "isEarly": true + }, + "The operand of an increment or decrement operator cannot be a constant.": { + "category": "Error", + "code": 2449, + "isEarly": true + }, + "Left-hand side of assignment expression cannot be a constant.": { + "category": "Error", + "code": 2450, + "isEarly": true + }, + "Cannot redeclare block-scoped variable '{0}'.": { + "category": "Error", + "code": 2451, + "isEarly": true + }, + "An enum member cannot have a numeric name.": { + "category": "Error", + "code": 2452 + }, + "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.": { + "category": "Error", + "code": 2453 + }, + "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.": { + "category": "Error", + "code": 2455 + }, + "Type alias '{0}' circularly references itself.": { + "category": "Error", + "code": 2456 + }, + "Type alias name cannot be '{0}'": { + "category": "Error", + "code": 2457 + }, + "An AMD module cannot have multiple name assignments.": { + "category": "Error", + "code": 2458 + }, + "Type '{0}' has no property '{1}' and no string index signature.": { + "category": "Error", + "code": 2459 + }, + "Type '{0}' has no property '{1}'.": { + "category": "Error", + "code": 2460 + }, + "Type '{0}' is not an array type.": { + "category": "Error", + "code": 2461 + }, + "A rest element must be last in an array destructuring pattern": { + "category": "Error", + "code": 2462 + }, + "A binding pattern parameter cannot be optional in an implementation signature.": { + "category": "Error", + "code": 2463 + }, + "A computed property name must be of type 'string', 'number', or 'any'.": { + "category": "Error", + "code": 2464 + }, + "'this' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2465 + }, + "'super' cannot be referenced in a computed property name.": { + "category": "Error", + "code": 2466 + }, + "A computed property name cannot reference a type parameter from its containing type.": { + "category": "Error", + "code": 2466 + }, - "Import declaration '{0}' is using private name '{1}'.": { - "category": "Error", - "code": 4000 - }, - "Type parameter '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4002 - }, - "Type parameter '{0}' of exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4004 - }, - "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4006 - }, - "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4008 - }, - "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4010 - }, - "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4012 - }, - "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4014 - }, - "Type parameter '{0}' of exported function has or is using private name '{1}'.": { - "category": "Error", - "code": 4016 - }, - "Implements clause of exported class '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4019 - }, - "Extends clause of exported class '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4020 - }, - "Extends clause of exported interface '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4022 - }, - "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4023 - }, - "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4024 - }, - "Exported variable '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4025 - }, - "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4026 - }, - "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4027 - }, - "Public static property '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4028 - }, - "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4029 - }, - "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4030 - }, - "Public property '{0}' of exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4031 - }, - "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4032 - }, - "Property '{0}' of exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4033 - }, - "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4034 - }, - "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4035 - }, - "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4036 - }, - "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4037 - }, - "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4038 - }, - "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4039 - }, - "Return type of public static property getter from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4040 - }, - "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4041 - }, - "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4042 - }, - "Return type of public property getter from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4043 - }, - "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4044 - }, - "Return type of constructor signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4045 - }, - "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4046 - }, - "Return type of call signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4047 - }, - "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4048 - }, - "Return type of index signature from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4049 - }, - "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4050 - }, - "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4051 - }, - "Return type of public static method from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4052 - }, - "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4053 - }, - "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4054 - }, - "Return type of public method from exported class has or is using private name '{0}'.": { - "category": "Error", - "code": 4055 - }, - "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4056 - }, - "Return type of method from exported interface has or is using private name '{0}'.": { - "category": "Error", - "code": 4057 - }, - "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.": { - "category": "Error", - "code": 4058 - }, - "Return type of exported function has or is using name '{0}' from private module '{1}'.": { - "category": "Error", - "code": 4059 - }, - "Return type of exported function has or is using private name '{0}'.": { - "category": "Error", - "code": 4060 - }, - "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4061 - }, - "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4062 - }, - "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4063 - }, - "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4064 - }, - "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4065 - }, - "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4066 - }, - "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4067 - }, - "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4068 - }, - "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4069 - }, - "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4070 - }, - "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4071 - }, - "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4072 - }, - "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { - "category": "Error", - "code": 4073 - }, - "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4074 - }, - "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { - "category": "Error", - "code": 4075 - }, - "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.": { - "category": "Error", - "code": 4076 - }, - "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { - "category": "Error", - "code": 4077 - }, - "Parameter '{0}' of exported function has or is using private name '{1}'.": { - "category": "Error", - "code": 4078 - }, - "Exported type alias '{0}' has or is using private name '{1}'.": { - "category": "Error", - "code": 4081 - }, - "Enum declarations must all be const or non-const.": { - "category": "Error", - "code": 4082 - }, - "In 'const' enum declarations member initializer must be constant expression.": { - "category": "Error", - "code": 4083, - "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.": { - "category": "Error", - "code": 4084 - }, - "A const enum member can only be accessed using a string literal.": { - "category": "Error", - "code": 4085, - "isEarly": true - }, - "'const' enum member initializer was evaluated to a non-finite value.": { - "category": "Error", - "code": 4086 - }, - "'const' enum member initializer was evaluated to disallowed value 'NaN'.": { - "category": "Error", - "code": 4087 - }, - "Property '{0}' does not exist on 'const' enum '{1}'.": { - "category": "Error", - "code": 4088, - "isEarly": true - }, - "The current host does not support the '{0}' option.": { - "category": "Error", - "code": 5001 - }, - "Cannot find the common subdirectory path for the input files.": { - "category": "Error", - "code": 5009 - }, - "Cannot read file '{0}': {1}": { - "category": "Error", - "code": 5012 - }, - "Unsupported file encoding.": { - "category": "Error", - "code": 5013 - }, - "Unknown compiler option '{0}'.": { - "category": "Error", - "code": 5023 - }, - "Compiler option '{0}' requires a value of type {1}.": { - "category": "Error", - "code": 5024 - }, - "Could not write file '{0}': {1}": { - "category": "Error", - "code": 5033 - }, - "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option.": { - "category": "Error", - "code": 5038 - }, - "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option.": { - "category": "Error", - "code": 5039 - }, - "Option 'noEmit' cannot be specified with option 'out' or 'outDir'.": { - "category": "Error", - "code": 5040 - }, - "Option 'noEmit' cannot be specified with option 'declaration'.": { - "category": "Error", - "code": 5041 - }, - "Option 'project' cannot be mixed with source files on a command line.": { - "category": "Error", - "code": 5042 - }, - "Concatenate and emit output to single file.": { - "category": "Message", - "code": 6001 - }, - "Generates corresponding '.d.ts' file.": { - "category": "Message", - "code": 6002 - }, - "Specifies the location where debugger should locate map files instead of generated locations.": { - "category": "Message", - "code": 6003 - }, - "Specifies the location where debugger should locate TypeScript files instead of source locations.": { - "category": "Message", - "code": 6004 - }, - "Watch input files.": { - "category": "Message", - "code": 6005 - }, - "Redirect output structure to the directory.": { - "category": "Message", - "code": 6006 - }, - "Do not erase const enum declarations in generated code.": { - "category": "Message", - "code": 6007 - }, - "Do not emit outputs if any type checking errors were reported.": { - "category": "Message", - "code": 6008 - }, - "Do not emit comments to output.": { - "category": "Message", - "code": 6009 - }, - "Do not emit outputs.": { - "category": "Message", - "code": 6010 - }, - "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)": { - "category": "Message", - "code": 6015 - }, - "Specify module code generation: 'commonjs' or 'amd'": { - "category": "Message", - "code": 6016 - }, - "Print this message.": { - "category": "Message", - "code": 6017 - }, - "Print the compiler's version.": { - "category": "Message", - "code": 6019 - }, - "Compile the project in the given directory.": { - "category": "Message", - "code": 6020 - }, - "Syntax: {0}": { - "category": "Message", - "code": 6023 - }, - "options": { - "category": "Message", - "code": 6024 - }, - "file": { - "category": "Message", - "code": 6025 - }, - "Examples: {0}": { - "category": "Message", - "code": 6026 - }, - "Options:": { - "category": "Message", - "code": 6027 - }, - "Version {0}": { - "category": "Message", - "code": 6029 - }, - "Insert command line options and files from a file.": { - "category": "Message", - "code": 6030 - }, - "File change detected. Starting incremental compilation...": { - "category": "Message", - "code": 6032 - }, - "KIND": { - "category": "Message", - "code": 6034 - }, - "FILE": { - "category": "Message", - "code": 6035 - }, - "VERSION": { - "category": "Message", - "code": 6036 - }, - "LOCATION": { - "category": "Message", - "code": 6037 - }, - "DIRECTORY": { - "category": "Message", - "code": 6038 - }, - "Compilation complete. Watching for file changes.": { - "category": "Message", - "code": 6042 - }, - "Generates corresponding '.map' file.": { - "category": "Message", - "code": 6043 - }, - "Compiler option '{0}' expects an argument.": { - "category": "Error", - "code": 6044 - }, - "Unterminated quoted string in response file '{0}'.": { - "category": "Error", - "code": 6045 - }, - "Argument for '--module' option must be 'commonjs' or 'amd'.": { - "category": "Error", - "code": 6046 - }, - "Argument for '--target' option must be 'es3', 'es5', or 'es6'.": { - "category": "Error", - "code": 6047 - }, - "Locale must be of the form or -. For example '{0}' or '{1}'.": { - "category": "Error", - "code": 6048 - }, - "Unsupported locale '{0}'.": { - "category": "Error", - "code": 6049 - }, - "Unable to open file '{0}'.": { - "category": "Error", - "code": 6050 - }, - "Corrupted locale file {0}.": { - "category": "Error", - "code": 6051 - }, - "Raise error on expressions and declarations with an implied 'any' type.": { - "category": "Message", - "code": 6052 - }, - "File '{0}' not found.": { - "category": "Error", - "code": 6053 - }, - "File '{0}' must have extension '.ts' or '.d.ts'.": { - "category": "Error", - "code": 6054 - }, - "Suppress noImplicitAny errors for indexing objects lacking index signatures.": { - "category": "Message", - "code": 6055 - }, + "Import declaration '{0}' is using private name '{1}'.": { + "category": "Error", + "code": 4000 + }, + "Type parameter '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4002 + }, + "Type parameter '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4004 + }, + "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4006 + }, + "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4008 + }, + "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4010 + }, + "Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4012 + }, + "Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4014 + }, + "Type parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4016 + }, + "Implements clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4019 + }, + "Extends clause of exported class '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4020 + }, + "Extends clause of exported interface '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4022 + }, + "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4023 + }, + "Exported variable '{0}' has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4024 + }, + "Exported variable '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4025 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4026 + }, + "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4027 + }, + "Public static property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4028 + }, + "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4029 + }, + "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4030 + }, + "Public property '{0}' of exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4031 + }, + "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4032 + }, + "Property '{0}' of exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4033 + }, + "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4034 + }, + "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4035 + }, + "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4036 + }, + "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4037 + }, + "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4038 + }, + "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4039 + }, + "Return type of public static property getter from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4040 + }, + "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4041 + }, + "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4042 + }, + "Return type of public property getter from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4043 + }, + "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4044 + }, + "Return type of constructor signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4045 + }, + "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4046 + }, + "Return type of call signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4047 + }, + "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4048 + }, + "Return type of index signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4049 + }, + "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4050 + }, + "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4051 + }, + "Return type of public static method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4052 + }, + "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4053 + }, + "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4054 + }, + "Return type of public method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 4055 + }, + "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4056 + }, + "Return type of method from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 4057 + }, + "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.": { + "category": "Error", + "code": 4058 + }, + "Return type of exported function has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 4059 + }, + "Return type of exported function has or is using private name '{0}'.": { + "category": "Error", + "code": 4060 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4061 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4062 + }, + "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4063 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4064 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4065 + }, + "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4066 + }, + "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4067 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4068 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4069 + }, + "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4070 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4071 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4072 + }, + "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 4073 + }, + "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4074 + }, + "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 4075 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.": { + "category": "Error", + "code": 4076 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 4077 + }, + "Parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 4078 + }, + "Exported type alias '{0}' has or is using private name '{1}'.": { + "category": "Error", + "code": 4081 + }, + "Enum declarations must all be const or non-const.": { + "category": "Error", + "code": 4082 + }, + "In 'const' enum declarations member initializer must be constant expression.": { + "category": "Error", + "code": 4083, + "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.": { + "category": "Error", + "code": 4084 + }, + "A const enum member can only be accessed using a string literal.": { + "category": "Error", + "code": 4085, + "isEarly": true + }, + "'const' enum member initializer was evaluated to a non-finite value.": { + "category": "Error", + "code": 4086 + }, + "'const' enum member initializer was evaluated to disallowed value 'NaN'.": { + "category": "Error", + "code": 4087 + }, + "Property '{0}' does not exist on 'const' enum '{1}'.": { + "category": "Error", + "code": 4088, + "isEarly": true + }, + "The current host does not support the '{0}' option.": { + "category": "Error", + "code": 5001 + }, + "Cannot find the common subdirectory path for the input files.": { + "category": "Error", + "code": 5009 + }, + "Cannot read file '{0}': {1}": { + "category": "Error", + "code": 5012 + }, + "Unsupported file encoding.": { + "category": "Error", + "code": 5013 + }, + "Unknown compiler option '{0}'.": { + "category": "Error", + "code": 5023 + }, + "Compiler option '{0}' requires a value of type {1}.": { + "category": "Error", + "code": 5024 + }, + "Could not write file '{0}': {1}": { + "category": "Error", + "code": 5033 + }, + "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option.": { + "category": "Error", + "code": 5038 + }, + "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option.": { + "category": "Error", + "code": 5039 + }, + "Option 'noEmit' cannot be specified with option 'out' or 'outDir'.": { + "category": "Error", + "code": 5040 + }, + "Option 'noEmit' cannot be specified with option 'declaration'.": { + "category": "Error", + "code": 5041 + }, + "Option 'project' cannot be mixed with source files on a command line.": { + "category": "Error", + "code": 5042 + }, + "Concatenate and emit output to single file.": { + "category": "Message", + "code": 6001 + }, + "Generates corresponding '.d.ts' file.": { + "category": "Message", + "code": 6002 + }, + "Specifies the location where debugger should locate map files instead of generated locations.": { + "category": "Message", + "code": 6003 + }, + "Specifies the location where debugger should locate TypeScript files instead of source locations.": { + "category": "Message", + "code": 6004 + }, + "Watch input files.": { + "category": "Message", + "code": 6005 + }, + "Redirect output structure to the directory.": { + "category": "Message", + "code": 6006 + }, + "Do not erase const enum declarations in generated code.": { + "category": "Message", + "code": 6007 + }, + "Do not emit outputs if any type checking errors were reported.": { + "category": "Message", + "code": 6008 + }, + "Do not emit comments to output.": { + "category": "Message", + "code": 6009 + }, + "Do not emit outputs.": { + "category": "Message", + "code": 6010 + }, + "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)": { + "category": "Message", + "code": 6015 + }, + "Specify module code generation: 'commonjs' or 'amd'": { + "category": "Message", + "code": 6016 + }, + "Print this message.": { + "category": "Message", + "code": 6017 + }, + "Print the compiler's version.": { + "category": "Message", + "code": 6019 + }, + "Compile the project in the given directory.": { + "category": "Message", + "code": 6020 + }, + "Syntax: {0}": { + "category": "Message", + "code": 6023 + }, + "options": { + "category": "Message", + "code": 6024 + }, + "file": { + "category": "Message", + "code": 6025 + }, + "Examples: {0}": { + "category": "Message", + "code": 6026 + }, + "Options:": { + "category": "Message", + "code": 6027 + }, + "Version {0}": { + "category": "Message", + "code": 6029 + }, + "Insert command line options and files from a file.": { + "category": "Message", + "code": 6030 + }, + "File change detected. Starting incremental compilation...": { + "category": "Message", + "code": 6032 + }, + "KIND": { + "category": "Message", + "code": 6034 + }, + "FILE": { + "category": "Message", + "code": 6035 + }, + "VERSION": { + "category": "Message", + "code": 6036 + }, + "LOCATION": { + "category": "Message", + "code": 6037 + }, + "DIRECTORY": { + "category": "Message", + "code": 6038 + }, + "Compilation complete. Watching for file changes.": { + "category": "Message", + "code": 6042 + }, + "Generates corresponding '.map' file.": { + "category": "Message", + "code": 6043 + }, + "Compiler option '{0}' expects an argument.": { + "category": "Error", + "code": 6044 + }, + "Unterminated quoted string in response file '{0}'.": { + "category": "Error", + "code": 6045 + }, + "Argument for '--module' option must be 'commonjs' or 'amd'.": { + "category": "Error", + "code": 6046 + }, + "Argument for '--target' option must be 'es3', 'es5', or 'es6'.": { + "category": "Error", + "code": 6047 + }, + "Locale must be of the form or -. For example '{0}' or '{1}'.": { + "category": "Error", + "code": 6048 + }, + "Unsupported locale '{0}'.": { + "category": "Error", + "code": 6049 + }, + "Unable to open file '{0}'.": { + "category": "Error", + "code": 6050 + }, + "Corrupted locale file {0}.": { + "category": "Error", + "code": 6051 + }, + "Raise error on expressions and declarations with an implied 'any' type.": { + "category": "Message", + "code": 6052 + }, + "File '{0}' not found.": { + "category": "Error", + "code": 6053 + }, + "File '{0}' must have extension '.ts' or '.d.ts'.": { + "category": "Error", + "code": 6054 + }, + "Suppress noImplicitAny errors for indexing objects lacking index signatures.": { + "category": "Message", + "code": 6055 + }, - "Variable '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7005 - }, - "Parameter '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7006 - }, - "Member '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7008 - }, - "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.": { - "category": "Error", - "code": 7009 - }, - "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.": { - "category": "Error", - "code": 7010 - }, - "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.": { - "category": "Error", - "code": 7011 - }, - "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.": { - "category": "Error", - "code": 7013 - }, - "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation.": { - "category": "Error", - "code": 7016 - }, - "Index signature of object type implicitly has an 'any' type.": { - "category": "Error", - "code": 7017 - }, - "Object literal's property '{0}' implicitly has an '{1}' type.": { - "category": "Error", - "code": 7018 - }, - "Rest parameter '{0}' implicitly has an 'any[]' type.": { - "category": "Error", - "code": 7019 - }, - "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.": { - "category": "Error", - "code": 7020 - }, - "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation.": { - "category": "Error", - "code": 7021 - }, - "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer.": { - "category": "Error", - "code": 7022 - }, - "'{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.": { - "category": "Error", - "code": 7023 - }, - "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.": { - "category": "Error", - "code": 7024 - }, - "You cannot rename this element.": { - "category": "Error", - "code": 8000 - }, - "'yield' expressions are not currently supported.": { - "category": "Error", - "code": 9000, - "isEarly": true - }, - "Generators are not currently supported.": { - "category": "Error", - "code": 9001, - "isEarly": true - }, - "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression.": { - "category": "Error", - "code": 9002 - } + "Variable '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7005 + }, + "Parameter '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7006 + }, + "Member '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7008 + }, + "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.": { + "category": "Error", + "code": 7009 + }, + "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.": { + "category": "Error", + "code": 7010 + }, + "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.": { + "category": "Error", + "code": 7011 + }, + "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7013 + }, + "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation.": { + "category": "Error", + "code": 7016 + }, + "Index signature of object type implicitly has an 'any' type.": { + "category": "Error", + "code": 7017 + }, + "Object literal's property '{0}' implicitly has an '{1}' type.": { + "category": "Error", + "code": 7018 + }, + "Rest parameter '{0}' implicitly has an 'any[]' type.": { + "category": "Error", + "code": 7019 + }, + "Call signature, which lacks return-type annotation, implicitly has an 'any' return type.": { + "category": "Error", + "code": 7020 + }, + "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation.": { + "category": "Error", + "code": 7021 + }, + "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer.": { + "category": "Error", + "code": 7022 + }, + "'{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.": { + "category": "Error", + "code": 7023 + }, + "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.": { + "category": "Error", + "code": 7024 + }, + "You cannot rename this element.": { + "category": "Error", + "code": 8000 + }, + "'yield' expressions are not currently supported.": { + "category": "Error", + "code": 9000, + "isEarly": true + }, + "Generators are not currently supported.": { + "category": "Error", + "code": 9001, + "isEarly": true + }, + "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression.": { + "category": "Error", + "code": 9002 + } } From 732ebf2aeb59e25307986014a55e63281b1415f1 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 30 Jan 2015 18:20:26 -0800 Subject: [PATCH 146/211] fix crash in getReturnTypeFromFunctionBody if function declaration is incomplete and does not have body --- src/compiler/checker.ts | 3 +++ .../fourslash/errorInIncompleteMethodInObjectLiteral.ts | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 tests/cases/fourslash/errorInIncompleteMethodInObjectLiteral.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ed89032b781..00b637301c8 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6525,6 +6525,9 @@ module ts { function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); + if (!func.body) { + return unknownType; + } if (func.body.kind !== SyntaxKind.Block) { var type = checkExpressionCached(func.body, contextualMapper); } diff --git a/tests/cases/fourslash/errorInIncompleteMethodInObjectLiteral.ts b/tests/cases/fourslash/errorInIncompleteMethodInObjectLiteral.ts new file mode 100644 index 00000000000..bd498acec5f --- /dev/null +++ b/tests/cases/fourslash/errorInIncompleteMethodInObjectLiteral.ts @@ -0,0 +1,5 @@ +/// + +//// var x: { f(): string } = { f( } + +verify.numberOfErrorsInCurrentFile(1); \ No newline at end of file From 0ce51e684f8ba4134e8fbdbdc4dcb82c27e51af8 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 30 Jan 2015 18:22:12 -0800 Subject: [PATCH 147/211] Fix #1871 by ensuring the at we get the canonical filename before we check the extension --- src/compiler/program.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 9b52b8dc9ca..ecd8fd71f88 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -176,7 +176,7 @@ module ts { } var diagnostic: DiagnosticMessage; if (hasExtension(filename)) { - if (!options.allowNonTsExtensions && !fileExtensionIs(filename, ".ts")) { + if (!options.allowNonTsExtensions && !fileExtensionIs(host.getCanonicalFileName(filename), ".ts")) { diagnostic = Diagnostics.File_0_must_have_extension_ts_or_d_ts; } else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { From 79a1457491accaac95f3c635f91f3849b697b442 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 30 Jan 2015 18:28:15 -0800 Subject: [PATCH 148/211] Ensure that all LS requests are to an exiting soruceFile, and if we fail throw an exception --- src/services/services.ts | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index ee92613c23a..978bc2ad36b 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1997,8 +1997,12 @@ module ts { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); } - function getSourceFile(filename: string): SourceFile { - return program.getSourceFile(getCanonicalFileName(filename)); + function getValidSourceFile(filename: string): SourceFile { + var sourceFile = program.getSourceFile(getCanonicalFileName(filename)); + if (!sourceFile) { + throw new Error("Could not find file: '" + filename + "'."); + } + return sourceFile; } function getDiagnosticsProducingTypeChecker() { @@ -2149,7 +2153,7 @@ module ts { filename = normalizeSlashes(filename); - return program.getDiagnostics(getSourceFile(filename)); + return program.getDiagnostics(getValidSourceFile(filename)); } /** @@ -2162,7 +2166,7 @@ module ts { filename = normalizeSlashes(filename) var compilerOptions = program.getCompilerOptions(); var checker = getDiagnosticsProducingTypeChecker(); - var targetSourceFile = getSourceFile(filename); + var targetSourceFile = getValidSourceFile(filename); // Only perform the action per file regardless of '-out' flag as LanguageServiceHost is expected to call this function per file. // Therefore only get diagnostics for given file. @@ -2239,7 +2243,7 @@ module ts { filename = normalizeSlashes(filename); var syntacticStart = new Date().getTime(); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); var start = new Date().getTime(); var currentToken = getTokenAtPosition(sourceFile, position); @@ -2565,7 +2569,7 @@ module ts { // in the getCompletionsAtPosition earlier filename = normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); var session = activeCompletionSession; @@ -2583,7 +2587,7 @@ module ts { // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getSourceFile(filename), location, session.typeChecker, location, SemanticMeaning.All); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(filename), location, session.typeChecker, location, SemanticMeaning.All); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -3084,7 +3088,7 @@ module ts { synchronizeHostData(); fileName = normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; @@ -3130,7 +3134,7 @@ module ts { synchronizeHostData(); filename = normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); var node = getTouchingPropertyName(sourceFile, position); if (!node) { @@ -3266,7 +3270,7 @@ module ts { synchronizeHostData(); filename = normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); var node = getTouchingWord(sourceFile, position); if (!node) { @@ -3811,7 +3815,7 @@ module ts { synchronizeHostData(); fileName = normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = getTouchingPropertyName(sourceFile, position); if (!node) { @@ -4634,7 +4638,7 @@ module ts { synchronizeHostData(); filename = normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); var outputFiles: OutputFile[] = []; @@ -4783,7 +4787,7 @@ module ts { synchronizeHostData(); fileName = normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); return SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); } @@ -4866,7 +4870,7 @@ module ts { synchronizeHostData(); fileName = normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var result: ClassifiedSpan[] = []; processNode(sourceFile); @@ -5272,7 +5276,7 @@ module ts { filename = normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(filename); cancellationToken.throwIfCancellationRequested(); @@ -5418,7 +5422,7 @@ module ts { synchronizeHostData(); fileName = normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = getTouchingWord(sourceFile, position); From 7b43672ce058b4eacd5c0a7de456c6cca493b972 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Sat, 31 Jan 2015 12:09:22 -0800 Subject: [PATCH 149/211] Amend baselines. --- .../differentTypesWithSameName.errors.txt | 46 ++++++++++--------- .../reference/differentTypesWithSameName.js | 46 +++++++++---------- 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/tests/baselines/reference/differentTypesWithSameName.errors.txt b/tests/baselines/reference/differentTypesWithSameName.errors.txt index c451fcab1fc..b0850ee7f41 100644 --- a/tests/baselines/reference/differentTypesWithSameName.errors.txt +++ b/tests/baselines/reference/differentTypesWithSameName.errors.txt @@ -1,22 +1,24 @@ -tests/cases/compiler/differentTypesWithSameName.ts(16,15): error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. - - -==== tests/cases/compiler/differentTypesWithSameName.ts (1 errors) ==== - module m { - export class variable{ - s: string; - } - export function doSomething(v: m.variable) { - - } - } - - class variable { - t: number; - } - - - var v: variable = new variable(); - m.doSomething(v); - ~ -!!! error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. \ No newline at end of file +tests/cases/compiler/differentTypesWithSameName.ts(16,15): error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. + Property 's' is missing in type 'variable'. + + +==== tests/cases/compiler/differentTypesWithSameName.ts (1 errors) ==== + module m { + export class variable{ + s: string; + } + export function doSomething(v: m.variable) { + + } + } + + class variable { + t: number; + } + + + var v: variable = new variable(); + m.doSomething(v); + ~ +!!! error TS2345: Argument of type 'variable' is not assignable to parameter of type 'm.variable'. +!!! error TS2345: Property 's' is missing in type 'variable'. \ No newline at end of file diff --git a/tests/baselines/reference/differentTypesWithSameName.js b/tests/baselines/reference/differentTypesWithSameName.js index 7ee0b6bf027..54a7a0f43bd 100644 --- a/tests/baselines/reference/differentTypesWithSameName.js +++ b/tests/baselines/reference/differentTypesWithSameName.js @@ -1,4 +1,4 @@ -//// [differentTypesWithSameName.ts] +//// [differentTypesWithSameName.ts] module m { export class variable{ s: string; @@ -14,25 +14,25 @@ class variable { var v: variable = new variable(); -m.doSomething(v); - -//// [differentTypesWithSameName.js] -var m; -(function (m) { - var variable = (function () { - function variable() { - } - return variable; - })(); - m.variable = variable; - function doSomething(v) { - } - m.doSomething = doSomething; -})(m || (m = {})); -var variable = (function () { - function variable() { - } - return variable; -})(); -var v = new variable(); -m.doSomething(v); +m.doSomething(v); + +//// [differentTypesWithSameName.js] +var m; +(function (m) { + var variable = (function () { + function variable() { + } + return variable; + })(); + m.variable = variable; + function doSomething(v) { + } + m.doSomething = doSomething; +})(m || (m = {})); +var variable = (function () { + function variable() { + } + return variable; +})(); +var v = new variable(); +m.doSomething(v); From 6f2f2d18f9abcc3428189d31806dda4a11177820 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 31 Jan 2015 16:04:48 -0800 Subject: [PATCH 150/211] Language Specification update --- ...anguage Specification (Change Markup).docx | Bin 414584 -> 430801 bytes ...Language Specification (Change Markup).pdf | Bin 1614377 -> 1488736 bytes doc/TypeScript Language Specification.docx | Bin 347639 -> 360134 bytes doc/TypeScript Language Specification.pdf | Bin 1310503 -> 1406426 bytes doc/spec.md | 686 +++++++++++++----- 5 files changed, 494 insertions(+), 192 deletions(-) diff --git a/doc/TypeScript Language Specification (Change Markup).docx b/doc/TypeScript Language Specification (Change Markup).docx index 7846303e15b3b6902035799873000036202c9a62..08a3fb4ac0d9b523245e2a7e0bc4b877de642e8a 100644 GIT binary patch delta 378934 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
U^hlf6?mnvNYXq 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≫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

^d<0hHwdNwA2cAQul#cmvv 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 diff --git a/doc/TypeScript Language Specification (Change Markup).pdf b/doc/TypeScript Language Specification (Change Markup).pdf index ea7cede20f8d822a56e6b5bdb77b203413dd79c5..00a91ba1fc85675b06cd1e9893c41d3032f7b9a7 100644 GIT binary patch delta 978811 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

^}jf4qYJ7d_S;AlU<}mA{E^6 zu#XjD`4EH`LE-ZN6CwCVHC|v5rwkIn6Aq!Pf~VKM$bm@$pz)t*?M_V2iN^o-M*x@b zkMtl1oxnN-qSFFk1JbCG5N|aA7@2>Kv`HKY$zkdCKQ(@lz)ZYDHPB<15sd*@LV#hZ zlpWbKAPD;l^7cOf63Bl1_j>AuLrOwg;X|w~_&(Z+56SMp?+4Ul;QOfV3VheWV&OZz zSVZ}d(!EFM!2gsYMwnDUC{NRaf*T=GeaNnnR~&Od0jv_&f2tA_@|_wIS^$+lkiG<$ zrh!Y3p89vGVI=7yGA=o-4hsI5j17Q8f(VvMz|nJJEKf}OKMw1m;{dBHy&TLc2$2AX zl@P+M3c~r%s>O&rMQmIoIOT9Ag%YYE7h{bVsQ#!pcwmnQwsnl!Jg_J7Bc@y7Bc@y7 zBc@w`I|1B^7oY%Ne&94gjb6Rx7}pHwXioAN0{8=x#}M(d=Fn+@b%tCSPyi+AuYqVD z9BQa~1)==yD}OiU541#DsKNjz=v0jPiVyT1h5EKmnvq9Af z0T`}Bin3E`_5W-K|KY9C4{@~!Z!i#tFeE`R!0`>olksQWW<+b#;bedbL{3JmVH^R1 ztr5cWKLL&>4EKZ&`xpKd^Dt-x9t=qijL@kA&^tg6jj(C@tEqp|Xa1|DVEaKLk7A_} z1c<#R2ohorXr%r_ow;rcFdiPhRUC(ffb1B#;$xe@mA=gonSUki`QQC4!nYorra9Oa z0hTwU1w@oc0OujK8B(_SFaD)tD1ct!x1S>yW0CIe6>L1jl!O^O&L&zPNOQiXt@(S}Jq&`3-|IvpZdaM7@ zn}g#D2!bx)Emk^#pe|q;M}&7BpSu8B!6zvj4+N_rtsnqc?mEP>A`e)B*O1tI%&&J9IMqdH}ol0X&ob5ZfvUG7AKK2YUqwtND0OaWx(bOH;y59p*TCodleQr(!{VK4dNd>{dr) z(!YoOl$ip8IOG-y^qvo_2237xKSb>$0r~F>|Fq2^_P~Ef1x(@ywShybM~1&%CJx-~ z!TZPM6aM&rM_uTLF$p5*BcP3cKM3AE07LnyRRdlh!4Z>VAScf$T1w=gA!#Wo@lOrY zA&f0Hz7B?983Gn@m{8&sIYkf2b3hM?a2qteh|qWgbPrRMgbv;D(qCW3J|172>kzY^S?LKV}nA1f1$wL9UQy@-^hbk zs7NMv+fm@;kvXzsc&Fega!e5X0Yz*|!qa`F1(4%|(bsE)AyKU-FrECTXeI#{H=voM z!aF6)aF9!g4Q_!UzJ3CpY-|lF7jnE7{uH?US2I5VqN9rN90(>Ly9l7($Tt>~&!A&S zO#^Z;bqA2oQ-a#acE%#9B!NE0iCIJ@UJiOD-VQ^=k3*PZSKh@SUQdAC1e`KG&8&N3 zicdt~zsLR$Yx1D6I3hfUa_S;L7aghcAOdnq2jQp)IP3W3I2=WiD4yVv1gw(4d3j$ zopP>6j_TCp{1bdy3laPYxq!eMcJ(xvgNGhxDBxgz4>s4|sM2b~&ygcSM4qsy{kq6a zNc&lMsI(@nY7ae{8!K0+JJ!y)vQRl15zCN>^v-9Rz?k>ZcVZaK?br&f2cD=iD1FXK zoCvCUxas2I@)qts`g6T^@ztdL{w81`6uNhJ`6B$s{N~a!_tqQul9U7$e6uC+LtrZW z)6ef;etbn#W~twW$0yPHjEq*pcP`zn*iIdFVG=VJ`lOrQ|8=Rimu2iL>d)=PZ?VE7 z9ZN4e#+KDntHQn}A>b09M@jMb+Gi$L*RqDYvry;MaA<@&u|Fo=uN59yp5<99s_uGl z@xiro;weG#Pn{c!D#!*5D3jo7PL8`f?Y~fFezdIVa0`vaJAR9gGJI0Sr4mafMQE7i zE4H_{Ju!T5KR#1u>2BX^UmDrea%?hXCBp92{uo1+um+4OiPk*C4JDQe{sx`Y2cEmr zYfH^{Xd;uyDk*bbZ;4kvtgKueiQG;8cyY;D*aU~{`)w0u?W)I01LxaJ;V(2uBgaN- zJruSFM}+mex3BqZT(**OHerer($j5)nr9Gou1arQ-LApXE_|&N?D-(F`DVj?1XrxK z-lIgB>u1W~rT1HnY~YHCQtBSjmTiu%{QBqp^gB}6E$zpCUb@P?<7pa3GTaEcyXLaL z-nt79%bHnF^GznCzPM?_FbQ9z*h>m9Bu49x8C)IbI+u3y2bHCsae@`Z$0!qxzX9=C z2Gf?v$9;T%L}6bBHHK>;Qu7@3MPK*8ZJcsW93PU-f$I7%-DnaCiUcH9J@5VFH7J%y z+o9%WERUi*rowIH`q3aC#1sht&W&K_F|AcDtw3u%111;iqvinGvWxKCYjC17i@9#b z*>2nNvOPhkEwODzU`1zN5crQLkL2XrFaBK4EyG^KqnnMS5t+A%CqqrI4r4fswoZy8n^@yZ) zciZm@c2|@5QU!M7xoc11g=y4hMRKt(-M>a$@v-lLzcR5o$NRd@vPsf!7(V5m%39it z`fop8jHDoBK(Bu2Orvdvs<%19)+)k?RvyM#kopWad3KSi=6+tA2;Bv(ucqfm;$juk z3vt-fOCr*}roFN0z7e6u**_#=Ceo6-{#dxXyui%Yr|{ejVp4U|1XB3)qqrs+e>(P1 zywwj*=0%c>&W+noSrQx#RLt_|`fTqqDbjw)*>Id?f)XlzEKl4>TAXkEaWC@Tva@Gb z;7z*MF58%^=(7!js@RhF%U8!&zwg>R_rlU!O!n=GQ3=0Y@&B<&D3JLm?hzeBEe7{x zdS<2Slw{^W533yi?~Y^xaM>pIbX1(UqN}wD zP6#H2dulMN3BDO|KT zW|uBQO+9i$8riV+MxzKUYv-;Ye(fvgT4#_jedXl+BqB{WHL>n0+I;RyfQRuw86@?C zUN-MtW3R_w(9yHm?n zx0_D9k^QnCn!jJdP9|#pV5o~TJvk{^C{5m5=Ocy@x9BrFCYT){kQSV&C?~|K=$og6 zT2A#b16RGwco)CE^cuWOqmwv)OE$K_-$K+utj1AeMmGbuG0j9HAndIMIY0uF8$BPQ zVH~%475C9o1$8rWcYB#(iX`JQ)~wd;vXqt!6Oz>J&(0~y@*0D_W)pCSTX^#o_})S} z50EMX)&iTBzC^q8;p$TtOk+t^7S#7*88;h>(L{MPI`}51q~TTl8}+qbLom@UsY&h( zDWR#`-ab@agVk-OrL(92?I*gv>XV}SUeDsnVsrvp+okGm359gu5LW=~z_zNl&W*ym zp5sG5h@WI@autm@&D~E!wy+sXJsgXq^uAT8FH?{FQ)$~Us!Mc}+`yLvU7EO&OX`6} zxNWBpvSK~w2N$Di*E1#}yxlof#HCI3U6+|N==<^vSH54*04C>+v@j){RSpfh{!xH% z=9DH@>-DkK=<%^($)HCNCo!7zK<^l%vk}Tt-E#2hT8O+$O2Puu@+)cY^BN)(&6a7t znT)H zXZ_QDdJ|e93H{yQ}RI}afYU-m}iVJv*$*#+)vg1-| zOk$&=!uv|lp^PfGx~vH~*i>f4x}Wi+6EbOxP~iC$ z#|#fBhD$^Ndf2zR|cC1x5cB*hA2d0-QDM^^aRx87GiL!H?< zi($=Z-NZ(DdL`>3_nByC%?+{m8|K@*9!GLrC#Jp#%Ojj-l$Cv$K1WSWNsKR$z!t2q zZ1LVe7wdUC^I6?A6yI^nt>9U;Sq}qSvG!%wp-g%*VXfvR@_yFU5njI` zQD19=R&J_ztv$S%!le{$J{#39Ewd0=+Z?RhJrX3HU{1~7;FIx_GA3$ovVrgwiPv_;3pf9#Y;rT=zC<{l}6!UZ|`0@ zMNgR@i{l_utjLg}(x8jibVfGQWE>uCl9L#aIl!PQVOUBVr#oEawL%s{LrMB>pFL_{ ze@>tJ^Kin_m*;m&G83T@q>I`i=WXuJ6j2OFb?Y(@Um@$XxXY;{j`fWVCvKUGt6gc} z*^j417b){iCCi6~%utEvOKG^2lQs&CWne_vO_z1!umzne>vx#Ku>ph8e31#j+u17J?_cv-}(!kq% zW)0A8lyO5Za~D{2$ddAnZ@pF8%OlxrczR|pQGM~MfFZ1IoPLx0n}YN<&c{eRoCUb+ zb^$!%_R+vwTrdwq1ut^aML?g*I&Id{qoQYtsoI6&-JrhL_5UXHq~e$OHR-# z(jxrwu5Dq&=6bG4D85R`a+O9&;6)CpD4Lys;pA-J0H#j)lAAqlUMq-hPYd0&y{20X zUp;?jua6@#Wj%*t>Ie5aO;H!V1vT?IF>e*72|Ai^YOO>SIY^Vw4mxRNi@{e{!=i&C zag`ch)>PTPW2$4Oa|wcRPF81?ka~H#e_#8gA#C1P6G)F5y&Yrz*H0**z%^DB}I zzIm)_ec#`tw+32g? zjNL)0cmsr~2BWu$d@MPocUhmo9~a;D-lU*L?PKwLRVKW+Yuh_OCHO^(p-8e5v1sAa zK8$V=@K$oE<#qkG>AtQtnMSVXyH^8HfrMA32M#yA6kuCzImf*y^l-oe8}MP)lH=<_ z%TT-w-2LT^F$=i@T%nxCUOg0bD3jxD8K&!n-@ZQ4!?{0*Nt*302)B7QZm&BSreN@e z$k=P9TN#+EgKj*{GG{K-mFZOBDD~BBFJY6`=eEj= zh&3|n^LO*cyGfItIO}qO6W{&mkOlk|CExO6n65c|{ryemZ-sV67F_w$?v}L9=H4N# zFW!LAp6wE=~a4J~`tNeOcS;XN+8O?lKJk$9FZw{inARnLPV z^rs*-7ENoG*TK)W?~X^a(Y?yoExr>PS02FrVlx4ya+P|iilJcj7wZhkf(lYT3U zP4n_w1rE@cqS}CK556m?7 zlnzN%7%(_k?s@$PgHhY>eu}WPXoc8y+E2LEjPsE4vK%p1M9Bs%M~^SCZCK&N{<8jp zfsId&TXKtAHU$7YE*rZIeRTyflFtMD0oEI79%c}#inz zk>;E#x4@PY?yrcRox{_LB6yaWJT0?+3e56-Fw3zKwi+=JHhJ;S$e8uxZpB1!JC+y8z{TqmMVJIm; zh#?Og{{yfrb|R1*P`sQ>+8lu=Vi!RMLtzc%l&Xs$QopN|e^1mPQtTmy2$6AQGW9Sm zaa^SbG!f(wr1mT*3<-h6^xufg>N@|Px)eZo;Xz4a1-n2VOyEES?L;c*RJ!Ca<9RaM zdLje(yIy%HKnCQ#utkpamVihXGHZvpF>#Pp5k)-S09h3^j5Eji|9?P$QQ)0AOP-LA zMH*Xi*iLXj{_>x*k|&1hMDtGc36y(8j_Zw}f2Rt*$Rs0Z_8}D!X!Zdh4}61+oGKIu z_;_p`gFpU^3gbVb%{rn&0*JDMs#{bK7+gW5Pzc3|hWxGl$b;-hYzjcH6q(*61bTU= zGSh+wbPwka0S?@kPvl|`ZVNaP44?oybC7Ho6+(>v0H@6lbBBL|kAb2F5XU=ZhR3Rn^ai7okAtwnz&}YGDXaxLtzI7%!C0&wpkSM^9*QnC&ypfx4b~#?)P&+!5eZGN(DRp zSR@r4Hc9NwVHj|56M~pWQtpDFv?lTwNC036J^;DDvX8 za$K1|mk&>_NoCQBE9H8oASY)gUBI* zs-gnzEQA0Idc?u`Pk1TB@pHg_fP{6&qR#?^3hcOXe}*{`@{63ZTtNVU7J`rfwiJXk z!J*BaguI<_^?%>T5BHnn*yOKx3ROhtpxTDGO@f^5)0~t1B1l6#DuMnP@bvcv0tb4~ zxx{%G&>%&^xQ-CF{DP5L9PRjXjL#6hRq3f>0D91Hc2Pw$6WYm|CDOM@tga z?!1Vhe?xTq?KUFFbx0&~gq{*P^boY5Ja@1zLke+$ZvsHLDiW|A99Fye`A@3A0-a+d zCJJ%>Ec8&nj_07~F-yP=9^i425FI3vitnTZEI>m;Od%A6K$`UA8aa#?z`Tke+Rj2X z{vC!x3m|mHK@bVrDU8@51?B*Xu>^nbCel!~!OBDWsxty0HbM}xLC+&rh#*Up)Ljsm*CY!N?-nya)l8@F`~pa2$j*$1=4bx;i0K3r6n1 z*PR|K0QE$YD8**4f{_-Dt^IIBoWutL697p(+Uod$4l7ccmS6PLP6r^42d$U>LPoEJXnJUxNX76<_km5Aw}Ge@W6b+Clzl&`;aVeR0OA61Z)hsq!HN| zAkcJE0};et@v&$kpU^3#Smf;x;1ml5-l)vl>HcF0(O4zT5>cT z2X{goM5?FAn8Cjvl(`XYSP&S(%@|7jPnPkA_zGzy2P;k$gzn5HP@02l|HW{gcqT71@g}aU=|^Oa?1fbcI--w*#BpWF0g394)7Rh-M}v+ zE@VRm;KBzp^&7D8!r)Hi=xf4XcWd`$W)Vy1&SIL&HoYjplV^AdXmeoiFvMx@@8-Ix zSH_n(eI{+?Ys z=eJTnJ)PlV`AeQ`!rF!p`fGlDg;Oq9E`N6UJoeVpY0Gy7`>jIt?#8@MJYp4d>m05h=Bf0_HHE zcaeSw=9+h=k5?L0&h-wNI!aN7ZBUs`%Mwk@e2X`IHmd%msHjA1d5O$m>I3|q=gub_ z4*me6bK5c!7A*oF_H>84$xLR^JRfDPd@fsg-0_Zk|HtGb$dYGJ%U4zpLS4rv-1Y{Q z^xu2!R=%n`4K5(oMywtfybmS6i)b)-s_;{{Y(|nFQPwlxBe2=K{(k;b`qk-cqLCKM zWNT&vT7f@a1X(64OGR%h-c@qE2d^e5r)k<8`ffL*&Exxs^XqE9hX{X-j)kH(okjjMESp0u zu43#aj(kXx5zhrOAp zMc@AvO6_MX$!)!3tRNy+*>HEPr*^D0Z@m~lL#a1CwZH1Z)~`#RF(2Ki+A`M^8Xq$+ zzBUU#E85Jd{_~P&sFWa!TLp)@F`U_rYmrIEUc^UHF*tm=hrW&Pt%5D5XTxHTBbQED z>K!!p;k1${=0){o*N+nfLruX5ovQY1QxC zEE^KVUyj%aa)~OC?0P$_P~1#&ibX9cQ!M(#sG}RqKRV>zmZax*qx9=8;#$I27*^9dw zZJXSByJnaFKpCNoJ;BoCv~!7m^O^SoQSBt544IBmKS3x-b|(q}35rffLQ~`U_eGUN zTV~IEV+`uw3kAIDy{U$U{=mZvcedu2%57~|`dTwE=JZAiEMDln%;@udj{-R}a2D$gFc+HvI3)Mj>h3e9mNZSa7g~)OS-z{M8$PecB?Mlx* z;fg1!b(WiESFsQ>H{A0ko=y8!ond49!O-S~Y75afTi4tTu{^X2A@X2O2Ztrg@frUY zv9TLXMX6vZoL~Lu(AsBfd4uq*NqnT)qx0ymMoOO&u&ztTYYtv55clqCm437r=UP~HH=IK3u-6%9J6opa)+o*P0N#~Mo(Zf|A<=RyFyOuxK_{>q> z5Lq*+-ySMeR6OTlo4D^IHew@3IQnFFt`GSbIQR@BZ z%55s~al%zL->;~gZDV^5?|T$D)wxb?msNL0IfoLRsDyulZh2OTyujXm6wZoYwB^uG z@$B3q3yVm@wGb<*ttn+}r-ujR({&gnk*X~# zYQA0_=q|uto?ymcdv-M3CLN09j)7Jf)2u&vQ#A0&w41V%vn<9hB1Sm|uihv4au?Zh z@?rzB&U_x!r6WSSlPWr(w{8iacAR-F8e@bD;rt;I-yUoxdyg$Ghur&J7gv<@^%y%A z5ubpEPpY3Meqy1SF%wNmnZRh6dDVNXg5l8*8OC_{Zi$WBCvg(LfxzI>ALl($m>eDr z%c7&GQ(mEJG;Vy+EZpj)@S~@^(qt<1UCQNUuC#=n9>w0C`bhNUN=dfHO?aH(K!M%; z(8gtJG4#;~A$V6bp3@o+DZ4;8-=UgC>u@r)F-TEyxOeH~JaBWvuWrb_K};mv_cMm$ z>8Io>CnneEXB0SR%rPDL$lRD^WXbEPLP=D3gyT8PhwqtGXrUPnY9MkA85Y`}<59#{ z;j*MK4K2L(k7#J|U&Qi#6qF5TdpCw@UUMtr{6LSE#Vuz2xzDjJZ;YxfyVCB@c3PXv zW<^T|@@M(8@v1p;_}G8r*8G1OW?3IF^#AzATb zMiMb$j9|DezjH|Q9j3v{Yqzd&C9|^eza@A*#|=Hp8r&!yL9BHvS1`Xw`=LlhK$bu! z#gf{j?)p^sx=(>afQGU9Y%W?8ou>Y6j?EwbQ(we-#Fhp|cpO{v_%tq+PhR_|Wg*!l zUs3QtwD4OWKpEnI zkY)VOOK!~g0MzUYc{PBHRzzzV?9E-4eIBD_kVydA26p?gCtY7#vl%D9or{ej+P7k9BI z&f!(@w|cdOmF|(hjVz9LYi0X_vX;TIlbd{3lOT^XwF^b~yTY>%(YaZD5}M|ibu*dt z_Ezd&GC0SV=-;&9n|R^OCfL}*?dq8PoX$uIJXXr5lqhH1do8A#tfg<~b^Y=fC*_n1 zb2KgW1_e1c?abR}$#&E2H5jatJ!4At+FiUm8gs7)ZlIknXP?z&yqV$iddeU>?M0Dg zQ__{dlo$~zcSli5`=@EQiC=4#vTKZXuO{TR5IM)MUXUoAmlAevguw3H!s0D1cLk4uJFX@+*L#3EIpS(H$t1z4d(O;sxxCAc+Rb1)UgJ3Fmo1O(v6!=Q8u| z85G~dOGhhsKJuRbOhpkg{kmTfZb!mT?@I3N>9I`)5qK`;Y|7lS^rV#9nMv+E`E3pz zzIbmo$ycIw&c*YLvn#`CHu*Mr*1b8ehTLuldAyt?FADF93DV~Zrexm4d6W00M(svq zCGX(ZewKdH1Qw=;gKu&wuHO4pPcb0pX!_uyX$u{O+YRllE2^W_qWRn7nmzEd9%Eac z&2L$+Oi`YFjq}aJsvNfEy*|N4Y-F?D8!}BkJx*&KHu^=er^LEwgdr@ALcnYHRpxxB zX6l=MTAT#+_3NegQ@*B)<@9>^{+F@)KDl8FpHK+OD z5mJwrPVK(XhO(kE2C>a6jBj7QhO5kR8ggrqYu!q#C>8#h)~_H`vXn+==$sEF6wz5t-H? zX{w`{*&FjnM6K*T$qhasP27~OnjO-hi%f#pmOAM0PBd1t3jBiP31k+nO$7f27SS28nPvE;_=VvVPYPsd3Wc_E8pg%V!CTfe#hlr5~v;K4x%ljG|d8^qr|tW`^CmPrizEc2v#-E#LmeOuuN z+gAI`;_TXsuLK|1vI}}Bim7|2&*#kV7hlUL{krT6tkJ}1qOOmTiO;^SAqxJkVjxF>Tqkk0iv>luc|RYH5E z%KDFE@76G{6p#1wQJC{F$GktsP3F|vX%cehoX(Ya{<@WC&}!^o*giWFqjyD@?(S$k zoWDq27ir-YtoOxY3wIy3n?wn{6f7raDiQxZBznoOOiju`qOH)v@$)i?E<)dw zeP#$#{pZWLB;(KH7v?YBh`?jNz3{s4hfkf8`JOg9zwao)=g|z>b%r-emQQHopP>wPBti543gsqG z)BEYZV-xN9Mg45*Ii{-$%*0|d3=)~|ZrpJU2v%2BwQmX%sVYoN?CCPK;_mq<)dz$8 zT-jo4r9Ve}o=KPfMzQMNuW%X%bZ->fnkH^BG*3-d+3nVL>>bpti8n8+C@^y2hQw7r zWxHCuS0ab=gIN-P_&Ha=A2$Z4`k5}5r)HNIqdc5x1AlIO-t@zLiN&oTE)};*=dH-E z?ZKjlRhvoI2+3Rs=l1U|={j%;IOi9kl!+S(I*3*@W1gfXq9~a^bIg1E=_f%C7!p%lCYTY1*a+y~S%ZR+SQ^_j+ptqwQ3SOzC=9zmMeTT64)?7K!)6XfI8Dh-AgUNsubJKYjiUT{KN*f$g!ldN{R=V8sS%Atzi8Nd%G3#)E^+vq zZnKyw{@Ujc)7@FlsBSifz4gQ5(7f4cl*U}(cqY0z#q29F#%6fcjOWv@ZPPH~k)FBg z)vS>Bd$2hl{#As`C_tuw)ORc@Cqju0DvCT>$`gl5Ma0j?tz&I=-^vjj9y;XQK`d5) zI-kVNGt`KAHt1^vTRTX0-XTS&Lv&q$%7GM@C@3zWo~IT3eWCEd5%ZJz;)DNn^9(n_ zhaFmgb;Othl2a<9P(C=H=pn_>@AOnDSNCex*w^NsJ|GcUnGUU$&N_ zmgG)5`vXSXz*~uru0>~7`rvN{NrsgxH9vve)qr!^?q15E->euFzDPxz;^NofZbW3y zbZ3b3e2h-gGtZ&>>oj_aHoTH?>;_*J8otx_%XTj?yi0Xk+vC$;n9$^UjfR;zC1Oo( zpXowCc{S=X^dsJUY6>FrQo5&#Cc^tr zbYl8k6H!7JV{`MNw9nT*F@6clN_Tqa7WnS}Q1wpHnFU+8XzY${8y(xWZFg+rk8P)8 z+qP}nwmR0$-usMk&v~mFs~*U#n`! zz~JoWM49#@O(abcqB0eM;F~(d1%3IIiu5xZ#(7s_ig7M8KAOkWi`ZPXY)v?cIVN?@ ze-hE-i?r(Pp@C}#&}7h;o`+??5nrQFI@l4YsulLL=7}P-1XedUjMTSn;Nd7O_%(;# z16&b1o2C@Jm!`|AYRVh4GjR3xsw8^gGkyA>dF5v`%3y@>Ma8P^n{pR0W9H6Se!VvT zQk;t6G4Rrmio3zUsi#jf-Dq$Tx_o|-3tr-8qbe{! zMUa#jABECS;tnc<#|0qrtR{#HNfnuN1B9XXR6iPT(msQj0uUwF{|!lk3o>Bsahk^l zv*|nK@TDq~rfr{gncR9IQq|g@Rx+9Yjld1Y#JTGe7B-9v3e#3n31lcPWJF+oujR9M z7OWEr1lOK;XDOJs#4F8%6^lKD-V=f>KzlnoUDsZD9X{p7Kcv{6B}M5oHA&>e0;m;2 z(*PG%W0@67_M=I$!gydaqLtvLr6S6sRYW$ZU)bSFBqc+N$3a#sjt4HpA&ye+`KvYf z>f5cC0F<6OAn0RJgZ2zXsRKfh30$SUx%(s!q2h>Dc%-hJ*uQkV!suP|CuX%EPvcAo zuOC24xpx;@3I_MV?DqR{M0vdQ09>JD;|Bq@v`H{9VEAmxBSqB*yYD|;g{tm;1`*XkscBl)vUGd=U!MO(!99U>ib4IdYA1j0C*A91GG07zI5a^oua5)>45GvZtw8S6%R zSb}j@y#2sc^uaidn%+P?`F&-%9k|hx&=;tcNUUbIAa@h6D$zD|T?lZ^T~i`_ER};4E@}=(`kl_C;fZH@kgi*0pY1m%0TA;ZQsjz&p8F3?TdKcA}~^WEOz zBRb6|U3OV*wl`az^}ij!DS$1b4#N>~^*&Rr1uv-a&&pUKp34VZ0R6NAOz$QmHTSb< zOwr>5wEN+gZK5F{qX~>!m4Xk-Le9a%GWWlm=dhcwSY3Z?FUV;>ZSFDE2Pc(Cg09mp zhVaVqBfsd9Sr$z)`Y)m~xnApU<&;n4_9#!VCzhqu^ky8BXVd2`)azzv+>!yi`ugMu zF2`PylgwuaXGNVP02wr`CXz^pD$)To`QgLW6Mc)B`EIlg-z8fo`u2U7wCT&Hz>$Ar z6e)$P_pC*XXzK69g#Z^aR?3|m@1h(q*v7jUY-|rvn-)P{UDv9)a{e|O12h{albnlX z6Lr33@UoJdB&kVyI;pSg;AqB?76Sx6joAPxvwiRiX)*UMz`p<=@&1r4SG<^GzsKt+ z-^wIlHb}9E&-G(>o($`B6AF_JI`Ta2Pq(D+{RIq_7Ta+p_B~jQOtw(*0Ry?N$q?&n z+k7mLJTv>>TZAxPUWjXv=Ga7e=k(f67^|NJiOca}vOR@X@(Lr#o)oK$(C;B*JnyIx z6DATPL3q##fKjMrs~kf=(<7eFJkkz=e$TUC#`sV;DV{rX`^5%@-Ax_gXAf;*BXcrb zc@QHsy~hM2sH-r~n&d%a0@K_AFxYn*wV9tGAzEy1NApNAwxxiw5?XoTuayx?a2!f| znDx^O7%`6iG|?QTxN;gC*Q>x_X|1UtSTc8}ey{1j06fcN9>Wb?$bvmZxnG$BisFZw zc>4-c)!DG=(C(tY10K^o6NH)>QS4xXEw}<6=U~|(;q~ZN=ek~0i|Kn^64ITGAVLkN z_Iu8Xt9_j?;`^0cm$4KlO}XUJiN{+p=d#sXq98)dd>OAZFDCO!EmDL)B`jJNJA5Bc zm3}wC1Ge^tl&_J5=bH2EBK}r2sz;Nva5T>{wr7N>K{{^)VwsWKFr@937ItYxDV0>I z6>{`2Wg3^XvwL!L?_XMqXD@I?pN4E6a{Oz@yL>HOb9V_~4B|Cs_oTIjBj(Sa zoOA=mXNilDWPFgQtZPWG6rfHSZ*wPlC79cdei7_lh!2xK(Iq8>i5K02p8`q45MRaBr+O$JU*msf^*4dLa32b38_6nwdsG#Kwm6(dMP=0 z@17%)I|EX-<))-d8*%Ko>gPMgTYPk=Lp__u%RzotZ!!dWVUNckW=W*uVqJo$KZ4pek4Q005Jn?#uP_b{T#IJ*c>rFU&&9j zHmlbVFYqKab+KczP{5$}ycZ`sr)6hXd7jrV5zC#(6anJw2@>Uw`X{W6B8f-NkftBjVPfkda+ zx}v`q{f8w7vl(rD!MFF=q&?d-5Mg-2vdZc3y&20GMxPQmf)#z;=vLMAoRE8Qh}F!m zw~ZbApKpJ-A#_Jl#XWg_!763NH%8&WxVR zsJ-_Mdwa*Xg9>9=<;K0-J^=u(^aaNJ&l3Y9b>a#HE>#pCl&Iy19VGcbV0guI2nxWD z7xjO!bN_e7zY%lL{OIHV37Jo+(2=%x>MOYcv_`tYCNNvbEkMxhGaGePha7t;aWAu( z|Gn)*M5aV;O0jC>uc=+=eyxtb<1_d4SnPQ@MDXqYEV`o}yYVRH-Py52@a6KKX7o*W zMfQ2|`GwEJ>&ZS~OI<(0?b&W;vkO6#YC>kyZo3;=6zE$hUYscmIi8{{ip1gj<4Kk< z`*tR0r~9=PaRLzj{-_6Cyb)F?v9zfMDcJ1+FaBs08*nafhRw&M1q+6`9h|mYc+3i~iRm4H7`ZI!YvMl+fXxQNl#?H-Rap zC~=%(eBVwX>Q&;w-cI;Tp3b&dqjq?W3$ooz zdTjqR^%=l~Bk<}@$ehtHOtvnKzSN*@9uQ9M7jz&-G;i@}R0&mCgbaKMxPc*G4;%)y zkr7sUmwaS~mt4yWn6!H!?foI!Uj)zwTeBUXdW6Wy@&ozxNut)f-wqD344Ek{NBgy3 zKyad$T0)(C|M);9n6QeM8TrB-lt!5vn_Xl5SQPUUdZEvvz1!VJ9tX`&iw}K0TdNXSGYuE?*6-;hNsw6JPhgUK_!fP%k%prmsNOh^D*~)umH*M=A zIKvQ$`4j)HHVe0#P#CJb3$*0A}o0(_|`q+-neHqM4N|juQZI zwN@Lr%V@{C1pxqQbovdRDh4Zg0?~oa&}eo)uUpgw>Q{kLX|b)c@s{A>90kBJ_PHsi zCQ0XRUDhHxKi1;toekpVBTzhHAPn+w9Vds`bl@E4u!E6`k|$1@Vb8mA!TqkDk7bE5 zQCmIHK~_l`)v@7?N((&s*NFjlL?<&s1d@?))g&2lpb z@u+BWVGU6W0(gtbIc)E9lhT;R=|VCfm|DZ`NQ-1kWE2H03?P6qNSJ(*@xlV6R2-6R za`mgjTSBfx;1>)Z>v#1N7WJ)$b&)0uw3#>*aMe`pl(PN;yQqd~o_j*es$ z$2(iEH<1-aFRS>h4W-jpwbuj#Ak<~eEry!&jUqM+c5%(*1zjod8OQ#p;78cGj1U3v zFjp@*Ps+!N3^P3lQMjI5slz>1(GghEW$)(n6$gt%K}T*wS@9l}loJ3`GiCvo5zVq$ znCcMbwjvP-A~CZ0d_H=t_aHEySqgTcTv2J)|L*XPoh$=k-~)sQ(_jtrRp?#C^UE%% zem|yw*g@~9lQ>}uQ8Ml5TgMGK!kD};ZQycEJF6hIaW+e67>TXXrR=2HSh+1Go>YEU zb!wkK#iPE!qg)?kq>ck>St9eC4e0e}!6bmf*i({#1TyAep$(c@5zCeZ2q!8B z^Z92?12Dx9p^U>q!6|JqCqS~BE?Vr^dfaf4wLgPZ{3vKH$)!Xf3ms?+G*~fjIUoO= zqOhB(t#{WYZO7*sPxWK-3ybcbdI!gKkFbrV%Vl_Iopb#PaMJ?l6z`gba~QkwLlQX& zN`Or2`~K>0duT;H2zS73aI0DKI(!1IV;ks4AZGG@8Nki$2Zz$}#NP0eu?FMD#irq>cl6{7HKF01uLa^EsV1_BxKN3wjEf)d`OV2czvP$ zinJlhSoin+dHVsnBxC#OWa1?YR9|h%oolr+6j4Vh2~-E^G)yI@kdI&p3cnOC5V*U< zdqer}Lfhz#b`$t+DI;lFS>w#6T8 zQihqNZ=6gUV{pp@EB?6LD5||fPHlM%w{NP0rCZ0ZLs|jMs7ngE8I5m%#7O%1I9;b{ z4Xe!L9okk&#X#?&FA_QFMh^>C&m?eZ+S>M=v`%hb)mdm=S<|n~{#i{A-ROEx)^u`9 zLv25?lMH6x-sMRhqG9R=5@QEM;tCf$`g%oe}3+ZGrwB83y%4W9(kHnj)7`G;EU;L()E%8O1W(_|JwaVJC2e*!WQtb=1+6BY+}^F#cr+e zPOxDbx^@u4oS4dBZsxswg5fOmI`!Kv7xK3 zh4krU9k+g{J_x-j`z0)qWqWEXGyyx|Auv<=zH}T9=RV+Nn5&5?1h(uFx#fBLc-Y3= zc+gzo!XE;|R^RJH1YhDTE;H0DrhLw9$Bj=*+)|gRo;t5QH=@8Bg~m&1c+9|;zdH_y z;G=iMI%Iylt*JUCF{ctB>jHlmhv9To1u8G@kr;4c^*N+QP*MD@P;g~qZ7pY?9{6DC zl|CAYjog_=zlm?CiQfkb^w1L!_bE5wpl5Ce=8#v={ZHUYhT#1-@SsHfnPpw84v!-c zA|IYVXt2?>4cO}VKC``+l9R*%Ysr!xQEn?-eBKI68r8US>E+%WDpODcYbr2~O6Cu% zh@V+e=BzVo>;crYnYpJ`koizeijhBRGCjP`+Mi58*Xog=<0S$1&8^vh)c4n2_P*ucIPWp?MJ|43HMRhwNNs0z*jTLT_kEH>XoxuaG@^w8%F>wTEO zRY-TJ?_fi!l^{Zl4R_edYUPU&J1_V8VSP)CtYn>x+-sMvj*6iil zOS%0fBc7-{)_!?3uUJ-UcJ2N|w+{rR5XXRpav`fyF!ke2OCDzhS2^Nz(zqMMRmr$f zs!4nS^(I?`QOI zv(|?D*b={hxzEp3SlbbDvZ%VqBmTYo#-Ux_X|N) z-|SGWNPvjrPvzFVD_1-@`^*O~2zP#VDr++nzK15{G0J*Gs3IU)Vcg z*BtHzbXGei_2$;2pV0<@$iwa1pnGG}#`{v2$@cdH00*Bavb0$8o?QOlOZ3UNl%{8k zi7vOgqq>A8x#;joCRSSG$=k(J(vZZotqulxXbY%KPaD2O$0i{b`%*a)-kJmJeyfFB zBTz_@C(bWw+TIFus~gRf{p>ER4%2L&g$2xaDW7FTRTr8=8%0|W_vFKp@!5B4{7*W&|8kpF zGV$9BJ1t0c+oeB>3BFEg$Hu=`cjF@;m6hje0*aGlg3N&pPCc`d54qW#Q{x6Jf#F2UJf+>IBu9&F9L zhh%B7H~1Vtt8!^@@8OXU=D$R>9v15G2{PE5Sy=uYN5_FgBOyP@3Lj4Fl6#sQHe913 z08k*Xfna>N|n(e>C=0^0GA5rwVr9!h>MZN4;SMtJ^eN@Z4=U#DpM)mWR3T!*(O@T|DwyRM^oc4gzgp7dku5GFj>9u47tOk$!#G4zuo~3tvts6IgwYfASc zTK$V8RrSm~V}b2Y&MI>t<42SF^PSGS=3*Y)L+dACr#V&9UI9IT8xVSN+~1Ut0iem& zMjrWZPS#cAWk1$+n$}1QYMDcw1Iy=R=FRD_wMoUVoxdPGsVSYOYOnX8L*Gb?$^J0; zn%=z;1@Rt)znk=72wyw1g1&~unB#scd&iS;s~tYwa2}_djr4bAaANRiI{6ePQ>IDe zc}H`&jfd4_<>dl!P%1w{|G`M~oAGcGOy@rr79;zA|AR)EhTh4E;hbjd8`wfn`1^m= zleO!g>It1V7%J9}n)eR@gqig>{g0Cc;}64zg_-b&(MkU!e)&VbgZsa=_ET$kz|p~( z{$rz%iv10OmpBUzmMUKg3X?jU2nwHCW&k1s%JLsJP7){uI@AAXd;d?X_CMc#TD6Hc z&@idCh9Grl|HoJ4|6PIC?=-Ak8a3Fu_<$eot;MzasD~c!~7hTyR zY+SqAVQ5%;{jw)W_{<%2&CfnCu_3dmJq7e&b&nSE6ebUcf|S`P4eZ$;r(+~=eHm^w zMIPr%cfVi1gjQS8S06VV{(Ct*eu_Ov4BdFW>o~60Wz_|EHF!Q!dwd>b96pXcn2*?L zDwVjTXVPZ#8%sibYY=<G%G8eQj8fWcnoG ze0_Xv$ni6|U$C=FH~`|Vv1`9R<{FMS6*3`4qos;WQf)KZcTV6Qc=4%Ffqx_S?>2J; zm#%O$(N_c%iOM~yD$B;~?2!Vz9wuTX&Bzn{C9IN?k}P8KCz%ZB#wMsup;0Wrd#X-m za_G8=!hYNNz-Z)j-Y=KzNBB+NtEfcKHBpx&zFTm%rQ;_j!t+hu4Xlw4(^DKy3#6!? zA<0KZRV+Uiy6B^!h{HUh=Z`Q=!f>iGN{dr1G6n z0>DKJN9Pl6Bv$^sMPjxkkg69p%_LL^0rEu}qV9+}LGbou4kgDpyroR4zJz&SXV}MJ zxV5T`v?>Im$UYkWqP}T9@mqm!vY`>y2Hfx2~$xCsBbNcw|fMDe+~FVMPPzAlEHb_-Caox+fjty{1xm_7Nyio5~sb z9*-wLj%A>F$wgCzF%o#*NEh2v^7tX6L+3KxObpX(kN<2OlUfQyslTD{r&(Af(n22pkeU?qnc4fUpm)W)Kli+h}_ zS{x5!I`S@jRGhU`huBn{&OuamWNKy>JW6@Vc0n|$EM}&R9q(HfoM12^a;9m5&m?i$ zh+^-A3jp!#fYTwyf1L0`8UJ10A;5pnM9l@GZ54k%Pa+M5A)i1%$Xd#Qs zM4AcKzSPiqD`N0?$6R~KM$WsHLfTVORKy6&)ItMjl5MGW0HYY<=2sfs{{;Ei7;D

<2nJ_6 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%0DgNluF7xR;=MN#sb)~Q?kHrm5WPx zi#dH0skt0qIuaB+E6=X!BBZ)ukytu+V&8;96aem^-ly|C$*0Sq9M=gcW|^6h)zbkF z?09u~r!Ha%*I(=_;=U4!idvJ3!(bKD6R(`G(GmYdtjk7kO&xsn{P-q8Uq&SxQzBusD|d}<0! z9Rt_i9S!*o5bz@eDM)3S$iA1L)Ucd{;QeO0<+Cg#;NxCT6AU)mZYb5^klKTni`fe` z9;E!Py{(q*+?Eq%w)vycHL;3%!9sk6%l3uuWO}+jT_~G?p-fM|)Vwr3=PPv+)3}aa-JM#(yQX$d%N$hoU6Brmb_o6ABTdVSA5X$nXo*Yz>uD4{NtXP_8@I7kHcF|H_<#aIBnW2X{w zodj*>+VhlIfjeNj{XW!_HUHqM;@ZG5^>UqExie!Tm+KuzJyp)771!{pEQkD%M`39? zi%2+uscuaqbvwh!WklVYrkt9ftsAelM}s^WAE`J^jHmz+<`bgen)^lVSOZGJlEH}3 zzM71TbNZ*RNk{&q3|tm83*jlFh<0qR_CeSPvqluf6G$^g_)!DYOd428=O~PvD7?eN zivX+jlFK@yxt(ucVxN+aSyWS?4E}KT6DjW?6^_mRj^=!_mu=Q1b?L>Q0iTH2Qmd{R zdHhTp`Ha|ZOBY4hs8WSv%MR?@u^gbS-vJHov=cT^TERbU64J_BAZ)fV>Nv~a*GO zuBEHclB}GI2Xy`kfyz`NzB`hDCdOxmz!Go2u67)Sq)9UwGqu3H}c02AmqE$<5B3)4Y%BhDnLO=t~ys*&YJK!XF<)Q*U=a*4RQKqH3|sgZWq+!_v4<3P;Z(Wz~p;GeIXO7;WAE+MC3Cgvg}(dKqur-bGF%@#74m}6i`QPt}AJB??WkONB?h8n1SvlI191J(zl7~H&u*m0+XKjTtnoiEe#IQ zFr0RE>i32*;lkFwKhjc-p3UthL7lU|%Z`}eYf8CRJ7&g7GlD!gS>J_p42glS$YX4ionmJPIRPG=xQUoHmzx+2EZ}yP#lUv6-)VR`4^jvTm{C7=J59GC znOP6q-n;VxW&D9g?|@O9;)~y&$hf`giY!P#N(qTi(%ZN9MyXQ_El`{cjS{`=1Z{4s z1F3Dn={0xvP<0VUqEu|4;iA$UR?XGdyCDYl0?Z%A+A_z~9eokEz6zgMynSzKMRn7; z2>eUeKn}RbTA{)(0BN&3sM(KS3J_xwXH`p>CtX49Rka%S=8mW5Q#WfvbLVJP` zkQUs2aA}dzR^RN%r6rkRD#zfq)0(KnnBc0%xL2!4m?pF{d=i%oO||2dk*!lEmJV$p z;+K;#Z`Fm$qO@*S+7?S;D(&Dv_m(u_6uJ)_tCsv3%y};i={8k|DRq{YT7^M0#ms}F zbGfnyrHq34v`s~2W*E)RgyE-Mqh`%;`uZ(>e@#+Pu>`;FQ5nE)cNESd>#IsavNg|o z70ONDgp3}SEdQnIf^sJ1c*4*C|E;?IZ-uj7dp!!D3kirE{b{f`>?Y|Y$KtfY-3r+GOyz#N-Z-3gn#9c1c_`Ii z%HN#X>De8J@v$pKszIlsR2(i9qg|=Lgsd)2iM;yNG`a^W^vCUa$23+JC{qFSeBNP1 zk>2>Yvv$Bm*%>!l6sRzCz*%6E)6}JKA8;!Pc8;x4aX`7cFeQucpH3OzQO>gfki*Iz zB_-Rd9RNLghO29gQ*I&(3aFDhw{n3m59_W{Cz{FA7FxI&8?u57sjU{AniR9}tQITJ zcfPm72!EEX;*dU2;vhdHqP8zB!A{tLLh{Ue#zbf-*pxEOqvy6c)g~k2`;qTB1Z5g2 z88VIf+AT(YH;I_^-`S=@EmG>XRyECQws7gchXK!p9h)<>%aXcOVuA|8Z=f8Z2jnH*?8-dNPtR0bky+pM2H{rQAB=Zrwpctp#hdf}Q-M zTMsbnM!Fhs8DP6onC819d}df<^&t$$nqiN`9n%W%4IF|j`}XDwH36TPA=6+eaU5xq zQ!TnhVrGRQ+T=G)w$1Y6S(tZHy08w`n+G1$j&_7VP&L7dh+pUT96YpWKnvTu6T5lqO6oF0|R9noT}oE9o9L6#FX>E%l0*g&7#|H zaFv9qKZeTd7YoMlzeutaI0;4Xh0_}{wg`7s#)Koh;D<|Ru-pVz6)C(4!pAJ|{WTQ@ z;LMbZ8=-Db#i6-aFiiq{0}+Y}E`@+(tuG;J%6i>Z8$;&0Npt63Q%(tnHFlc2zNAXo zU|00C2Dsr9n4|f8LPKS9Hil8_E>xi|(FK?v3<&DAI5Q1=2)dm{IKPO8Lh7g*hVcfK zm{@@n3RJx;tJo?&v9$P79LPwj;e0Z-1#Y3Of>0j8Kc$9{4eqjw3O7Mwaw<_f+Zd})53AKy)j zjA+7`DsSvCqTdh6BQIC>K!Z&aoo7=|_RIPvBo<`EXZ{ZEA&31L_cA189`yXqTLaR$ zN3JaCDFNU~8SuREyxHiZfFxcVHI?j2L-H}MRECN;Q5b)>3!K^ohKA)2?%V{M8G|Xe zbddP1FIPe*=xp21MQ2Fxz+~}U#ac}spd=~36bp+Yh-~JtrJL8agQ0tAQ$;G6N2WaK z`(pEe&)FxNV?^?TPI}gX+{^_p(6f2*uzAVMH|X@?90*bmIVNHaDP z?!E8hO~koQ*6pTm!riprBWqkTRn@_0i)%j3d&!1d_?JIzC z^e6mg+ZB4R47l8dZ+Oaq*Hc-0qHcw3bt#)2q+MQ*8>LrBj!*I59={2N0GeZ&0|fD9 zh6#U~W4U#JIN^{;G30Rv@3Cms{Bb_AK*TK13jgYHMR=t8Kmgk9=t6jR!k=S)UY&6% z;%{NV(k`(?c9;D)Pq|ey!5TTEgO4IXz9g{zITt2z1_l{D2v*Yy2dY{HE=RpP7E_yA z?!~e9dDfI?pSAHlRJXjk(1kbqP zxH%3gk7C<%O8hBR56>>Bo5MJ7*EsBV88?D}oi9jfzRQeMO3UusqR&-pPchL9Vb9Y9 zfOhtlqPm>kN7AQ#*23TWmGiXkd{=FtHLPSGN;=!s<>b#P7bR^x6~$K!3o(|Fr@w_* zn`d83svCubWQKkS8nbsCoei1YORULg%t2OI+LdqM{zQ+{FUNkW0tRxwnAh~1lNEac zHRy8Ed+QGFOub?oEo@;RsXvwV?4)nS9ANUomUya=Pa@RqY3iE2Q25!RlkwWkGI{+8 zhIWosI$4jBf1XEq1x5{KjZr)R4!T#q(#odUB%ib6dT(Y%Fn4RMbJV;9m0FiYKb0r3 zr1hOlm$M{h%weTeHJA8sA^<7ah9dsJInw**Im%J(Ma=K}!Ix47La_0I|Fl2`CaE=a z-dzjbNi>gHr-lHCh8cP<8V|XMLT>S*=uR5yn)qw4hf<#5GYV%*woAJ&@+#cn9&k;b zLa8U7S=2yrxW&r96)wRGBn0pfT!uQiP_B(om`sH3z^qMLo75B{mxnvqG|d1*24MSP zJp(S#VCj%EQZ_=8p@5)^h$WXWZs*(N?}oUM~&<}v_{fX)ut#_g9gX38@d^-yn&HT zz`5AbJc}DeR6ZI^_D-)t2u=gdBx!c2oe5xUU)qWwLI^_H@fC1p^n|z9I#>qQl_%0y|VF0n7zJT+CNnf z3TA^po3+63%O7=}vyPY-XT`%L^`3+3ficUc<11}lv33ppK3BsV%}TTv3T3;30VcSa zQ};JR?uDshd*U}Uf+Hv|+c}px0W;D93e;Qn@_nbC!u54C_?>SA=Qo4-Ln$&sUu9Q(aoF2VQS{XeZ~Z zjd$uk#3_j|f=7+du~f71g$3I!3TkPFeqLvik5gs1R-DR;o@y2T_AEn#MXp}tN!|pY zf1OlpHEznH1Cqvpsjr#gZNMv`gwd~9+*akTnXruB5^x=&DVMZ zMM$KVULT~f+-k>3t=8Gn`hO=mT>hkzyvy-)k`$yKAaDd;XZY;AM_N)eHIFEgzbLk>fT` zdo=Qhi;hST%x1Tg<6AakI>$B2qi{@=u-YB#UTNxAR9z^yKMrNv3S3rEXDGwj*ZnPX zUMEsJfDS>Uw=y%aP!ZAFOu=jud5yf**BWafb-I7g zEC>U;Q9dltOTlbD1)S7lfjo$pfKNZcKgU>JkEc(Tn3Xy^15r zzalHEA4Jo3_O?w=gqHG($6IU=^z#DZ9T*K^G9sq^`k-L1{$=E1jk8ZjPfGl!@JZ|o z?|d!-g%9Ll;ryS-o_Xzc+g(mHpq~CGbPjWUSQuF-ajZ)#WQ%oU6PQ3xccMBE81*w;hjb z*0hXFYa1Ys!0#rV^bbI%R>dLk+@bd4r0ndxansm#Qn!QKYp{mOR>j5T`37p}z*VK%QSr20w^TYG=rr#=74mdpVk66HGp6T_t%e8Egf7+PVu)db>;YxUu zJEWRGn^LQFgj7q$%2mmRH4T)R3=!kXaJKIn=w>$1n$r7 zsMGJFHs9`7|5l;XduJftl$AR8SosfE^P-ndeBp9*dt1+U_QOV*VaOOX@L_+EpXghk zD4`d_#oVq`Aa-o(HWziCs)w!!t zV=$b4Emv8qe$|Vrk1JN|UNI2*@%tiSL%+Unc6pzOdH=$s{aDWO#*Hm4OK<(roqr0E z34lmr^e+wsts_Jv{Tpl~In^(TV88%JM%0Wuq!kJSX@%e-UM@;^oD=OfAU@$+k^_VF zgg`x+1`t7;l?KL)@@^%pC%fdi0Jm$F&?_We#0)i;_f(yvVl@UNS$5Hoh6K6LpPV5& zsv)`p4Egc4Hu$zX?Clbox%ku%4S@2ru7yijhfh_>I~!H|wrgS@7Lseb{7DXDHat*| z3|7TN#u{%S@k&?9u>2T&PbDM%ym38QrGWxobx?7>#K6j+m?LGXsiHj2w6|^Xy>TaD zCmFPmv&79P=IUKDbf}E@CH$Zu0%8b$Nl(S$4yiXK24)q1E-4%usXHa<(TKtHyao>` zgQV4yjz0cV`OjS`zKm@#o_=SZ?tt!pF1T9Qa0<<6?m7|C%XutaXFBt%jY!}}N^syR zpud-ZwH7-lib_l8Bp|X}+%ZuDAaE*#P)|DHkf3n&3@~TI;}1Kx14-oVB0t@hwt8D> zEyt*(@deZv1GA9h@(Cq;@XAzlYxPB?=4j#sqPd|*l>mTIPs+nyKnQxeKR=4xu-8gP zxgZo4H>3#?78osF5PV4mO)|X$>~LwZqT^3_j0RSYaVBU$_||%Y zqHHDSBWZN%{P~7zg5xqgO$vImoEIs6!m-oT`cm##sS}x zmKj%hq)+Ii5>|4-CTymF;9xa;AhR;ASc*SqiN17jS!Wq*p`cEj)Dx9Jg*1c&EQhp8 zcJ7wg_2><=9|zgcLF-#%72}$`dh5<{OZ!qc`RpxFyKQj8MeZW*lmyHmUM5B*ZDQZt zpzqEz2B`8_EY6LRtnY@)sc-B-mu6gKT>RkcwV4+^9Mtjb3E!-M^{KU@&Un2$-|ky< zeM_Bw%~v5Wb%#tZWQYEdAw7HjsgYn~nje%he`J7Uns}!y<8bSTx^`FWnLOZon~ioy zKUl{eSq+P|AmNnx>lb#BEyiEMQl(RR1@}4n+C`hja|h;cLqd&c9)l!lK}$t6i($e= z+Js*c&uWB(DFt3R&^OAgDVKl^Y$`D%1|bPYSUxz~eb^e`V{wonGIu8Z z8dkg>)Ii%MgTZ->S+;6o5?TplipBGi? zm;HY^0w=8(KjQv?TK*~g<)Wr+A&zpM>#&)|+!|J1?NQY|0j$fsgvu6(M%CSEK32H0 zEI>W>>=;QrZOE%?Pj}^9`nc-aZVsUc5C_<0@^-)QtEum`9nE{C3;RT4SZbSvC-9Bw&;=%%k;##d6~Lgbu+%_GCv%J6{P-S_<#qw zq-b#H)ilGo6bSnxn>+k^lAbj`MboSug$(=6+^ju!4*c{latqG!U-f*!?2LON9-~`C zYC>9RW){uwez!udSo;GegAD0lX?1j%&W35)IWS@~Dc_Cndc@zsBKgHOP@OfjDm{lP zgcNpuND$U>-kSTr5$+OUEA2rRX)mZq?I($^?TWX$g#b@S^})}Hir_fF=xi!`KgD^Dgq(Kor^nVHicYz~vGiIWYed3>Y7G?cqF;VtJqF&3;Lg zQgo6!>Y(EZwQucb@fgeE9$O^TM8|Pu=rrPAp?QkM@;QnugJu#rHk7)E8DJc+!u35> z@>NX=^K_@l&_UHzetRtVXx5eHK=i8Wz3Mepj6ld&%_FEy^pWwKrt+w&9$CNz!A(E=Rd}ik@Hx)S0XX? zg@KN&cTJ0vcz&RSBebTq5Xomnu*nFZB2UFr+x3%ZQ;;jY?K%R+1O4r;0fb3pTQ}&Q zpO|mwY><61DPY>(dIPIZ5ti3uPe%Dt_GC+m{dJL2DCg;3%{$#$_ zc42+QgC1=*BwfE7K=oQoK%BdcHOM8Q$=(+h6cIaSwRx7#(78ME^! z9!gOV3MdtlZM!ZW3mD`qG2zT_Ee07E3Ah847bweA!~)Vtas0$Yi~@zu?=m8MWr2nP z4{}kzJLS)@2&Jv{AyewAG?&zZjEF}(WTyEy(Z(h!0~ zjo%1(%vtuuCr#}5P+B}^JR!nVK+U$Rcakx0IIL3CZULeabi#M25}AT>SA3w84E;!e z{0)*8KTpwuaRo$OEb87x7irH>m^}N~O3-RWAuMTHwE+wd*-wd(EIyd;GwL1XK|A8# z^2SHoFDwVSs74S5g(`bHDrH|PsjQ5~U%>hbrf-?;MlW~Ayb=o*wGv_c^9;vDbjYz` ztGCEQdJUqkcd~5&4cgvH=xRX1rXAUg8=I4(_qWRaMDP=EKmMtya%6vwl|USHZPRYm zJr$=E(9o;hywUKsGApkt5#qecyg2B3mmZHhQ}SJ;@HP-DurWV|B}k-?i(EyeTC+V& z?N@`auP0Jc_b`6rKmk6>UP{HEI4*~BYOcMdEb4)=p`V?cL;Rv}QP)7rM15FJSf_zl(A?_8$J_S^j zsE#Gp*>hS#*h`w;ie7eh!sxVx+22%?(|J$wc*EPa&!P)&E?|g!0DBQ;K>$p5WPAPV z-D%^f4cWnqiHLe$JpCcQLC&InVyl~;m&0QwbA(wvxs!;`zBOQ3hvckGcD#a(z6z~I zuKMx)HHgGUz9R_c&}J=|3JGpyiv>ZHjIX?72}k%-Sj;zakzCXz0XcNcYYG9SFmR{1 z@w`BZ7bm&k-+l6eaKwnE5*^Rzv;|W?95M*m2KLBppLy)!S6-a}+_A3j1l%uP;gH{N zDzYF41==-<(O-dSWUk1I6_RO|dVIZ%@5{(k=0#N>bU{MpMZiZtShT7WI3pa?39sax zE4?T`s+)yuze4@{s1HTxIOCV%n$yuO={{Ks_>wtns=@sZ?~q`;VIXTWv!VD!*a#@Z`_~io6%7FI zsP_@#^IQ-)cAAfUs$`9J%mAqy79Q!ZztD4}2m7@s)Hdpvc7Vi&Sa;8l64AE<+pHc)2UirLrfDPqu3D7QL1N$Fobq{%83=BuwTdzE#Qc)iGTNgi% zkn7xX8up@#&*_`G9BFW7rW(m{+)HHiMt(r!Bi+fym9clZSR%u#l9czpb6$z4-lW!o zZ6s}rzlM-H#>x4nu}fvmSW$o^D@LKB-W)^=@Sl7uL-}&=b@Z&e2w+%IypRYbgMBZg zlkFAcUv6ppc}nQC9ZM8T7#)di^aM$mpOn?Xr83-BBFY9nOUXz$2De3u>so+|{iZeP z(XQ}<@JvVnS#Ya+bShFR5-dHrBLvnT(fDswX`2Iv1oJpd=tjG5@0{{ZslMG3mdhN&3HG{@vR5Zz)O0=&L3|0)iatUlP_=j@TEt z`o9Vm4}j^PRzAG{&wK;_)M9-5>gD^-eE+WguYC32>i>JnD3hjLi_O&>2)6~tJN)(?Y1y1?~@uvdjL6PMp!wZNCb z`|;7)lb6B%T@PTR`Qqz()qpp7Y8&hFc<-w#8U0q)5M2tkl34+|WWE3v-E!}hCf?J4No=Gm%Cr<}nfjOvfQ!V%e& zFfH_+zeDhp-hW?LQvjd?=BX&n7jk*H%UuwSRZ4sH)#$))S*p&umKT~@9xm_XOfRpt zov)5+O#zr)6Hw2TWo(NkYM4}&?3#O+D6}d}wY?|rtwEcez#<5cM`ZIjE;gc0VN#rp z=W)7J^I97-E=Ts)y3{1$`-JrKLv_oB)v-!(*5AXKEm@J@-3+~gzzr7!-rK4aGSzPB z+4)S7ul@ov3EAGPK#QxR-q||o7?bZ~|Cs9?cs$hkUW!g&1X=vO$70_4prIfmj4h}a1qlZzgw4yeKOVHk;}X7;ofPF z^bQ7)kmV~&PANBLi@n}pR5FoS2lP=$p+bs&-nvggPyBqt*TLr^^8aOjyvhi)JLeWhQz>`&PAUn zI>awPz+ZwuQ~LQ;4JX@&brtR>y|X?2l>$t`c1ZbB%SCf$U2T`z(}0MEF%qzv2P?$W z%CaMb)s^oN@Kg7xa{FS#6>?6N_Rc@IPn;BTwcfX1z$NaTWG;Zn)hCdZ7ZblPtQmqxQFb2tYD_FZ@(FBtf*XT)?VzWAAA zuD(DQh~e1*LXM8|Og49ok;w(Tq){C^c?B?9(EA{Fom?nvbge7OLB zKd$<0j5_|Ml@$)+^Kvs)7or+xyeZ}AIRm9W7dPz4?dQ4SU9%;QP~5vMqvk;-#&(t@H62< zGB{f-eIFyCsmJQcZSSQPEj9lZlVmd>ZZIy3)&K6gFn^NZokXs7n}_YcTcF z)*L^yBchaaEVQCMNs=VZ9UXW^B!UYhUiv|&CxFCljfxvN83Ws;w_H~-P58tR$e4#~ z+#Cp`sg>z9c{9g;KQUe)frYb<(Y$LbvY)OYxg+D<(jK7UAb&7!2>Z6@nCpH?b+lm% zUl$Sm%^)WyBa!EqCc`v7zDRr1=hadw#LmdP{$bvhcAT~^No{Y6qN-*pMYs=O7q_)K zr)*;^k|{B8zFC{DJY4jBAI^(x9T1;nvA%Et9UDH2aS%yBmg*qQAc)3Dzx2^ibJcpu z3hTKRFxJjx!rd+>pLIh+Seh)BL1ic^0z?4lD(UTgDcMR7-vJaunfvbMo^Xa~F6d^3 zlwqTBu{))*hx0JRlFm95v|R7HE#CF8*@~y|;90|r(FwI3JRV-8tw?nAt(mIxLEX{7 zvf~v5yNO@vvxniGULhc|#_z9EiHm9!zZ2LoaF1m30;F-uCKpHSt@d>~E8I)`9zT&;aKb_{ ziiX8!6OCag6i03kaeC1&xT5DIe74VC^^((-Tqv@{L_w2la`4#;9tlSSsn`pFv_~e? zB1K!*SdI}wzHiX!L330UjJJU*Zqx!3(tS$fdoNvUPC=4!ng;$rT)hJq$9felP>8~v z+)MSC=T6-sj&}*pz!5t9J3CrVl~OIErz}Sf!1n5hTseB$8~89+NWGRDVk6Z>R#Ofh za$@zhdUy(8K=7x&1d+S6rk%=)9xC}Zfa6RtbYBueY$~;}Tm9LZK?k@xFSy8SRF0_Q zDgARk*W${bPa9tUdlHSUPP>XWQ2E-1eMP1p$wVH3tTdsi>Q)jg*Q;&NOv{L*gAS__ zl?)oeC1}?ZCw-!Fqw&*qpJlp(y`)dsQQ9vmujp+RHO+cST9u=?FJs>v+FvdmjgH-0 z%FwjJL^vF{;exU#1T`~|0bAoD6Dcx9=)9a;r1$yh6?6^W< z>ZOJh8Ktrn(FP(fi{aBOw+}!dOIq!Qu$tP(XbVR6*0+dP%Y+a%@G>neR{1J~S~m5l zX5vR1@5KwN^?PPOS!>@p(cjik24O;|rOcj|58HlY5pXb=oj%yAtnL-^56#*13OtJ_ zH;751t|f=it}Th5F*N5n2I|Gw@)W*A2&PxLVHO;BP|K1o)RtE&F#9RbHB$H6#kCpi ze0%Mbre1xfa>!VIn$)arcAKtHv|^5@AWgpD~*IgD9_vTp`1>r zj(oFLiz9w)`i>NozRk=vRW`gu#~`<5Pk+0jnas+YQ|Qy%u^50A4Lr<*BPne!1Y1Dv z)4@HE|IQ3wWg632*yn(+_kmK7Z|?!MF#YH&i$GesR>;Vj^+DvQUOAg?u^F~~Y);3S z3vE;kGQDUZM|B7zzorT`G}~ueG5)3P z+#+ej^QS(M_4IM)9at~s8fRTC*iBkzetzbl_fdRjlo!A-K7(Opi6zG5uOx>9uWM=7 zlF~Lwy6<6FL09;o#26jq2jS-y-h>X0VG=gj@3S!dF}?r#_OOCNdV46VEvN;k$@et_0Wt49?&(QvJ6_SEYiVYXhq1$ z5L&XxiL(aV3Z=^jSw(?^meUTc%11D?BYbWudQZ#jLSZsXK(?(&g+>9D!)_6y|In6w zFiJRQQsja9{p^qY7l_3UmwO7`V{^ajhKyi`AGfy?Gr~7(Pv6cIp#3`s3HKRCB@FAI zkcw*~9Yd76#(?VDcL2eKKf2=y0NZk~B>GQ25}aQ4JWLwL{XHA-{`? z>$Wyv7wJ>UpSc2$bFpEtj77$`3ZZi*-E`61-0E@suSzYKszlycy4YubCXY2_DOPI2 z5EW%w^~m3Us*hgKHLgS#wc(c{={yz65tMkaI4U!GDh9rzo&C@=Im3Ro;V4>lUex5I zV425~^@}+zU;Q@D_KAgCHJlQ%RDj*ddvLG*%dh-DuiHvQq zGKJSAG06NBab-D}E-0R4q=#lLdgy+XN>Oj^a;~aV#K7=t!_sx^pIP&_9Wf3MYt&Op zObM+{%}@hrz`owT@e*1O+ip4cgWKK%xja7NWTAy}B@-cu|~Rj)28d-Ov&iz3ni zt?al&8SK2SA2VZJ?2!swSzd@&30To{Sx~iqI zGZ=f|zJ(lMC#4J%n$YpuZL zprXV4O%dxi6ExjSPr|YN65<)6iP886loh7-%u#p+4ATYcNR@Oo2iEW02&p5FJ9?ak z9To8hcM8_bFGg#sBhY3qf=pMmciHYs6L}{_Qa2+jg;@^cPRNX%HXNiC& z=hIZ1hAY0rl<%#25pCEHI+Fle+aoFbl9VHj#tss^^0lP-SdPA^kcQCZ2ZKd6ZfUNA z!UE0U6|jON3-Ry{x)xkS=I%fIc2p5Mp%1u91sxpzEm0lElIs?oNTs*9chl$*^?i82 zWj@M&$ym13u0m?^bg%>(2)9rQ?s=EseM<)dbV7|_SdF{m+-Vo`!Q*g6798?@ZqjhE z*!E2X^EO7KCdf`Y#@cV#LDBkE?q>C9IVY;f$5KeHVs@auG|i2`s6#f2@)^GRGJ6 z(w+{;7%J|cIcUSg1@%<3DAo!diy>AXNjtN2@b-$^g`$ixuLjC zzu&W_qP~}52|W`%g6dh0IxMyrHU8t=;{)y)E(tg8iWwNOpo(tZW>H8$U1<2IeqzKy zp|zRt_*&VboYUOV=oMyWx~fO3`HSw7xHnt(6&KRrTKkREqVGuk19}V0Y2pJC>E!5m zD=`b#p0I6Vas=_cMe|3<#xXr`(Q!EUS0L%@qt^Sxn9_OAx4yn_0!F@Vl?7#T?w@I* zw)9+gtUC#Z4ocgS=!x)0!`W{lq=}gAh!wT~tv--N3T%q%d>NLylX|pM%zgu^3)%?* z9VYm#hTmU!Xb5qp!d)W{kS+^ERY`oQJfX53-}0ULJzwzaDXgDVp;wJs ziiM-`-{cWZ0CXCtzhJleLmX^8Bqm_9&xKSJx|=Rv_<9U4y{oH9+cVUej&?XnADHP0 z3{l8E^|mtg-D`k60xB3T51A{r*aUM8aEyEVDGr~$J(G1WUuVAYHC$F+tzfMhpNf8i zg7S*qJ1QMwM$@`aFZrgoi2fD%q(Wvw$WL4?xIuNeH!ye2>zj#}r2R+iw*&pQKI8Z&R zflFjdRIV>{86AlSz^tnC;_W*hig>;P!N>Z5)c?w(xHH&NAxQB6Y~0M8Tx2|K%v>P% zD*!tuGb<=2jTI!GVgmAkSnj!2b$KtJ2d+Sd+pCV?UMyzX4_**?ab*>;Bd;#&B2rzf3qinD^n35OI*UEa~&ep*q{;r-EVGvQEY z8|u{E2Ha{MvTf0U&A%Wuya#Ry=iFz%Y{it;Gq3(Be!pMa?f_m2Lv0Cm2Dp6`!Tn)X z3W+>lc_Uijv}5l;s}hKMB-*RVK~PV4H4F ziShKwU=b0R=rDJ=a-lGXP}irBY|tr@5kHo60ds}@t}e7NWCo2|G!&5$l)r}iC~Vl+ zF$vhw01D0~f|z@7`B=z~0u>WH@D0lb8zW`0H>~Iv%fNt!PPLdnK0c+m7JAHgyJs-? zp_BRPUMHqKKDbzSe2;RFQFYiztL_xf?Ka0d1wo%KL!^m3?E{FcwfQFXQ5G9@+cuIj zMV)9hoM`^IP*p|v> zxX6_nyb#DNn4?MNMVm*A?kzgg+>vLC`Fw2AYkV=A4b|ZM8UckA?-NHgW72jcMSS;dSBx`FJTCF zgj7^6HJn~OjdxTm(v;mLaEjnQ%@kQ&CIKO?E+5j6U%x4@5YfT)pjgqvPSKl%FJjt{ z^y416;JG3)Prp(RCCgp2RA?!Ui6^LN*wCs*o*r4$N>`!v=Vu&CO`8twPWNY&REoxU z(V~K)B0KtiDXI|LGe8y#JBCoM?0^e?Laa14b5eTQ3_}ssnQIh`K^Fnv7SW3CY0iZr z)J-;!V%f9X6osGQpTCnwloNC4PK@LY>l%z z$$;Q%eEscvKU}dp?3{!Iy%ZhJ);D!JKQ;ht#qY-!6yYAETr>0q5>9>-m(IXvd0(A@ zT!rv8yl;BM=75^m{gl5ns~e%){*uK}yG$CALW?rT9N!~7RZh>-7)FB8Fk=^-PY(%i zL*{~yj3P~Rx2(GV*#t~7vMNc9)Ji8;rRFmx0#jcG5Am*vohw*A6;`Hr;ku%N97P-O zc5D0bF0&?D&3U%P?@BrD>Aa6Z=kv;(4|>88i2_z4y5;QG$2Cg1%L&USD29h&MYxZY zi95y)QTygDPV` zJ{}o{f?&=EY=W3{j2O@n`6oKCFM2gv>XHYV3Rb^n>}&cR0r#_)NRa{~!>IOZ5et7@ zIFgy3f99tG`%QxiaP`<|3Z)ZnRShhmsFy!>mu=;ktb0nou$hI(M*Gi*VI5V0?n#4T zSPU;h(;`mqFwuI|>zp*f8Bc;HjJ=5+%g^9mT8WtakqF8%V{~>gkG9Q32wDbcmcm~6 zFWdM&k5y+^_=GvLDW?7_Sn9k!r>;j;pyZ`C*AW~=ace&OEhfHiP11+;r*E!C9z&Qs zD)fC>^E!LlZghR%ehNsKx31X0FYCoEoKW~q-L$j-B;eE_vt37}UTdmu*Zl27FPYKk zW{q}4gg+tPK{)f5!iEmEY7>p5e4a$x8S|FnQ12m&={8-HQJ|<;PWXM@btnMVHz};xKC0Z(k+_U z@7{5%q*`vFxMl3UwH-K zhydhAyRh|gU%N4c7uVOW%#^-|KtrrYcNM$*$k9*zcJMoY`j2%IkcBfn9fkc%PL9fr zc`%CNqt*Cfs^N1&Y&5WV9a?rE_ z(2c2lu$aa+<5WGJ#$HjZbEJ><=x1lC%kw^y63_nSI-Kg@O+ZBb~1H!GQ*A<|Dz0-y{M1G02b@|9e_CC#(-8#RU%e1P|FFr z(lyK@3!;m*18+HBxMy;A6n%Ytz#q|VIuSgBJdv6gAZEP=Fe0A2t`3riD?b~NfD@;f z6)5ATg>x@>Z@#W(1|5e3hAqwHCRzgheL3FHGT7cxvwLA1D=2UXRELnlL>yV%L zFVbGrEyZ?r-EQn%iVThQWAD`1CUlnu{%|2}Kx75L82^%mk<|?-*G_`-XndN%A(+dU ziK`f&7~wp=*q7&QAU1nKfv}B4UPXeY*4A~gcEXgGZf&M$R>m0P(6#Hfx#*vR9 zH39U>$r36P@+uk#fwb_aen`Fc2)X3S^yLkBlhPy-_Ns84m@g0Eo!EP->L1gjY@&W3!Ocoww^xNPD#FGU)EaV@8I8_+@Vo?tUx`?SB?mN4a zUSda&dqBd230$K^)iKrUfP?mg5wj6F$pK_y>F2cv!2Ds}JTL_Xx|1Ps!m%EOg#=^S z*{!d`i&t5MdA%-jZ|^Cv#XjNfAoCaS%np7`3*aQmWcG#OUV9jse5DZ~Z>@hAs)L2+ z!}}tq*~7yN+lGGN&u04_v3p^aza!fhn`|!VHHEgiDz-P?Bjz@yhlAT;V{TntMai?h z@y0T*Dxp^wXw>NCq$xi83NOIN=AX8&GkR&k^|Q+xL+)fTM;7ceys=$?>?C$zJ-(w; zGfoFxc3o-L2nilzxkxuEjKz~V3RyA-)>q(l!SVW3|9mzi94&V&?=o+%pF$I%JHb#i zhKJ+FC@fLD7N)UnVyAB7C$a9IwSM#X@d+dgkt3PsdXbg}a;V9{Ju{?8}s3~{~aj3o{HX%Md|9nDP2p3YuVX6jRSWVDV+A^VtTk7viuv+X zwR&^8%fd9`@R$(|=F(*iXwPlDuSU1Ipl2>*ku74uyuMI_qh>Z@b(kg+nP{Mp#8I-v zjNgHv;!Wt$XY>#VpZ&h%x^a>(NlN7Df4g!}`PPB#uW3Q-c(d~(jopBUAP^nQ|8YlV z;pu`vj;tig=i=8IZ){|Aw73mlcLK4I$M2}u^}yJn*XoSq08@SepbDih127&a3XPkzQ*kH;@nSZ11*@u3)br_94v11oP2Q1AY<9D3r9-; zIYn|F0`f$H!+G?YVh1aE+4uW3V}-2oM-HT@g$*%Gxi70{pFZ<>cCSSD&N^($MfZ~& z>4a#?h7gxmclL6`s0X1k#Q$2?OMK zJ+pC?D=UXn-CH<5S&#h}h4U$vY<$2*1>}ZZUALnyqqN$=ACB7B56BS=a-sk1Y-bQ) z$#MS)^Wg%8`G8Wu0iazf$XA(@o0&BQeF-0(4U{GR-}kkE47NdNOh^D1PX?DB6cYge z0CH63B;(-VW#;7}18}l4|7C%I!p8v_;4ugUDQ{>0@ITmD|B(_|+JVRzqk2%3xF82+ zG7gY;G-wYD-~er`+5R0O!zC1kAZ6qHU(yJ7#y>{V=b$RkF509T9F$cKGHnK(fDP2; z-%1{4E>Pv)asEdofb+lFN^h(IC;1&xKn$@(|%oE;>-;s%WYnz4U|%TVD% zBFG?v2mhz>f9~cd*(n-aAXJ$p8tX$SXr4tL>zWb(0r5q#Uglk{u%7wy9Bb`{%@^was4a# zqVxWXBJli^@{Y^S&CCU=2ia(Y`sM_o7od93VEv{jJuLaeECjP1(92ETo zYW(ko|5MM-%f`&X@&DH2gDktb|HlCT!XMl|pxZ6w14V%g`aUP<`v6c6p!)?9u>C#a z06imS;Di~q-TzM8-#mJI(2V!`fM$Hs2gLMY2j$6ggXW19bgMvhAmecm0s|T)!^I7P z5S<;=!hi3YBV*?S91{ZcXK7z3W;`~K!8jXeuKpq|fAwu3^KsA-H*d<-_5TlVLG%Z8 zy5w*TQ&&YQuu z215hnUkg||Qpe}$pW2@UP`#qhz6zWwq{wE^XWc@cqc%#&=8R*> zt2T2weE4}?lLhZV2&mbQU>?X2dE&+dnDyN_X=Oj%-MXrE`TM+|Te5d`<{D_E+{C;b zblk*@9Q=M=I+^rm+xU42#H}&Z0HwzV+-(fqSRK{)EG!tP8R!cGhZ$f#ye%Xq!^&f4 zo3Iv!V7<>rxaBms&yId+d+Z6>eq4_n{h}$deXVYPJb7vm1|L0D>hU+qwHkf82yAHk zP%flJBgd~GRO4(vtg4q#ue3~tEXznqvZjn3%zrqIs>#~*{_GpOwwVInW z=Q})47M^NakBz!NZcwpr5Y2jbQFyHssuG)Oc{Vl6ZR`wPbXu-9Z0}!J?zEuL@_uJT zys0|W8&%bUA*nUlGwEEsEGT+EXKxfgwc;}kTTNO+qO$vI_YH6gDeUZEkXjZWz?tT^ z9^1}|2d3c0;^lk?_R1m)#P=ymZN(?4DqUcalI-kI3+Zp?Yh9J~M*`Do=@9hnY;9ES z*~UJ?!slaM3M$x_+4_ph37EIb0J(3Z7pq%6>A!yqX!&i zLLqGHxG8Tuf-WU0PGU4N)9~M!41*}kL=U0Ljb|K0r8xV5`Yh>+BccYL$-zYTF9#$D zev8U}!{!dAKT>845|5w-)}i2gh9YZF3s|ubw$p4?$LYew+)<+rAO$+TPR)iIgKCPe zzLq#Xk(73#1gJqQC8;8Nmdoq7)0f?g&D=uu%WGMtVlWq-O8pL-hzbEWhdu!?$qcCU z5BV6jH!FVv7Qy#E3CN`KIFM>ot%Xe$6uOHf^VkSCRd)z!b&_=v?omt$0GYSdR2q34 z*mCV9k@&t^^CnsQ?xIP=kQ7T)>@?X#t}qz_^wA{T&y(skYW3N)HSMlE8KXi!_9b?S z5_4effr^!@jNTGN&uHCssFx|%9!WB@_q-X)Mglv)U-^wojtQ=oVI;-(y7*LXxH8zy zS@oSJ6-|RbC|6HEu<)gIHgIH&;eTM(%e&~)>|B(gVUnGGqd0Hc^6HLsQHTmf4 zUToibK;ZsNbzQU~! zT6%3>XM9V#2=ZzY=zRBZR$4r>$DGWj5CUK=B5n9b5Mn|-Gkfm{!=Uoe71D)`vJqSY z{km8-16|Kv#Mu&xchzo-j89VnmY*;9{d+49y5TbFmA1KUhtygvPH88oykpX%&Dj@q z2(&DHRHnAdz|^CvE&XY&0$fTu!RS%2RTm27SFXkY^GooIF*RSD=^U_-D~ew+?p66{ z$$V|SBf7TV@DD9&FT94p^i>h)$h6FX(fa7n)t`n4Vog%zT0h>vF_HHn;<|KJz!RiH zmwu0~!f=}ICLtjYcD~B=9=yuT-H@A*2+D=?*DL1427OCM@N8@*nWjUE{G=Jv9NbfW z<2&~uPJG5GRmm^WnLu7luh70=Y@|unk7Q7y=A~L|0xMcQZ!tI$aMRuHYx_k z&Tg!uqt~HLj6y#%VrQ*iwXQ6%K6qQ2aH*>;3|H&sV0aja*1O_mpW0e2q@#Q@>A-2E z-*%L6QvnMH=2q++jBX${wLvKX4CCTkU*5iQ^|zGz!1HUbc1>(7=NAHL2?#6KK3(qq zxoqyMiu1oVsdFi~8kR?9H8wcf4*9&eorckh3wL4yuVSH{8g3q}OI}%0!KC}rU%Ief z7r^dW!-$fLC?ZkLpKxg+7-HmN&1Tig^D-isFQ*^aq8xC`ii3W>97Ja6PP^UZj-r%>geeEZgxPur5T zHpDs#or-^mSk9YOV<$z`oGlP$DTc}xi8K!c-?gm(<3zbtbt}uR&8t5{ z;SMY7ht=5GV*LohP^$D_FFsYkS!bbGW7^r8C+9Y{<+jP>F-+X*sK4LRH`c>DU}CIF zrezM25!SX^XfkKkns~>yR&O%8)rjlI?ijtc7b6~+1qzNB^h>K-0QV|SVr&Vh79AIJ zjj;VgorEoAQ_#j5NU94N)G1PK=m(Umn|Yn|XhZ3ES&uYeOv9P0qZNl$PBM1}Vjce858>aBACcyTlAS5Z|iFX1e@Mna+L<^>t<*C z92Lu0Jfyyy#p$r}nUVN4L$=RY19lEe_fxg**EEe4l(rV3;18_opUQ+_&V0mcL4VNs zbxgfHuHok4H8e+c?No!JK`+kzR12VCAl0^OPU+e1Etv~2m7G8H!gxCR2L&qGYaW}S zTi|+K8V!R^^EbTU+@R|%9IP%ytH{rooI3Vi8zk_*)y5)@tPXkD*yYaU?KIr9386IX zZeA!v(apW~yA!3mJdG%7F`fI~0(M{@!rehWoEXcW)^JCD{hTqfOkKqd`gGSDKu2^V z7e(DD2>l56n+hdDZrT;v+gT01HN_#^%*2u5SjCpXJ;vvF%DrsX5NpcBf|8Yy z&yi)6uV*cWSbNFl+Jl8e@Eawv4Nh15V69R!TYQ0H{#O$#z`*>X@%R|5Bs8)`!NBm3 zYDY|JI+8^0@5JuGB2cGcNGVn4-&Vb*=A)ve0l{EwKo(&PXI{&>U@$?Mp`UR?cC!-L3eff@=>) zXAV`&G@M2(Dl`U%1E!8eXOfPe=S<$%zNUnu`l|y1ys{hpLLBO!nAeOqd%Q|4Trcur-LbyZo_766V-fD_!jsHThg9z%=p5cNyq840Q9PTKn3?(vOH+-z|FV$ji`<-< z_RZL!{VLqXJn;$?P&_Wvn<}Ll?dA_9cn156`>Gf!#@CX>W;a`9 z!IENoEoVFog%bbz0c*srboej9C`FSQz7)<=$uAcYAGN&Z8M=TAw}bG^`9cFzNhEWQ zAHOwfk=QF8-Ym5O=tMs;u%M09m9%6Jt)W=WctplHPdMTG7f|mBt!q^d&#>*T12^2S zE{S&J_-9XjI$X6i^UT3>7R}|HzpBW+w8p)|*cfTi-oo|G>ZAp4TDxZjvSQrwt82aGj`$=&b>e{L~8um1TAbzX$zI^B&oByzsT2xP|V zbL0MrYQ(V}D}dO@jf~>jtNRwY;m|_v<;Y9fAn3I~HjwydK_WBpq_&V{ix%na3uj(eX!VHhkaYW~*ME%gI(Jj1{?&%jT?>IkLB%~s@dF7k( z)rbVSHJ4^a7E@3r_s%)}zU2tj&%5aKjpvp{&0Yd>_~3_N7E4=gLIgpj!Sz^UbW5 zc^iXTjpg!sE7J*|cQxrv9k4yiz?AdB@e9jT0O9R=ItMNxi$&1=>Qv9I#kD_srM2B; zk%fsgZOEp&mfpDLO~Ov<81uewxMI6w-+hcjz(?^=TtHNfeVT83Yq|X%UUU0e|HZ<< z!Nqa8cVnMM4F4r&J1nrzx8`k;)V!^Mx#QTKbk>k{;*86(JrGZm;M6k~Dv_kwGIp>uZ28et? zmT%Q(V*eC7{678^45ZNflbpk_PCR1xr#mO+9`jzR=XuZPF$$GsWVCxen_56%U<;gY zRAJm|j}wiYI36w$dR}Dj}IX zY;*%L$f5uKo9ImUx1V|3d&Dy8de7wFgF%N1nF;rpMB;JqJ_VbSFX#fe=cVJEi1+&s zBF`J%TaGXG#s^4BNf>}jXRlt=`pX|V>7CV=mmVoUiToD_$FiT^@y>cp%lA;hczx8i zj7F!TMk-kN?ZEf_X%6_9AQ@*(a+ zgLlUWKV3e{+vx4u*bw^P4v!(etIBrnV)j*k_Pd8!AtsRS2dMpB?;pWHyOY7aKQvjN zDNp*gA>R?Lui6s-RZyMyfx@xbKtKZsq2Xfv2Tx-I5k)`{&3}bsgCL&&BSMoO2#yNL z!3)UPNrof?fnp#d9!?Op17el{KzI#1HyI~8fcYO=pZ`D){{?Mj&;UV*#d6YLJ0Acj zNDTz1uz`>zZV-&d#mw_pR0T>#OR1a0M+1R2{|zMhPcqs|5I7112MDi#1tmlU{LFL`$~eZ=^5uJSD)Gb8WgF5MezN$?6f+JumR{b( z&eu!-BS7Smu)3m8%O*#k*OtM@G{@QGfFq%QdpB=hU{AM?(0R3R_2tAsJ6%HLC9nrI z@bx6%YHxCldx=y+SwfOveZ4DyG6e5Enk+?y(IfGMN)^!h^yglYXnk))c(eNn3#MW# zG#l6*aKo;E8u)$};C#OFJYqIS)bsOv)A7eHk6Z(pB1MwjDr;1cHawc$4P9z@QxS-y zB7<5o6Whz)C!kGHC~yFeJ5nwn2fUrv_PyPHrWCrZxdcAZMG-fRi;T(^59?65Y1&eK z4}(qfLC9~1D}RY*`H+;;s$d|Nx}qD9L8a<`{}!2zZ9~=Au<|JS$sEfCMXY^Js51E~ zwuAJ_tYOwft-8AY3a*DiTRoEd*Okj^U+Zd-d{TuBPN0iaI~F2&)}fDjED-H^;FKO7 z6`cMoN^JApuLV#DJ9%T{K`jxrI}7)kB}IJvVu=i-y*|Qw?|3K>?;Yl=yZhto>?iXPc6Kh>IS)}ZwJ zR}bYH(I8j(Laq@oPEUD$cOYsl2_y|6Y1p`XD!f%p#|?NfML+|I&Je(Sl;hVAES?A= zE<#5(mqp!Tm2`eRi9Fav@kAkt3rtc@4y>!fXe8>dn8er28%0Y*maLdyU%Xas(3viF8 z3PDHGWjdpNjnKWkzL;06qBaTzC7+%=aSO=X#n*DtV)R3LLxD8E^^r8|ssOnSNT1fJJ=O zr2TRc=V~H@(%0Exe)Jj23u2n~U^VACa%dA#bR#Jh&>vS13T_fd zMZunF$LzLg86WuaIiu6?9I{d-nfCLBfu#?p(SA;Hqt${IU#WYYTRoRww3}7}f&C970#mb@L1eB$Gxcj7iBl$Bc12Fp~_plph zE2-B7)D;bo$OKW)Z&#Y9{nWc~uPTa-O>Y&MoCltCka9Y$VY6fVB$%~M6k6E3D1ifG z<&|V;dxa`l1;auNNt`-?KX@Y)PsC0SFS^b+N;ufpI$W{BnxJS_Yy%3 z;O=)*Y>$cv_X;SC@ZDADK}lMdU+5m8Il_X5A1F+YH2~BkWujtGb1r$T|`LFa#BXq>DO1 z6B=8x^f1ZG)~TH~ys3iTpQ7Jop=8q*5m<(y!Xm-U3n=i_J6fDB-nkT`@eK4@XmMDk zz>z|*><&w>Ot@8Wd)^bl6!TEt_6#PZMKcvgaX z*2#FG(H0#tUyUWsW2vu*JLtz$r#=UZr*4rjjpA}N|27~3ATl7IdzY9Ztg^;zRHtv4LWVnVeOMf-(3aU-cs z!&cz-qxKT@68xnse#yE_{2x1I;7yWinGkoe@8<6yqgo?8eX=VWtMWJ1AYDgYa^s!P zhc)i#WXBXiwv(;TKV_-dd?fTRZ|ClNZ{R-= zg{%vib8QyLb&{>~yKmAq)iZ4f7n^g_^gZI7gYqNIshb#NqW$ePRJA(&8|Z>OZX4^u z6#X+5FZ#Ng!I=e38lsAUlN<&52l57cBJYgSnj`=lgPfxxE0FPVDVU43oKo-P8#!-; zHyek#nAXhHsrsMS6ox06OYEfMLRd9t_pyH10fJNl0d2it1J^c~nGJ8Q!4bunW1(QY zyKIFmZ&7>LnXe7sTUZgtLV?rou*7bn_0vlXtc#33xiu|EpO;rtMcF&}G2iU>mA*GN zNP(f~CdxAh+<_&{8kDfxG>0pGcP}`RX-Ap9;yKeY$#~z93~jp zAO&j+0Nb`E(pc9FLW7M{R1zo{C6x)Gk}zY=1RW0%{cO~NDQtm_e+qoXb-T_f<6o-V~ng|Mi4D6F8Ffk z9^P}@m$%Df($K-5swsyG^GzSgFJt(mdP!n^gV#oxF=+YT3gmELqM4{1Ly%niWBMnY znXi&xNfgNA4nG4dfNz(IdtdClqw#)FX=cLyWgsV==zZLK4STQPb4Q{UWG9SDgjKrK zmriQRi{Qd@c1=NW1HWwShjA#}%yG^5_@zw4HD3F-MrWC6USdk!$TMM~E0XznK>(E0 zkilZeHSG=97wq)u=O5MK1n6M3S`ixQb$pW3zx}Ckh_Rml2G&uv zXwdiC@i19l-esjMNq>Ip$oIzmZeQ!OHJmq~*@KTV^XPEKZPxKiuPx5hWi5IET1kp8 zdtxizndI951+7Cx;yGXEV@H%`yyk>n2f~(Gh}cy)IAP97wL)>MQ)5s*T(mTbvF(4g z1xX})?$@^)V9#+X3vCa0Fd0^Bip-Mjlm>XR4{U8dQbe+@=?vv7!<$Q5{pNmwqn(EZFbns_hCQ z)&hmba3~cNm+m8I=P_cc?kz0T>Mv+@&f8z_t70-0@2}fAa4yOn^R;BJ!*Q2Y%V!|w z%Cgd~vbk+WV+3#CMECTC5qtg=c<))Kne^}3Uk)Wkq>x5^3C=4naT2u{em4zyBLnhPtSuEOSxurBAIsD zeItum)2zKTAi^5pC*}iWC6Bb}w#KBJdi}kG6t7MqN?F3aU0;UA&WW)w;Yw5RFtr9TN7da|X%p|?gPlj@H}%^bCw3(4YJS_jiZ1LA9}bPez_ zK6g(Yzi*x+$0FcDdmIav*X(HHT0OjPeaa-;S&wKiLrr0e@C80d7!8)jvIig<-OSGwD?gcSmv!1Xl2W8qYpgKko-s<=$F~-Re zdx-Pa-w036wSyiFF z^L@6N@WCP9Lu4}J>KOIjp}D7~K3t3D>OKm(RxCy1;c#3%QiK?~=dR~Ei4yZ-qDRxA zhz>J0mp#^~8~=`N$+6wS(5HydRiO(>G3%7lKU1i&BxMZ`vSm}ZIy7z8jR82}ujS}_ z=yvfTyOVJCw!&l4aZm{IFh29RSyfEFSUBv~Vi zU-9x9b`CPCtJ|t_<%aNB-_ctx2cow>wBLQD$5&he$Q!~`tgMI6`cPeH?7&2o*YziW z7;?3H0cl#+3T_Tv@v+asNRa2oR{tU*HXz0e9^fz8g$u+c0!h?Bq!$pg0t8TS@o;1$ z9Uu~-vHdT;O~y1Ai2U&o3XTHeob3F8Bg1F^S7h@SQTdx2&&A5j3IN5nvoU8Ri9!)( zkmy4p{PijR52mpa0ZM!KNQENDWd}hbAbJbvCx~vs&dI^d1Nz1B|Iqc8QE>(hwk{ex zNN{&|cL);PU4y&3H|}nY1h=5U-QC^Y9fG^u&UemTcV^a|pTMfBE>^!#y=(7hv;W6# zg2Kb{Uj-317GS_U_&1H?6A#KFu8tg(V4#^z)MnYLJXxc*V1SwVQ{ zf6KFi3|GJ!Tqs-=4(9*5eb)bD%o;BQ?cSi~pXCNLfR*PzA`lN~+aQM!H^>dc!v*}# z0gv~;+QE1@fNM2SxWFuYC_DhjO7_nc^Z#i;4gUzy+=&4D+)o%I{Xu;f^lKI6sdIWS zGjlBO?p-%~*5E&8=%4RvHW!cS*V)m^X=Q~_3lOH zZI{C$dW<0!m;IK5dauwVtx~c`jr55KyxTQS==(iZ(elORMP}m0Zd?~g2y*O6{WQY* zyndLN5)OZVd(2sWhWaM7`Sf|j8wY4V$yfG!V(a-xY+;;sQrgc?Ob*&!tNOJt({+)-pGyaonjIBYF;cVdj zMwXuQDTpBxn%dQ~7;C8w?)q99(ik( z0yOJqrw_zW{DyH*!Wi|Ck=20#<`SVIZs_;jAg>+Zz|_!l(0eXUhfQP)kWgLVe&O$R zw#%t|CwNn4Torg5jQ=}DJ^PUE7xRZMnFbwsv4bq~Vy>aUDXwiRxNCEID4SwCjP9l0 z7O-?a2k#eB@>!Scb_cIH7$b=r=$+WdK*0TzCjkK~vku3)P6?U`=2plg9lSXJU-nmhkTT{vQDpZ39)fO{`Sr+H zD+*=d_c_405$1-b3F{b=uqd}%17wjqExJ^hw-wp)mSCl`TFDrm+N|5K!SIg_HG-{DdOe>4MJ^2 z1lRv0T$LkQ5F=mNF%62}K}{VtSDH~sf=^`qA2TMGW^So9qR(L`N931F&Q@Rdu0Q(v_G4N=?Af~NRfk&e@hZI(Oy*3mi6 zuKL}jqlo2qmqOv0AnC=5K$Yhl1H2mko(*QNfH`-2PbPC9z^Mv@r z0?%H-&Y~6XM(_4@W9@kukKLEh`<}**UZM4g6?`y#jNI;zuNwvkttRAE2!N-HDv2XJ zZL^NfPZ8Nl&PAlgIP1h5(-6VU#OUm*CSv8A<{G=NPM$&`YHDh*1WxJfxCDi6uH?!< zPKL1GdFLa0dyfV^_sDxLT$l&01d|he5{PXm+(8kZC*U^tyRJ?HealwW!*I_5C=Q)) zmiP%o!t!h5!$S&IJ%k;)KdioY85=R&-dc%R%4pir zcMq|?EzW2g4?M1fI>n?y_ZGX?vZBZ2y2C*=WjJV3OD*CI)gNeV(G|bICP}DH+Dj1< zN}b2yMzKzH108QDNrCjGyBFUJ*jfhqz9J7bW-55<28zbHmjT3`gDs_@`4%KJ{Z(CO zu2dL=PishTO{_w_<*F@Ym5>A;G!cG>^74PNGF8KJA}$=kZ)Bv|%358a-d>z5LPHV` z0-H|h9$aAh!#zVtOUUkTha;$^*_EGsI^NtnDA2dp!GMW>`mU*CS>sis|I;|npefAq z?rA4`lwQ+8OAmlnRoPb>)C;c>Rb@hkg-2=}NAFF0{TQLA2;sRtgQAgqOv}*N88q;% zjiyVLr3f6lRh<%DUl~$P1Tx;;U&z#QyUO>5Ij3wVPx|ErLGER@5tlEWAb+TJ0F4yB zMaRdz$?N!1u^2@Ks})Wwr)*}pwzt)WnbY@O-Rv+7UIZXhpfHB~-hxUTsXw6Thb{Z7 zoWZQf0wr}P7=8MkBZ@?}+0~0GtVZ<@>>%OflL4U#qQ0l2kJKTdyxOkxID%O}Zq!vu z{~K|dM*=WnzJNiFiUeQ5cIUw!`vTOswbWH-B}#OqYr@eAI$d|ggb!IOTBXhG+kUr- z35jw**aU>6FOU#zP2p<)o9??Sm!^IHbrQqFvnKXp(~TYtbt^~z~PA{;CH28b(fC*QwDrexQiXq{za(@6dynQwh@>W}GVxNbL&`x0*B2a|m zDqiXc(`z5y@+ekM)~zK$86pWFa{yd07q-G{pf+8p%0aE(GSwxn;qwL@@v2-gUc_e- z+Ev;-!kNlh&0JD*^z&`3$ytl;Tg7ytJ-^Xgv2s9=j8LwdYOAwi!M5-SaNHac!UTWx zF9Bp@d|D-new1b*s*nL}a&RxMLOJUFUDF)hsR)2Xu9RFU8K9qLUiYRaFmBT z-}*HNZlOr5VoYllQR2xPnuYjnHU{uCVx^LCM-5{aOXk1KkXz#^bA{m3@Ag#uoqO1Q zbJ`&KP)yg7QijZS3gk^z6}Rn;nA1W#<_GM=7&|DoZ2P+#yoou0e#0k*1B6@|&(L56QtKiy2))B zWVa(-LvdgaH9)r!Rnov6%4xM$k&!BiObEFZTM0HP5h(0Gj50XSohICnuUL(=$GDuGY@9=I>k~--z(MIsw{TFbPA>d1#2SuW4xv| zS(MpHKm(}4h!5$#bUoe~_lfSyRnlg(6@R&S z`7YUHb;{m6dISnlOkMe!t|oweFA7h7sH~R7m#N(ESvF4pjbrA>fcUwjNh6A2j z7F+<~HTV)%hqS*-=lV_Mv91j~)9&71#Z#DRA_d`!!bAe8lNNeND}+9MR{il5Vg!?8 zO~1?6`8EtYrrJ_cw7BT>N{jQncN#-tP#fp2+jqh{xsE~e3=-s@b!;JUlkg3Z=h$GWZ z%Po$}`obDGcv>h?Wvzg-)f0Cz(C7dCZ#pV$9q^7kXozA!x~^Fl7mp{2leC~FAC#4p zl{#o6??`)$R5m!_XGZ&p`8fz=A4?3P%idYb!2gN07tfEN4hpOhz03nX18f~~Z-wlT zT9lV5Y_@Zp+xwG70Y<(LSE_V+7O0tA@BNjgO5MS*+r{EUA9GtWLs@l~M$&>(TS`j7WxtJ?QKrkEV;i{GsyWOXuS;0kQqX^R zw^jDnZ8*gI{)dy~NLZofzH52lBX| zy;J!-ZS7~w^up{X<)^Q{lxzKI;AN}kHtztvk~544KN1*MHAJ+md-$N49S~7XxIlu_ zu){AuPt2*3T76fiXHOu0wDoScEm^CxjN}ZvnpgCJ$46Xrk>$!Y6hCQ{4!4%0n+7{p zCrmNu)8gP#kgC2u(+^* z*W6Pedl<$G8aSdiSg2V(I7jtfyRUf&hku)ER~i890ueSgTSwZzQ)z^UAbzb?HLI`t zMXxO(D()UDFx_`(Z|vQ*RdOQU7qGLunMxDDDC`q7+v!MkLj{ziP@(!Zk%#BCWhBD8 zWttZfvFjOzDY&B%O+xvlj4^b){Dner?RixUG2H|Ac13%2kxF9{4X%WPMeOod>QaMu z%H;weYmxlM7O+t`M=5hm`9&gY?yGz1UOgo|+oGj_*NVJ#ey&j#=eB*Vrpuf}Z3BYF zh=)mjwaT13maL?S$Dou_T!7+H<&K{|U84f#SnE;O6eT!8O!jhzeSam}*@#%Kj;jFO zGwqjzwlrmTtFIl^f zs5su@+IW;aep*B*yyTqul;`}2ia$cgRB5jC%kh+UmK2bFL_c4ViJzW9ws3}2_+snL zEd40j~|Nqu={3FHg6vVI^+{ zSQglj1W>#l2$#4z-5V*8U@KgMy1Q1S$)R ztDJ!WHn8b&z4Z(ZyK^4sRRkjlAzH;yRUn&1e0O0qf8QY2g+F>UzHE6;d}_%CkY`|z zTEoTTKXb_YjkKWY0C|8AF_B>*=1hq`)|dqc7sJWVo`+Lf%2RsJ|1d9<7#(|eqCF)Q z;~ew&t4HK-5_tg}#~tK&OyENWXmQ+OC^BsB|11WwXn|zW|3u6{y5zrU{`V9gI&h^5w0Pby=%ur8vN3Xl zoL-0KFP+;35+KMLB>H*%>Sb70k?y|F@Zn-fL5j&fuaVmvv9HgcU7)K z*VZ173+;oD_|vdUoc8?w#`fo`en8<8x_~b7#eld_^E)wLZBY=}S)m%*p4aEQS?HLa z6R?nGO#@xh^xBsDcAQQ0vSL#I@9O>iZrMcV$IH3v8e^6E*yGB;%JasKJh$;Wp1yvxG$HU^%K;?PFc-D5_FS5=F`+PE1DsGeu<>5rA<}s&`*i`lwQ8KYtlq)Rc(#$L zoCmb6H#|CX6#T`yo%3?z5USiJ;?e0{dVRKpG{(w&T)8*&8{M}FlKbt9-6MV4+&n-6 zXnO6g^6a~nZh^=#u^k43hGc8$(5OZy^JGmlL}k}cT1w$_Ya8%oa+6V=DV`9_t&o`? z3-jb@(+#B61lK{7rTLC8h<3!KDkFD;ZQ4!VYd-3}Hc;F|d8?@cfo*a!$uy10(+7yU zG=?Hu=dz}8R$8kwEAjuxx8e?XZt`>hbg3nJ!0@X}zi+o&1-|F7f zH(*OBJH9s31#abE=sAQDHn9V&6!aeK+DQ~F>Nr4mmtAoL!G9aV>|bh92No{?o$iFe z6`UiT;y*Q;VCu-5CA_;XvTOl~zJWpxPw=>h-I&47R**1*Y8u3?cafVqn|axGeXSbF z6f)Ju3#D-M5I>d^3G2sv>#0d{?T8^&n>Z$n%DHkGY+P1Y0%wD#|2i~*nlq}#tHZtr zvG);jFwc^5tXl^>@-$8lJ8K#O7N(r#yjnUsUd5uSxVSo$gse4*CvsKS){16sGPLdN zk-gE|HW<3;FVLtUlA@vB{eMY#2MBuxZE<&pmv^B{%4$1O_jRWSMb>)_m)e>{f0sje za6ACZpdj}nRkP8pKQ4}?cKAf`byIo&`x_~ho1t_^p!CwqJxu2ZO;`vM;8UFV^2Ez1 z3*|P*8bJej#(;sBl+iyPSJt@8D3=yu3(}|C-5# zgU-Y)ZV5W+5oKQQUw5vW&qr}=44gMK0(5y^6>J(uxiV>g^tO<`<3WYM!jebl#XC~wvh7{b1pN;G z6fJ*y5pV2?9SoG!QOsYhL;GMWj;dF6i)wtCE+fWJU*}?6H(H$Krqx4CH{2Y|x#)0l zszI}?5hbgj=yRwL@ZyBshc?3&fK^<{I=KrAf5y#uh6iW2o$&fD40u;oz)p{Tb~4%b z+ZjE+P3*XiC-6J=J)~^SW{MKMO7Y20o@DEcoID!aN>ldSv)Ws!uDJLaYh!P)Z-2k@ zn^^zcQT3WRHZ2^i^!GOV9muAN^JA9z0$QwsoZOQ~foueGHjKP?!Y~&6roQl=cQ&T- zh+^QY6j>!X$%sN!Fo0YKZz_~L#^1@rH;5ci4kJ|-%791yU63Fmj=onC{^m4eP58xL zRYwrB?0ax;`swrhf^D5k)3W8*)>GZzW(}xWL^XBMZcqQ^mbm_CLK^Tlz#-v?a+U!w;~nzn6y^_i0pwv9RxQ5{C%kpT4^GC;teI`$ujf>mr_iY^Xb z=w!}JC8%UNbH#&hm!|ASCKAI(Mkbd9z}SQ#Z7D;O%L$k81Oi)rym(kJaFGYD7Xv69 zYNokxv8P(5ATq6tq`4Vxv`u=MJ&QC>j#>n!9Si&w5kaijU|>8ieoTF0AlZ&Nd2d2x zjCo(e58?3mH$bHzIe1CbpolU~kaBe5wyMUBgb0m@R9`(7N>gGkdLFsXu=&5A{Lq#P zR1QwG0j-_P4mDcyjFbv7A;^qjT9r}At~96#_f;)LTK-!Rm&)mEzhRlVYTBk5vD_W! z%dFT4q-DMhlpvYZD4NOsI%OuUy(-iN(NP+*V6Z*lq@c0*Qmi3WavZwo5k+FtPR^a> zmEXgg$Jg+XVk0FR0Xu64Vn$&4^qNd-4zjWEiqY4`988hUhxNe( z>e)Yjc!K7zyl^?c9jMS>T;=5iT@u>+`}eC%`3WK> z&s;gc)p{;0WoC2JCupeB`>mQI0dy+cG;}TaU?$>pMieZO5GOh?7775u(GPGd1h$1* z62rjNzifZy#)>E*JsA6jw7#3~qz}8K5f-rixwqzFD89^AjiCj16vQ6Q(vhP!PZSD-EbtVS5(HvV+USSB3u*e2D z?qJrXx)nI>iynj>sznEU~3PIpnQlq@K+=H{&ZB@4l;HEF5Ea1U5*KHp#Y z6P6$Tir5fHfsKsLCMir)NUt{`rx9Gw6Mx>B_(dneTg7ObYreId$XY{2#T8|a-WKwQ zZLN%Mc*d$)Xqn27gWp2)1U?DoE}SjmWQsp=J4jw7rj0QIv8}V*dXXOH>%ACAP$5$Epf>{zQWK0a~=cu!No^Ryu?NCuRvx%wRB{mGzz9Q)GPOi66d&UTE+0ejZ3UAo?U$KzSHASQQ2}96#&1kf*L707vbNRD2+0%<%+}F# zmE7d}hFo7$T=l`hGhvyZxDyy+)1#X`1F~O3a^+NoHldmVlf|3AeQ*k$03gG07qlrb zOyQM`22W)(RFi26g{NG;gvL`6<8u{=yTDbmB&(!rxl+PmlwNR@HDKJSe(qH5E%IjJ9knbE0(kXK?QLrP98Wo<4&01d^JN*-0U zuN;fM7u)r;v+&OamX&fw0MWL=*IxOkUJyh_A)I=}INl~g~Vmvf7- z&x>Bv@W+K^A^1TYSXkgw=)+K?(KdgcDE`Q-WQrcb$FZFM zWfGT&;ZQq0OG-qT&{p_jU^et^lalGlYJ!KG7q5v2ku& znm)l@IXqV@bVL|W%8lj_IUDZiPZf8y-u5W9O*RTNJ1=H+xxcQf&zwca*;EP=X>TJ1 zdi^0{yN|(WbkHgEP%|AWP+PK_(FsHO%JpIi`%G3v)AFWZo zpi9Ao^;L;Rhyq&s7#7m(mrTM`#cJA7FLy21`#DtBAcMkt6Q^fL7cI@-H+eNHCInJ= z3PfLHHc@N=C0kXAFZ-fHm_8DzF`KgFAz8uWKiNiojA~zdv}E`>_#o%xCs3NT@*APV z&dut>Ti7orVyO;8c*u}9C1JKM`Jbs#;05s)I*9puUIFsld5tSnKA9+Lf8v1Kf0Lrl z$@Ce|s{p5afNjG6m9)>ZgI@<>) zqaD9^MtK4v0&;#G%>7cSZ8x~=HrVyY;!RoO%I0P-jS%g5se74;2;z8X?(ZS|{Vi-e z2BME^oDiT%lW4pQ88^aWgb?eD*!DLk(|DPVD8;zYW@;bXZObEe=4T5y4*u^jKNuJL zd`K2@3IcfN*m;+NL(e(>-qif6@FEpAI@}jHgp$AP8^@Ke--VtB$|qm5IZu@EH~by~ zy1L%7DG8N$jU8U_3HwWar`mnG(FF7P9dKc|6!il3G8wdRXHME2y>(HXQieVETnGm8 z@4by|hrb`Mn^O^6kg3Ne#Yy$|xo{=BNWLwA;b1HPG{8QNBeUG5z&AAqfOxIy(?gd$ zg?MC~7L4S-q9BE@l8_U zh3j*~9GB1YpPU5O9`N@aUx4^kOBcpU;RuTuS@E{w-p9d!)SK!0dVL{U zB=*3wP+=xI%U80X?R=;h@J9!EH;3 zixKoD!N3ANqPu|`T=-Zoy<)d#a%XgpOF7fFhH*J86m`1lg<;Tdjs^K%!E&Zba@FV` z7wuol$9{FfEgeJ{=KYe-#>6T^0}weBUw}C&uxR&3AY2;=3y~T6xfwe@8PG~~e8DhK zP}z~@3Tegd#-cwasr?JQ*NwY|j=EkM{Iuz&jaj%+_Q4KzW5eix5y`*$g)n-(r=+6O z<|XW#>$CD%e3;M!F6y~A89%6{Y)H9{h!_GxS;M?>!V8D|38{7OdyNEdnv@)d287-M zd9&ErIRCl9xIjD}P+EsZ$Mx1}b%|C(> z`+rbVT&#>-AQ1*+3S$K->B8e8vHsWEd*IXy0w&O`?w>D;g$Xf z{W^%FjFtO2ZNEcL9(f)#)XQwZ=eAA!JvwGHm|xM^qM2`ZJQ1Hr^Bk~Mc6vBNo+)aH z+C4q)qOqj+Q_cNyGsU%YY>~tJ_V7|q&;0D&t&i~XGOncS@)Gc?(fwy_N&E2Wn`XQ3 z*ybnTEuf>TtF!eLy>?!K%&n`f6J87KGlc%oubU#O=my&SajN8w0XIMMg*9kR{2`u0O}Y3PV27MD^CU6Q1IbF(^tyfab7TFS-k5jy1Kz3(VT%b+x)PVpt+ z*Sst7J3C2Y0Fl$z+8gpffa&OH2`HfU-3zM|x7zDbO8!@3VZY6JkTmc_)By$OUf$zsltCF%3fiV4W_@=s zB4=<>UHfNuX>NC&Eoa72;G z49Z2Zu`8AZUsq4lQpu7Eqw{<9IBYQW}{rdXn;oL`r zbU5mmN9{}+V{Inq;noF&H9rks5SLf#h3zmpn^sD*~M?rc{ofKoi}C5 zb^GyQ>X24YX$+UpW0j&^=+i+kvR%^%<3|<3qZhF9H zKHN#>VgMfBW-jhPFm6nj1SCakZDTZTR9H4I7TuP)Y>L+5v5jFJpc0 zaT{VoDFzGu? z_HWpDpB_Id(F&stL+<>>;A|J1QIbUQP(th;ezc|_kQ77UTeKI%0a%2<9%0J-FuYcg z#%PGrgPZ26L1qT~lcVwN;*FMEQ_AEKXBRL#=2h>nx@K~#y{2Gfv`7cci*-cmm_n#U zUqY}Qt_#5JG~JW)yf$r4tR-w{uVfdno_qSVvrp+wKp4rO#n{z`Ryo;2=sqn;$dGfz z^#F1_F&=|aE|19~fFgRrp9~1(Rp0VQVr7c(s=e!k&L*{dBOnLv(SLO ziW%5J96LlI;-?o)i$qt?#qzj9f0-A^U*AH5%ytZ*PWG430Bt>J^)8Uwb%rGs)lq|n z=4hd^DMTd+?*y2?KUrDeYD5QwaS6C}A#a_7*buC{rI zty6$C;T?I`9do1R=6m7YyNJfoEq?x5x!O#NDX`iqw8#q=0;X3%yMJLtVhQ z{Yx|jaSzKu5HOE(RKv6YwPue+z|_oSq_bB?h{J~c16E8hMcGyDUf#&{hnykk-1zAcl5+D({|r{K@I)lQCyNhFk4 zM~VLfzdjNYcp7qTjW`Nk`CYK_oE4A#x;Ga!T(3_<3*cp_uI`tAZmho>L7L!)k{Of3 zrP+*N72rf4&8Js7QDLQJAvTNUTl+_HP0>NkXfF4iDAucxLY9zZ!qQ>-M!->cf6Qb% zg{9Z)yh630elJ41)bu-aYg9;Oo0h#)s#lbBe06cN*s7^uzQdyZHxQdB1pRlp*)nna zU%L6)E5IGPf(IT%#~Q(4`Ek74OQA!_vWUX3bd0 zXmF^R9|b|P%YjXDQQ2F^EF_J8I|g@j_df-jE|R7;N#MLuq{zNnaoq%2KSfzGsWl=t zO*Yizgg$7Gqe)TWSW`Nfu4F2sah-ih&l!t6-~$L~KQCss95)Qte^|t65KPRC2Xl6@ z^PqumfMI`sC^lu8P~(!-Jxoy~pP_ptj}hhc?4VI>0*>-F&_vBD!YcABK9o+@aA`8Z zT{OJ9J%uJ&o*J)Csf8l0q%zP;xVm!VJLvHCEj(S)I!Iu}8UIptnORux_m3@e-J^#b zng#@ETbs0-Qf+*+{Ls;qAi>f+l51$LNZ0cH`yxm%fM+F1_V=vOq)^UoC|FAxW?&tNoSl`U2V?^yjV}c z{WNI%$`uw@y2l_9FUm*$1nAZSfQB=-6JYT3oI!i}}*`hKk%ik8H{sfI{ z6RjCiEF8^YLQ-taNC`Ow=PO*2*aj}y3V0I!7;!Ey*PAyfAo6Ms|0eG6HA8?6KItK$ z8_I{U5hrHED^d)Sy7Ke$%{^jl3>LQyPN&%^Df)zU5pB_zhU%JkNV^>MJn#%)L@3s2 z!S8l>6K}gpSLR2%nO|4GcZN7tH!rWen7ltVF?zjlh@ZdMc8nTYvs`DFiB?UsnNf(c7DwZ)ijKohazo7+th^yN6svssofn9S1V&jlfwtG@-%-QJ$FDjA1bj5}%) z(&A4n{}Iq7Krb7>fEc2*-o{3Wq_rYK5-jlWjXZ*$^X2Y(kL*{oI0@jLy< zK534k1=wv-l05L@QAx;ul?jhA3tVd^t&u7uIYW2@!F_O3=W(iYcmM@+0!4 zQ&Q-GTg+c@)?Op{>a>Nqmh0s-3ck&f_zWo$0)TuWXK@uHj>0Hti1RCf-EE zn}&FWp(9>1Ll%YkR6hJ*(hrTPDK}b+szpC=XTpyDuwkRJ$TPLUjT?R}1N&^E$qsWx z7>cD)m8l85(*SXS6%X_oAuaw%*xtp?eV$&TY?$Y-5?2zU)L%1-6ir5}+c3+n4DN(X6 zNyHxSqJG#5WA1!~;E~AD1SGE&4H61EyQWGC?IIn2M*H64EoO}SmITlT_y5^Gr@tUXTQ#QBOv?%xnZK_0mKZ5{4 z{w{*dFs+}p88ip8vf1FOH@2o{`)$wR-&Jv8YO-YIu8dOmg7p5lL#H`+i$~pAhO6&f zjm96wO&2|1=dM;$4J=^X+7=^YPGfmg&S_h5W!qtm?|TNI+)v+64w;D_Wdrk&H`+)sQoJ39b`w^nZT5q+r3` zwMxWzT3)p@Y!Hfttf)l^NS#|7DO;Q6*;3^E7*`gWhyDYure zJb!tjk-v`!i>?DHlsxrz4Z@|>H37;ad_-Gt7#qOH;Oa_VNVXeD@&v7LbI$%p-G8TG zs2r2f?%Gf&LosjA!z_&+R*FrA9T4lQ$^P}#R$XoC3 zPXk~9Ux?;PiWcu8yuIXVsikeEx?ZRU?YUF+7)BG$xiJn3pr>!i`Ka;hA_yb~#={KRU>i|T4jWogk+?qKpMgXh3&&+r zZO$@U3y)vtjh1w?c)>6|IPjCw77p;hsj`|l7Er%6pl-HLYz{ub%sZ9XIPL_mKdH=Z z(jts0?$$l)a=2rX{*-ZTZBvw3hg@>A5~i|n<&absEnkr#1+6^Px`nB80aCE( z(1N>0B>Xd=?FOL&<|qX;)5y1GDjBNhZ_)(NX=)t)H-4U>9|&=Bh|7z7H_rD#4}PON zgV_r@{F$@*HJdfD+~ow*krx2uB?1=s9TIQ7Nvod==j*qR*E++={3g>*$!|ncngt=H&)-i) z{2R*&hV@S#?_*LcR=T#%NOcmH8-`p>0m|oE)NEMWx*<*qUJdc#0y}^wcV)<0#YG0F zezQx6`8-%wx=8xpNRS9fZj@f0&koF=(9{>FeXx?mzNp)4LEP?9-M}EIOLQOUqjmYj3QKo9PJMss zJ0x}(B44EKVt$S*M8LZ!NQ$`ny}Ti4JuA^JubQFc`5Of%rWp^Qb#Wbr6~~;d3l@Cq zSBNwUMO-Jgbba*qM*YJp4fWO-W}i|%cnATLd`a8dgt2&0lN9N)c~Q;>3~*deZKK{J z+qU`dzr-l9?A_d9&<7z8AsNsXYKU-sAbW#;zQXdcWg87KN>8U{4UA{Vn+iL#oJO^u zs2!$-R8-!a1Q%WajFs!R6T}k_7~!ky#sBoxZHQ1S?NEqS^oB7=cA6jzNX{E$hOh$Z z)ih~%4Z9 z(^*~T3&^m=W%p>C#eU|6z~+qq3K2&bPw%tg_DYEGPB~%+poUdEEF%*WC9GHwUTuqU z4W?rHL5(p@+FDExw#0Fkv{QVh*M58j zC};izssXSqz`8JPAWyb3oCafeOCzaMcn9GtL}MUhXmrtuCz?H(V$lTw(hbh8Zn(MM zN%^o;i?ngRM)=j>p@^03|{Wup5)Vzvi&q(y>x+95q>4 zR3Q+)H`(YQQ`X@4%5}9 zq2P{aD!??o_uN$W{!HsQz+U7DF-M)1MPmd?LG>P=!kLF#XJeFgq&dzddpc$?AZe`M z`FECtUdsNc#EsN^QSQbk7t_&iQQAc5<|jclyq>uNd|j|sfe)HNW;|bi(?!A`=ss?x zyCK4(zB{sOvA-<&AZXj#J!0F+`Qp}Y@j?Uc4g)kOVs$)@?>mntQ0LFeuH1h~EUA0M z9aI#x#~sb?JJk3p;$jefEqG88TNXplGk(&2n|67Oo~6~Pu!}HMsm%PIG{A0p`Lcf= zZUk6b*Ni{`n{yUS)o$Ige>G3G+8x*^>$!tV`g5YiylrMEz*uB^W*p&BF?e;txoSId z96JDsv4C_w0sL4sY!J$dPD~Zy^s3;-o4Z}B{NQG9>)f3cPaQdVlvpT1_o~Eust`IF zYVA5+zuWj5-)v4bUT-3&0jd3CzNByU)((!>Kws za+Bpd7js7s^vJxN@tLBVx9Apk&s zmD(MI!C+t-5)$_Z?6G4v=W_C)LHoQmJyIFj@0%XzD(*-!ZINIon5L&Pe=dzdmInR? zpHZm_S_x~kzeGpRb+llNe}$@7m!i%!&2}*wiF!3@M=KSUXw;@_F)n>)D)!=DkM7=o z(PPHS4#(OYqE8=9R@XQ`;;7)Y#}B}sU$Zl`l(}+QxnfPETo5~FD&xGgxReRrJfz|? zq&hbGZLRLGxh_*K4^<^w9q#cv!lNK6(SeCJMyoqlU5DU+%n$r=kyHuY6aNF>$J#mI zw4X;r5fMAbzM<%}#A0i!oN_Ogdl(E}b&TLWj$Q|w3LA>|Lzwl(h-Itjk_5oR7vm_n zBA&B9hRlnIYz+OcaeJL?Nkd+7+XA+hQLTkpd8Uv?C1!vzX4CsT+5`hO-pO`di%v9- zV^t#SBa7^uW!qDqlo-C#VMvx(vQ)y51ghz&n!q*ObF>Q5Czky1*fwH0VZvke)Gx!7 z9vpRJ2?>wQ=r{D{?comTnn%E;e_sao)R3sTu}2TxPl4LAghxAE*{ggFh0~n)bU3f6 zES^+QL7KpyPkK-2p`-im&Y}1u$X69fk-;oOzOJhT?r)!mhE88KzWkY&j(z7tzC6n4 zn;?D+5aVRV!~4(K%(*$h_nHY)L!0=>%#UWBiG_CXb@wMd;vU;CLW7p92o;^1b>-Ts!Au$=!5CUjmY-uWNGUMg!GP_}F@v^rQ z(C-mmD&OTMx+CTg0bl3$Wv5}#nj8ahShjeK>`^vLl99*Y#h0U@WE^bkh?1AU;nH50 zmbNn(ev#5KkHnF#X}~vbPVOUq2(osC{mfou;rbUDV#q|}mTJHr(bHko9WC5b5Xp?iaF#XFbUwVj` z3tx>#?MnDsP6dcdQ@L6rIl$HEk<=q$1oq14ESJp*=+T2(n?4LAzOPNPZx5!3ZXpa9 zxrM2f;opnkZPZk(=>2UiS<87aTDJsj=AA_UJ-b#cRQH-qq4n>ZWHP6unqaWLN6$68 z_{%LJO7(6~tOR%nco3;J4BkBi^#cEJy(agbz}hz1I6d9EOE~6}+_t-Ha4PdbzXn_= zEB$s{%19U5h>LaNP{rcig=NmVy!-ahk^QwqUu$!w4z4aby?49V3XY~JM5@q^32Kk)al@X z8@*I*#LYLny7UXRi4vjS85J%8=)Z25Sua^0ti2A*_V|7?k%t6LVmfSAD`~53J>Ale zi-{Y#$<3k9gWz63+zu+AQ_3ggiLAc#e?IGy?10FbY@i|%5F>%}A93?v*9QnQ0dkdt zh?{KxL2jb5fcOjlg`LR(Dzrj@0NqD&0e|g4F<`T?u>J=~!3=87`RB?8VJ1MZ3l=Wm z-)00n;7@PZ|I-!1@}KIP?ACvT2oP+79R%EDX9uw%SU{-I|BU>12?|0?{J$enSwOz@ z|FSIT8uVZ14v?bl|IQ!=MTEoh|FHFr!I4I7yY|GkolI<-lL;r7*tTtTY+I8|Y}>YN z+qS-*=h<)7-fw+B(^czUcXv|VopW91aRB+AKurlda0VR6{$yrn{%7s^ce(#S9#XO( zA^u~c`L78EJ>{z%NY!9ZxzPm!a!R>a7+9Ez+5f3cfGQX!ASZ$a$Qk{wist_n(V~Mh z1A~B+954u4tbflBD3D=i`X``a1qyNlR{~tCedjj(fG4B5v z+Ghd6K>pz={^3pkK{9|B{qOMm{~wnE37-oA}Mn#>U;)*49Qx=lSM`+EoUi z@iP7B@vLfq6Y#F$<@oeC(RP(z3>;Z^{cXD?5!Wk74V#od8ro|Vrm}mvx5inr{B!LJ zz>>C{eY146)%jA5vep&RCfMP9M+k{}_4QuihDEZQaa8H~*(?(BN2AC*9_#xQsyc4E zM!sYzIr8(heqI!7-jd8{zjUiS63Pi+nvpp{GR-lh%o@n%q?k`mX4w1)jrhC+&alhp z69y#3Qb@|g_LWGM#&c&%6zElyj_(we^qUj8y?ph%{@F)U*zz_7txLp^KObk&HA)qL zS(BsbI?_FjX&bU`L~*TJGq|hmSjgDm?qyL2HLQCcXH6bSVo6I;SBUz)0=Elj5?ZX; z+{DaqjLaP+V{v}V)50(pRY27hFHI=F_mB_4o2lP;R4JW6EEM4HS!dbcvqE?$#2ML_ z+=;%|ckB$4%p9*yTEi?d*GFw>@zUCEnXki%9d7kT-#CMN7>e7bZ|4JTK|s;TZffH8 z4r3NRAO@syx<$Grory?RnR^3PH&s5y6>n${JuAX#s9|jbF$bc+kshBafKH zf$_Y~No^onl!8)d`Y$NA2zrM(k~v83Ihz&dN-G^AJv3eTxBtf55?MR#m*}!qdKu-5 z3)*Tl4~yDBq|2_l=s@N}9Q1XAX*1#IcHCyHZ7}69C!)fAJhvkf(x|Lm4{Xl|U8TwH z-{l#ro0h|+Th~ao{4)i>-3rzABnkFfKjde183v0N*achriUd7)hU#bnv0|(!XcvOM8JHOKB-hI{{l+ z>bxA2Z3*Y3bQjTjfc|+`>H8x1R=SqrcnuM+;q51B*_8i%igJdVnC-d#ry^f1$pTcMv zSGP{5xhj{l<;5F`7q2(jfb3(}QMvC&| z^+X>{T4-X=HZ;7ZTr6<(tp!ahmLO(7P8Za=Hk>uerV9rEb{wQtLXrfuBP{PIlJ(VC z*z+rhvA)yc(#I03ix4D*R`JM8O(}^28hwO z$1ktr0t6ra9MuzT6pwKqXVS*|rHfWVJBI#(y5k&%&~I|A%S6#qr!gvBpy{k=k$ifd z-{!Fo>i$vyT70xfRdMtZYPE)}@jg^Bc42HH#!P)%}SZ%K<3YAX91;?6uH z+avJwlT!>j5Qw>JAVdN2u=-!EaKqF)N6Vs@k#L2x{(lb-~s^MO~#hgiytd)?lcG+J7=U!2F{3n z<(G*}*G6&vO&G3BG2nKu@8d61AcUlj+O2oyTX!(!t|hF@xsz!aMRz!;BD2mKmjIND zsm~h7cK^N*=)P3J7BvM_tv_*|!&+qm7)0?Rz|HX;m0ON@N2AIx2(&+5#b*uc_WK0o zJ*+Vk4u=?~#o`(>IUjNdF>)V?9<@GH=H)J&r)zTnk}yvymnoppq#jPVb^BUotAg%tIuf$%(GVr(QwGPNwZKnt0? zZX%D665@Xwg-44fk*1r1MhUz<`oq01P)@e)X$|F^CPAzEEsju+l8e%w7Dwg1t}%U) zfEpij=+M-~y9S-hEcRAB8aGQTSIyHJ1%N1HSOJnEdLi=TaR84Jn#o^1XfqD#C$ua? zt7N9ycwWyPrn=Y8U8?w?VU{$_yr-vc02{psJScm|)J_z#ak!e-{wk8AUQRyvQ#!n0 zrR>|jJ~%a3!)JZN3FJCMI7n*8S?z~;*owUEbur{^PtFo%o#pD-ypBxeh@62|1^~6L zU~@TBXHTm_V|_u+2cPuI>DNUvyRy1WP|nnzJW{3aU&{WHOl(Kg-@G%gB@~v=wjy^< zqDL~y#3`QeueT0XTo+Ei(<1Sr!CU)?<$Nl^I~R&Rf`;);Yg$5pCk zjiU-|c!U@5+;ozbs0gXe^b~oS(!O}GzVNOrrwBUW7$9mXj~#}h}6J!VGWYoS_e+%c&kFV%fS*WGMAT^i*) z2-64~<49IYr49_0%z*`kG&$yqcx>r{B+&}jDj zM3NKHXtJN}Jh?vKy!15fu~|s0j$*U}TyBrMYcW(wg#&*_Q9|$DN zP&%msB|2G?*^QL#8^HFC_JlX)lOIQ_F#+r_JD?=>?=J;T*KRY9s@c@SyHy7reu92I z^<$-IeW$Aj@ zszYos8|t84rZbrXQx|upnu7kd=)dX$Nvpz}&rufdbx_y`m_JW36N zVuo+Z#8irsl}k5LdvT5jO%)@+lWA-538*7f(1)5pcfX*>&E~M@tzyjlk-%+pgY2Ec zJPVer-%JpTd6kB~Aj^s}ftG?nv~U(~+LFYxG8G=`=R+Y1-nf5l+G@;88~-Kc=7MpsU<8$siY(D%ypQQJ{nCZ@|r-W z;>(4wSz%QrM2JHzTKiStSKj-zY3Q8Oe0^eJ2??mA;@VB#!LK5y%`tM=pBPds^a(7k zLrutCXdxc=_zkH9dOEWBO@v@}DIcq}f52TAvvZZ()dBfTO0xOV!J@f@L1VlqG~^0} z{d{eluo%^ZVlqPRr+FX5>6sJx!a*RZ?{N++bGuYIN*R#8u*@l(zs^ooCOSKEzCyag z3GR2Tdh$`1uap2FG0IGF;08KM2}y9(oUf%FD-W+%BznISZvBP9L+{|+WfJCv!+#pK z{BdG0F$Y-Zj~<%>%$LImPv1ld18Il~OuTVTU$*C^Zp^>PYW0h#g5~asQV!8DD2OU{ z>;Lc*kNhxWG*Y29X5osR>cBdKG`3W?rIz_raD?}-|H>UWiB za|~xQIiPOF&#T3AYIBog=h-q(TWO_96Yc$pi3qq$54wTTO}4fSQs^ec7|{cn!Gh0W z<@>?99bSDeKz$2=Qr_MMh4T$Z@%4!cT@M<2UhXmM0A*_q1Hoh069<8*mYlpP^b;KE zcOvJS0gJl>6>n7-qB?a6&2BjFn}8405FVpZ71^y=%bxf0`>=61H~mf^l5S5Qfq=xj zeIEcfHi1#``MSaTj`8g}kQ~Wn#&j%r%YL32KH1jCcI!R`(PL1qw_(G8%_Cx?5bYDF zS9sbD58yy!*M6gQd3i)?H%};3Fm}tLBT4PEV21deTYM~tp4IiKQolU?E8R$v6$8U2 zOuiSh6a5k^dGf{*@{(0C$LEI8g+cUaf)>z)ewl)eard7G7F)e??HhHU&%T0OwosTUV2E zNyWd+-`1M+UdJ`&iln0l5E)tlF7co-2ur0Lp*7TJPTi}io}BKsAhmR2fqW2Qme$2E zD{|yLb4CmWs_+RThQX4BlIj(#(uHc4sl?Y({6{s2aP;)VZc-s2e>pd*OiKMz+#RlY zUaY)3N=|R^2m}rqrN4)7ZMLN@bDEwZYh%`KemEAcY(6Uq2(EdNakc?DqH~_**!+6&=f{JudBx-W(V^E#06A2;MDp~f1@BYZRQ|&KG zRK2&F+1= zLP8(%90ysHrA&8A=!Etev{UJNAI`*U2Z3VD_F}*@vvYXC#id!znPDMYf;*ULSRAP- z--T|&3yv>X!qkE7na-P<0BTRyNUXc@>o}}tK>Oho4^>d{Cf>>5CX9p4r=3C-Ug^$< z#Z2_#@e*H;YEUtSRX8OQWjQz4{^#Jpz1Psa8ALUifxl7Y3+|QuVUe$&%oIrcPpBu>GT-UvH2z?vyk6 z6XC#FhBru;evd@@VMpX>`ibwx55Bp zja{-fH~j{pr%qCHY&fugg?pR&!5e=Ut+tVlX1HUny)68>)02OZUBwpxKXayjb%Fly zci6!Hnht0iyzD-P<0JS)AQzDAuVWC9NoROD#hJ?$9{eQ?599YU>4YWyr4a<{2Z>Y78!>Jv>A6U+#>gL@;L8buT*ZwXiwEwF;*KEChptWqu ziHL4DC9=n;iS;(bcpNRlZurHmufOsqO5IUY&7ay24fx&5?bPmpKwpAdRCbJ8A(mkq zKPk2Y8zhdMno0xwMa0Q5JPMyA-l0~A?2VtdHm3<+DDK9KzyG34V63;(21ktb4-NtBRRB2{|2)miK&}Pw2QKCmePd|66t5Z( zcyJ&p7f8e4gFsKY7yx1+`XC^HxL0OioCi!I|GVlRa2JTa{hwthK!ET6okRjv(m+-& zIw&(o3O^(SJvQ6F#1u&6{qN#`q2_=1zW?158JMU3--|i^>x32<`48##hb;&(=KtLC zKVa_v-0}axc%%ry{5Qe;FWeUmm;`dANI^l+;{tgX46JPb$svIO;y-!@Fi!jzW^(-3 zlhk$c-`JJypFA8r#eD)u&)9&1KuqyY0>cHcaI^pK2oX;^W{u<4+wTL(BQb)V-X}~U z11>gSW*Ss9VH5Icd%x$b0qw!%pn{Hcqiqw=g`{9u5X}*`pld zi)J1kZ~et!-e)A3;33U%_ozZ@K3n9 zjg;8&RIMYV-voT06YP4ud84{vG9gdfSBW2c_DCMg=46GLKBU{cG;u`PnmA+&yK;Hn zmy-AKrzW&Dxnuh@WX~vjCS2s(mZIaJ{a{lhhaS^*8rax~9D-7l+WWA|8gg#%hkAg# zxdijYmVxpWmcW^i{J!COHkF=}JoX^n&%0luMauj9o&!MaQA}jwM&V@2lzY;SGA)~_ z94(#>Oboum*ydOGt6M_kR}bX|b3nkvS~AT;K(+FH?)a|mFBma?a}*gT9RMy`5GA;GcbY)(QOfU$pyCoD z*5uzq2nBd!o^2W0HjgJ+K`f1%o`InB+Ab!Z&+)?P0@=+Xu|JlWvPbUO?lSyafW#)k z8Q1z3Mb3zX1MF!ntOpvQBm{C$sHV0E`#TzBU6ez*t=JDZq1x(YpZ*^(0k}{Y@Ge}< zK|LT)#S=1PKM}SF?XT^;B6V@CRbA|20-}OiYZL*`w-4B!qgaa=R>V%>%1<$^dvX=51wx4m)0^fY@D&VHn zv<7t*msBrUuJ+p)7!kCoe|p-sXQ2%A+GM+v+3@oRU2m+kKqd3%4zHgrWEL~blZylo zMqUE+st0FIYSc!6xxZ zRbS5Y#DB1Hpj+}Q0(%}|%Oy{H%s0c>{d0d3P}B_fTQSrYt^pPW2J*04Y!Z&4b0d=F zhtZ+It+9OboR1jWz_|#hs5i;_Avu3AF5o){>)NuGwI%oK(23At)J0malP9RA<9-<+ zj4scM+14s}JoXk@cPpy*4pMJf3gV*oC!TCR69({aA(b(9Wugy7#O}_FMuw8~jJ6PM zQ7R*yU=JXkOnE=(6&D)Nq&MM3=IXvK#6kJvH5d5^2qK2N9lT_yP#1q3c^r;rZ1M^S zkR@aii(+(v8HAn^hP*S<9|!*{hkpl{dIiN%i%Cyysi_efMECO9SnO@rAG4wtuO52_ zX(xUoZ2twL2y?B}ZVE)bGQcJol)!T2H=G!k>y@otrd3$@^@&Fn?3dCYc zbgW}mtWDH@*1T5M90${82EMu7(TT{W^&43razBQr0}ir{2&Bh7Jq}f%LPH23gd7YL zFit`8opYw;Yx-P6kFP^^Vz=R1Z-iJ^5}&TGFdF&5RKc z8e#1x!^eBRMU)ih2*EFonLj7(iy3JaPH=3YZUBr0sGrB$iq9gS`#-$3j&TE6*<(V@$?58bleR^=8V$o33Au}7BmX>^%OH_ydD z-k6VIeIv{G4i-mM?(4|{V6q0W{`(Ef3gp|D&$3blDO68M2`j05SX0Eg}+aiQJ#r-wXICSAR8f>1)=!b-<#O)H0Py_Z=G?r zs_KFAiIPpunP2H)e_lpo`elg|<%5hv0=nj zeEs-zLUgUHt05b(UhMI}Y*8@K*-U7nC@64@n8zs8oyGUv%ED;)>tWCmaY~0P>OWE4 zlYCbunV()bH0ZLXDPL6-0-V^xaYp$gN`gjKSN@T!IJL#W1BlNe;F~Z8f!bD26iQ0b zz|={F-weFL2*j(HEn&#oe)$V_g)gjDiE~1Q(1h8}pilSV)g#25)}l9+D}Dlp0!Hd# z%3+!jPwM^wjRxNQY)&KRkdb@1~y%9r2Dw9pvr~46Np&n+sj41y%8dJQ_ zyn&aPYA%_1suAi#!5r?)m$13Rt>EEruLo7+y{0l!l?jL=nTIuE=g=yz%CuTjX!PHX zr(@x!W&o8@2A#8Cq-TV6`cuZNlHQo}uixoMveSsVd%5u_n-{-%{p{Q-M%VrZ8?ZY5 zc$s{Ed~_?iDT{{8uh51bUJA0)qI*qb%W zwO;8+w|8tOWe=Y7+|4cwL`qx<1sCS|rUSYilLzqa5dYMpklX}$cM?ZpE0C*llLg~L zD`iFDa>cHMl~v>G{dP;h<95V1B+`9-136qQ9v)}NBMsAh?4ASsEF6Nj{rQI{3hQ%@ z#~UyU@@15D(q;2EVM9PLnxwG_E-RbI4}B94GOFZ@fKO7_sSg3c$tS)@@b{_2t1Y3C zNGX89Exbjm*KyJ3yKP@l@YIbPz4#@ClUx?~9-LF;!Lk_-R3xJdb0uw_uUCme8?BN7GK^SrfxkF5+ZLU{+9P<+b)f;tB58hyUjWL^6!$os+UYZ$BHc z<<6Nf$XRe{^UC_^mNk|wWaqVwhOP{LTl=RM1+$v+d4AS*LHqIXSz?{tsJQGI$TFp_Un|V2 zLnEAeK$n6)-1^0q5EL-8Hps1*XI)PkVRei>mzfl_Vdqjom!^`_(C-0oxnpJdxM@S$ zGHsz$iL*yRx3Ed2s*uCM0>#EK2B|6?O%Lf#>582`c-NRn)%Oy)n2526ERG+iLYkpY z0C{!O0rmTA%s#SMEI;&U>`!@k*O;^*GYVn6_lBgk(cM09_tBnFeGBDtFHn;o7~zSd zyxLC-@K7lRD9aA1BtifZj0f3iSs2oW(-+n_&$>V;WV>ArVH^qK3V`fQIF4M45*~8tiPb;3g~ym z9{%e&@G&7PbkPw&{*CWDa~H$NQs>{fkJ~_>7WGTkSMIJuf1j4Yl+QhM6^!s<+xytciGy7eX@SE}vf4N8@XBFs^Zou_>*sjN{6*!XbrB)T3d%QALoqIiMuSc=)@IQQ0H(jLLKS3gk9lSD0% z?t^3ukXG`k0L0Fv3~}*9x)E~sh51!-+lKS8_kIOz=%K_tc+F~iFD{>2tHcfM15Lxc znO|GK6~^VHSs>;Hhg{P${EHr4!~BaAaep2okCH)T1|2z4`13a7Ac-_9g&JbTpD^EU z=)-Yj1nOGyu|tg(JX_Nk8M|9=hS9Dh7{A0dRKf(YZA;;F!|jwUwpO4Y|*U z2oEyxwV1GAg;O8_kyOv``z?Q9_@~S7{W5n28}j9*Ps&DwnaFv#A@7{0!VZ=GxMxgD z+Vh{m(nHstd6*(Z3cpH{MWCxep!*1H3m*O{=+ukvZlfb<*Y>6Lb(&f0GE=Ep@UQ#z zT9y|J0Z{hYTs2IuZ3;3pqU{f2PCu-37HUPCG6-SV=oDAA6uiosrfyi#?n*`V?dxPz zZ0mS~@%we%^aA}7{k~%m(Op=ot?rjjJ}NG(w?O(LN30!VX0y%uRHwk$6btDz7Vh0kno1Yv=xIJzTA@uu3NXS2aBdSJtCyN4at~!NPjOqbA~l*7 zBl$D~%rSa18gE!y%w=;nsLK@;z0q*5SVw*;j$~Khhj64Bh-KH4QOz`w`yOyws+@Ix z2MO^TJW7GRE)ag?A;^zWA*XlT{wpzL9Zl#e7f*em0C5ED3cqv$&g?%Eo0pQ5%E}(21qH! zHB+WtV>ki-^n{fH9evdL0`P^E>M20EIYgAW@`Dw3nKWvHtn>@>B7%kHVLvsH75Zar zGfAt6H<3FqAtN-HftI0`N=x|g8K++UI4V*37FQZ;dQYpod3_!XR1wSBjX}j4&Ypy3Z?;ecL`SA;umjB+|T*a)d z8*!bL##6yr+28yG?C*r(7mk=N4*crL@lVVIOA}#qFEzxDn$LNqt)k}34xw;$TDzp# zl#lw#I}z=aK|MV78!o>fwhBfdbIh%qQJy7C{Z)0^}Y|?ha&X%0gbB>AC0r0GE1N7T6QMm-KC4DQbtA~($fw%8qgDnw{}^gWT|jE?1ty#hlSrX=hICJWNnFh-GUU(% zCiG`atMqL&TX*)Tm~%zTIY>t5(4?&5mSP9ij8QQoiTte)yw`vS2JA)u28yjE0DDk;TAr!VnSGKo zW<*nTQV`~6Pfgc;MMnf7)na^c!R0Bt`msp>`pk~cNh>6Z=uxb4jL>?AQ(;F53aomk zs&tVWU*M?lo88Aa5ORRZ@+G&*0MY0dZ$z`>E45ekVcmG8$vtFQMrpwVZqQdX6|uq0 z7icq1c6tdNB4Q^Em@7+#=jzEYj~q{eo0()!9i3!<=ZL|0M9r<8vIUA6Q*xxvCci_7 zF%-ouH7I6tK;b+6gq(WR=ru>tR&k%Mh~Bp6OE7F>V!58x?j%osHt__+d?3lD{fUJtIKpP z&*XlT0*&smQx?X@hhi|S$yLNe-nQpT0M`gWzGT_RZ> z6i(>?uKWil%$f}x^Wet;ELdI>=gBh05qxPH87PL4x&nk~mOh~Kmm*U8Z~|$fqOpfT zPZ2TgtVMbEl#!?#zg6@Sb0Y4=&8^ae&SZW8=)33)pb2`(8O%HmpGB80Hj5+s;!l5o z%%FIH;hH<=WgxrYCOSN(kH=J;fo7)3D_?26m6UJt(fZbKEs~`sSY#-LCe$Pq1A!HB zt4a!)e>@z^RK!Ul7o7Qf)XnWL7Lt#KA-gug^*m4l#+~b6b8q4-jt#w~6L;q#46cPp`trJo63O3kfPeDqAmN zZ|CJSncF`kA+=b(Zq=x^OjgtOoD?ktkpUKgH>b-w)%JENW+>zwIDB$g5CSFY#)WBu zmGso}ZI(k2*8-N*PHl$y5s$}+uZxD9C?mB1z#RLjJVFK|`;Rq4!(*C>)zNU_R7x-f z#bitf2iz^$c)wll7F$jxe&0=~#H`5c>am9F^DCAfv=D!C z11z|<4#F!}+D45f5K=xW-hpV+bQPVlX^F~sj9{l2%^yJzMkIN{tj%2M<=%4g1@o{W z&$&lWsh?z+g2*5JsndEl zj_&%AG4y7ChNYAIM}&G4fo(g&hO;nz8% z8(tAZ66{_Tzb3u4$3yfY2`ml&eB1NP;{#ci1x^Q}yoLc~FJ(+Eb|vpZs8xUGh}qt4 zHB3X<;Axa=|0!8it?0VVv6WHZ4*=8{>oO|UtszRRVb4BERys6&OV?w*m&7FkCTY33 zzPw|3MSGMg&Y#K&LsTg?MFl;Vo_t7?P`FVtSorML*iVfkzaF!&#SK{75blAn*>TyR z%cBo;v-r6s?#BtS^CH#aQYvccf?*+?(O%qHR9@X~Q}BO(GsYGjx|6<=ag|iS`J7TCN8(eJnjjS-e)C z_l6a?*fJ7MLo8UnebWvu`y^Y)*9iAIiXiA;uJG4_H|$~F_;#ciW#(0lXn7``p$C#$ zQIQu>ij%+U;go-meDtvn z#QdFtmVVIO`a*tsz}PHyyI-EU_3%X_q;Kkw)ahrhLtoy16dIzKYAeyPrO)*_w+{&R zlWWs=*g;50kmAFq1i7TRfM6uK4=p`@Idp>Ab`+X`IQ`AHj5jl|Q3KH46x##*KpHH} zxzH+Udu&RJy2sLPFP%Q{DCxnZeW!H*r)(jDQbWf_hcc+|CAYkH2!})xRkUR5JXUR)&zSLV3UFcsORJY z$})j0d>~E^cmxS-asV%raD4+5gr5F)Asgqv3I+r#3oEe9uto?$i_HeCA20(M(m=T< z8y7Jf&=3l&Hn1==CHQUs?`0`?3&6utE8rVi3V$Lf8WuYfE3g2;4OE%}Wu)w^z;j1p zW}qtc|1?Ja|5^;djoE=4Q_(=M0vU8%|GUAk@sGj}K#Kj+-;!n6eYkaWT_YBXfAr_A zH}iD1NBTizr0Fv6XrvmSfGhg>l(7?%tcB20e~{ZerlB!B|a4Nfom~a(dsS@w81mD5)0t5BYw+8UmWVg{nC~g*?Xt1XD^S{hUzx#Ds zX@Y^}3|Cu;HI=RHBZ{ma*MYt)>TuS)rdQx8#EbU{yJ0=ER49=z}_z_gygp@v+>D|LkkwEBtEBzNBj`@6> zeqRT>FEdgf$`-6+dTjF$MnV33hrTKcY$r-F?rP@(r4&W!*wYQ~7-SO(s85@Ws1}W_ zxvVxGO(686_XqzLLSOISc|+}li70}IC@jN|gTHJi(+vXL)K8+FOWqMVsWQP2W)s;CZg{xZ;`vi`Nr%RS01{~+e#hb0f z4ps|UGn%qnG~V4;ik2|PRC2IWdq)JG2~W{oInhs&B^shU@ilclVW1|8 zl|P)BXxQm&ii7~Gs=Nx1zu$6f?uMo$aC3;(moXuLd<*Z7vW~lZL_EOV8_cpY_T2Nj zQybx%HW6X%n0XrPwd{~n_Be$~ibuYE=9Fdv&1laD=JSRVC?ema4k`<8&dKQ9HMvBfQU5OAlH z1X=5wnG}r>#=zGe0L7Zug=l);q;5jio;GUUO{eA4J{ny3{SK?b5`{YNcHn~`oQ%++ zoF!>eLSCJL8`6jxtaeQ$(yK@%Hj8}|u&%opBI`RAX8J@b@XiR(^rX1M<txn)@Md znM=cbH64ZCUxKOMY_>W>#?-Psk5Ae9GeA)hCmm@rR#e~4qPE>Uz>(OrV9&|!^8i4- z9z_iIH=U$PlHA&=^y9B_Da8#`yLi}8Nn{{)s%y9H_dni0Zgku(+Jiz=IWVXY)MRW5 znth{`9=d%ua?GOv+%Vz(`Xiz?ck3q95GPh`86qQ7@k2oawqW*do} zbst7hM;Epc7mf{D_sdL@ouxL$^lX!6<}yGYKjwBI!&UExFFBY>iS^`VC_yMO8mr=m zfFrc}NmCU(&LSSoM|oh!L6)K||FjR=W1|V7bgcx)T!di#^?P!d!5i^JrmEOctGL;| z;3!s#2}Q--Un%ilr6LMNLuWuGQfSrWXyH{a}K&nNNkW@W^8x}*3 zj)7P9FZr_?BmYlGuj?`UW_?UcP8Rxz_+`bPo>iQV5<>x6`MyL7O1WNmaG(pS z!jcGca(_gc$SV#q%cP{tG~4@aLN38srpye&4UL3}l*@j*hBP-JlX z)Jh?$HE@E&>ccE#Sjw#>L7~dLL7r{7%QjHs^|}NkZUm$r{P69=dzHcu6a=Y=^*_6% zTyTGcG$RW))ay&_uENYPZtS|NAJ35jmhV1}Rc=ouoqRZ5d*m#l-hQ>ULBK|hn6AB% za<^$K-92EW#@lCxp<^pfsH|DE__?O0S|^M5V!tfDyL%%6(l@`AY8&Cw25qK*0;~B0 z3Ymli5i1`T233O0u#*~Sl=@%u6F(+1G#+o-?iPXw#>9ECoa){zS~lQ*%4b0gA;M7+)n77AgktV_mRxP+ScL}pj9 znykB*pH_0$pDz#25GbSd0A{q$E1QnZfrry|(nk~69X%8>zQOd^F1lJr(<@K0jfnI0 zy;`?<<{&qwo~Mc94FqYf;%pPU!?l*6r;SW2I@^VY5`l3+aq54W_&Y~I7!9`9_I00PX*kew**AKzs&E_)jkPxJ*e+QY^usq{Hko1`=HQj6G)aaiU@#l(qgMyOEi-`7kBg(k4;sohTW=su^GkR9coM5tf= zHP}m9sybJILcT&)8=Qx10N<(iui!;@eJFf*#A>i!2q*{Z`k>EzJ2B=e^|!ei=6!AW zDjqQ}MV%;4=2ihO0Ou%{8jE&9vpSaZ*dbiznMQq$^odsWP+mdJrWb7Nd48)#S@WF3 zUV_g2CDCBbWpei6(&kw=37SB(1vR=VQ&hp)@y5l(Qc070NJw>jVpz!rS94t z`a$FX5j?YWQ0@uul;`b^{BABDVX! z3?q?y4s15v?J%6az^#}VUN+t^V9%f0qsKPDl=xy6P+M#3%XEvH^2Rcf$HrDd3=66? zkfkJNr})(lKQyALQ<2S44} zKEOwHtkc%(b$-u_(()_2Ypod2A&`j1c_>}vF{tlaCf)D5SPvfB@ZozSNGX9+rQK91 zdb)NyTgt$Af9&uZyfCHL;WmVCP>7d^wDkh z-&|B~U6w0u*0J%{pGt18EQ9M>?9@tM9T=TA;8^eqdiY^{+_DS#1rZdNsbgtZ9yw+{3{OCXwm1dRAn_lRsIBV@_Z<8q<9A@up5GOklSr4bO zDd|vy;*d79*zblca3E=Q#;emQ+Pg)AfsBRP#sdAG`_^4lDsTyLhZjD}*4zTv$Lb+J z2fvTi7k?Yja7E6u`mK>##)g702WVp6*flL>dY(Vu%_1%tGG<(4Z;lG$)$OgKns&wQ zw!SZjk8|c{U>y^0ESl@=Gj{~2>Hb=FRI9MZ)HLedG0N%N@yS<(EinL!euFLtr$0$X zSTZz23{&gIyw!b{_0NXt2=W2M)jn5_k1}Z}Bssz5bb5C}q_<)Q>*C<&3YGl`?sI!= zQ@vB68|#>omjZ$4)MmY(rSqSUN=ti*hyn_S{~ud#8PjOkc5B1n?#|%u?(Xg|xVyVU zaUa~>VSvF0cPs8TxVyX0*XMcnPTuT%f0{Ju)i!DF-Z{^;*0FH&XgQ_2hz{^-h~2qp z&67kBEAFDMLLt8?CnhYdLFjuJW3<}__6nUz2EOrMuI;uxb!UfBoiD-3#-^T4qg_sX zqF|OE{az*bYk2WNY-`r1_1_K97(Wy#J}Wl}i2+*0u(AG!slf_b1c7+||LF=~&j@A& z$ItlZ2lL-0(Ess+XC#8UQ$S0gjHE{hDv+z27qnqPf_HOwwJ>o&g7?n-t-I;8&hy{3 zO0W|(GrH6VD&==ysCmcM)j{l)Zs^s>W)!(SinTu$E9vV<&VY|8#7D^-je{1N*-LW1 z-QVi!g_Kw$$O#|E)uqqVXk*q742Cp;^z1UeUAe~U!&BKwBIB!d6h0Fay^q(YhXX#- zCgqE>?FwqAAXLBmE6z?>*jro8mFmMxLPk3*;6~{rg}!;Vc2g!$E-0vVC21U*Fwa8F zxw|z^tG+M9GB$cAs{tWDubK^zZ@sO*#@FeckQ4a)wo;&TL972lm6n)3F#mP*|faxOl7oJ=1csLWbUKm>sa|Dk!(Xv2W9K z<Fm?@4JOMUqOMS3g94 z6<5+=_2MDh+0p<;Z8l)mcn{N5{CJegR|1KRZ?Y^6)*o+cJ8>Zq!Qn5w!Et`kNGv?y z^yFw}`q9bi*hZr%yCu#g7FyOItFi2<@H8N0@033)(vQQ+c)8xas@Z)**i7IV02QUkN`yiJV$=!9V>K z>g4z(ao(?Zb-plTP^?J7^h~KENb|UZ8>{GLS#wLY)7~BK<5}7z`lR)4G2CK+`$rlv znk97!)R=lTz6)TTL$PBiSe7ee{$&|+?DwupLpL*mX!t5~7;!v6IV`>x8mWldYgL)o zMN5kMVk~P)F~dl=D<;*Z>^))$l#k+m3^v%Fz4>b;UhpVdPHX?xFi@6HfJ-UhJXZn zrwz3rR9%*8KoU&a0hOX{HE2ja4!{+J`CI6$f=C|nxe`;kk#y-ibQNb_2~l=kM_bKx zwXrUzv3A{i752}i7-t(=kJ0SG^xtDHztFbF{GIx@{DCLahT^E3KPXMy%1XvYUT7t| zy1N|S;i>?ehO=UA>CC`@EfaI6tqqmQvcjLSUjs1k;iUf-f_|x8(wRP#PDyNJ!}g^+ z$o1Oy)9!`r!CeqyH6!Q!RBE3Uhrb{M3q+@eTsdAqb^Nw7iAEmu1l*BCS6A5>Y^S^e z-9D=dq%P#I(5z=WXL=!C(9d$sWd@gdJqhgBq#6Nn$Kz$9=XKRsZFuj$!)3w}XEj9R zk{%9+8cPoxZx?LYAvkVU*T2fAybGv`RN}H<(Fo+UuTWK332o2Tr!b%BTH24+|Hfj{ zkBUE~c-B!2U2SkitNxH5G*%OzGSN6Tn30?jmuWjSoeFSUL=tFFMGS=jIeu0fOeOG0 zH%I}e3Aj;>(7#WjOsyi}fJrh(jMqrY=w7kd(X0OsGpAjNMYHaBJm3Oz8|o}RM=SMJ zJ`IV+nO`c91_r83SgC(ltNLoLx9O|*AE!Ev!Z&q33L-|!FW(d zp9Z9Mx=BZqjf?mU6uC&?win8gwc3({U6Ym|eZ*SzI@n@9p4f4fk!~^8e3as;rr@>n zQ-DkC$C0$HzC5_d=-i-ih&rd3juq2)zPy%^1!RV><_vR;tP?`|dD+NHjA)Tr!6Cr7 z?pGm&kM`;rTU?fIQ>d<>_}e`B^FB+kGP@350}6>3c~ShWKF)}_fl2@%{=B2Q!b zIC0wykci@{D*3@EPp786`UIB-H55>hm*h8xcy6PJheF%qT6MKlPM?-jAA!88Q45iF z-SVXce%d4}q_Oc9U#3jBek4G23R_@5*Fzr7keJsbMEU0h$J@RkdM<5j2G>^MbnVRH zCk@_!1dt03TUd-jAmz$6d*&}Q&80}rVi8G9D&bt>GQvSqf~uc@Wg9lrr3+xtT2GF3 zCz{Z%95datnpe|WZ_W5vfhJ!RR#340-x zMQ~@IPPv7*Xc}op;F1?N)q@xg&37&lsdZLN&cdY^ zgI3?-D5oP+4Hy9wM(F%gH)_`jO?b! z$xoe!_{4;>Pr|6@TbTsr?;2|@^jmE+d|&{?S7k}`W9^s_FyUS%pi~L?$}&BYreN(4 z{123ARHb?2QI5IZon1-xTpq!DsJ_Tz?@aIq75m|!HtvW`O)A#JG zZ^-jy{~#1ORK072nr`Dt2a^(`iE0rN+`C-)8?CfA#s1w~3n5iSPw|&gD9@9Y8h|xU z7b|M2z}HML2iP&J;wAy036zk3H`3W ztkw!jWa{cB#Wp&+qWt?p*(=ko24Vc-6KN1ye%;aMzv%(1CCWWIh7?gcvfqNdBNDAc zRuBeZ!G;DS*XQgaG|7|Uuvmf2Wa8=V%}UpRg8=ul+aNMncxiS8qTHbk|C`i))(Ao< z36ZT^eG%=Bif=z4VM-sucU7Fj@*7ub4<>V5pA&xmoOC48OagS|c+NHH7$se4T1Lr3 z*Q!dBX-nBncI&XH+jFyj(l{zUa?(3O8|qaCQ(&NP0Q8as@|J**Wia9Zx#g?hS-?T=D+sI%gi=L;w+&r1vu(WNcT@ zH_+uS_~W!-h9j65HX^LtY_^|OGYkscNF4k;gqM4pGcaa?6!GlxJw2w64NQ992|TZI zXwR#@iolv|>j&}3 zhx?2_Q&>GL9se4w=Q$fxP}d)wce(XDs|oA=eaCMOtV}*S`#>@ayvP(M9@4KCJL{?8YYBcibrb?uf}i(T$CJqZ=l>u^r4Rl)AS?<%kzwi={VJt1l7vKCks8lInVyYtq0(`%^Y+|ZA&ruFGUxzK<-(QCZpWZ$cUG%gh)g7y> z05hYp#D>W@I93VMM(WAb?PNIIRtYq+yTWoD@@iC3*lfFT`Wpp;a$}5NueTR-ol!%* zDY1ZjL0_navFZY&mw-g{hTM3?xU)`kC|vslgQz=lbU>_TUxeBK(&CUtK$EG_6emmjRAQ{2h!9j``m3j*l`c1no?R*6w) zhP)+x7JKzFf}6^6sr{QBLqmptc{EUY^v?eDffCMog`*a=0qI`NukGYe;9Qd{eX+Ja z{bfWgg2dM)23_M9K8D~q)=)$`AB~JvhJ=&k$m#SY*WxX_=rR{Zg9HT_Y|nVaOK@d_ znq%-a%uBrNBM(AKVoyNr0m49lz!UebD39lW$b$d0^eth+C{IBc8#HpT1^ib`?qX|x zh7-Vkn6y}e+P1jFRDmWVS`C@Bz((Q4?)PfelU=y99@(WLqLs=nMsP|Gi>?ipsDyCZ zi;kNC4y!JYe-naCdRbwiz~s6_rE8J$k2os#y?GR_KXv0sx;~sNRd(M15zWQ4&O~-B zD2rE|v|b15KZ(lO0Oy^l9HE8nZ=s zo4huUBI-BiU+A2=Png62rY1~-hP)SOC@r9ro`t*7Vnh*OrMG2TaV;2aaKc{*Lb>=g zF&}AvnL3enCi&p%+bD|%4oiwKGug}ng>ZP6v^gR}{40<3VT;(Shz6Hbkf}eIyV=JT z8{DD5SeYML6JN!ks;XQT3s-cE5JJQ(#akk5oSrzB=x=Q=an3-1`@)sv-i+olkbiEi zBv0I5Vq(brfPPy^w`r?vs4# zsouK_x1|%eYeljm%axBMR)>lDXL7^I>FLC~>4`?6CWO3ZYF~5XtHu*aKzDPMpgsiN ztQQfQK3%0Jju{#N%sRYkbx4JqG7chF84OV@#8M=TdOxiM#DZym#;4ue>6A1G@!dJ_i`?~6fyZp(RnZmBYTqjNs zJC0VZD6^K>#r4j){>8}}w$a%nsW3JJs}T#n&9|5D3D`VjQH8#aVTgK1{zs%VD_ z=*J{Y#O*L<<)3>mG3{XED9T)axKrf4iv87xFP*JMg;uC0)nF_MZo~Rb8|z;` z*v&e?t8@UR(^}M_xsQXKI&u9;)zne~McO`$H%^WeW6b}4fc!h-l%k2v-zcK^u(r%; zgoKA?SN=Vzsla@%2jL#|Nt|WvFmvs40t(A>=;}5P%~dwJS2VOpC_R(}xE)sra+ESr zX0FJ^E~w+63D)TK%#8q8ezeW&kRY5{Dw-6)pn(olFLZEuNu9J#!EaaJlx^|p)IE2r zG*qPn*b}L3=wKEIkKL!5Z#8YP+U_ zd7@QP@vU%@{85EstOH-&5JhoR6t)EoVv>9^deVKUF^N(Zy<3aRi$yNbC zQ!Wv<0e*TL^SJ6N<@ehY7>+0_t*UB0+WjS~Tg2yZQFt!qMG30GdUrxcSLO{3%ymKp z&qlrgdc!t2Qjxn^tt0N8;dI7Dg8Ykre3NhOelOL2JjMJy-oUoL4gXU9ScEM@6r-UTE4e%a$g?w zJySkrf%%1b&mknvPl4-76dbtLXH46ZTLqJbb9n+^UsZ7wy+;VK3XX?dn>qkE%7vnM zHH5KZ^o^;y&L|emvrI5tN7MYUy-Ug&gQ|P}p*VeksqLx1pO|zK9U`u%+=7`V!YIMKCH05nytw{bnRI?Yt=DN1O_TW*E8DG{y;YP>~a44); z_t`A$b6hj5l5B&O4%NG!hTNf{__$m~d)U$n2OoTY!w(FHuTRZBieL{gly5Gf+%2yZ zy=dlUUd7t-Wj%6Vg4B)oH348wgQn|n^|unjV(GQ@^WZj{SF9ryRKV}u-E|0ih2rq* zk>v>UMcf#5cLihL#WqfP%O*~~1qNIE@gGm~dhg$z;udFhjb(sx4C2qM^-WZSR2~r+ zOfNhx@V<28>~G{cn%Sn%iOe#3>)OxFh%1Ac4NXbcE!E;C41h#cvB3Vks{G!&5yXri zxIGt(Fxqb}@-(YQDVdY}A4Jh=h(*>`#VO>thQ$a*`z2R&Mej(Yg^6TC&RV!zQXS`Y z4}bm8T4=n8!?bBF+oo;rW3pl7MC0f$e3NH@8%5YOle^FZ?bxO^ZV^j<;a|4R(}iq9oTu0 zG=|B!o+9@u_25jA*y3{(F3qPaAi1Q?QyfW7%2W>eqY`AaknS2YGhWOPkZWO?Fs426 zIQ}tiuz}s9c)rzEy$5f<#e=l}`)yA6LNoo2+&kp!?Hj;`D{`$p1#Gs5C2pmtrW1LK zs|dE5aC+niz#$2sp@h72tjKi2zzsM~f!Tmr62S9L5Wr%;5@&EH);Qi&ymFy@t^OP> zs(ShPF`9C<>+sB?7nQt4MJ2&@vmY7&;5QO$Vi@bXq}v8vs*p9S?4V0?ZUE9}H;4!^ zOgnQD9)Rrb9#>q|knFkeQDVs5*sLuYK0?6z#PRPB>r;ZU$q5{Zs!*SpS(B2LqpS35 z%4>NyS%CDFiFdCff57@5J%hfqS+rAU_!;x~3<^Tfi_R`ly2T#^BgRShkLP-b>esHz zE2|XEu4CG1p4ES{tQbB$>7V3pkm_qso(|32%500WO1tYAZd(uLtnbt%@oFz@II{nk z#8=bmB-+T*+q$H@vFl_!Amp|`V=?RboD#x`jNITPTz0%tqcOLg?x9k8|Cgrvc>CWG zCRqujaj=1WtsvJa7szhP$_lc#@-ngVl5lbJGI3DeN)|MA|9)d08W9+OkpU;BF ziK((#$(*v-qM&NHe1e(0hr?D6z2DCn^5iHg;!ARcacV7`4? z)V1b7qqRQzlUn-ucV!K(ID9wwespTzN{C9tjHy1xg9L2HlScqt%`EvRO|MxPd`sut zbAZ-D0MKSmMzH4DV-!?=+T=IwNxb&vF{1~e%!`QHA0zOtb1(`lzvsLbi_GotXU`Gs zd^+NRf9B3qdGgL!v5XJb=nuk9*?4la-MjBYcU32QWdvf3I@)Bp+Vp-Y$Vpx zBelJf6$th*5EjY4sBq&z#+5J22L-koWq34;1HQRfuy&!U4wgXxbb#ELyCpLOr^ETzl#XQ;ibFG^Uwce9(7vpKbq&4La#-A0_E%21J@M zT%xV0kucCh>Ns4H%^$E8lYrVfyb^sUU~?_w$}c={?W*|k`%g+qcsvZ_@+SBZ`cqlN z{5uB=rJ8?KpFvB?q3aOuJcg%B;qiW>8e8^D3HlDDAPXK?m`V?yd7w7&hai95FIf~= zmUKF(qMIhJ!ss6(?IDe~87&Hj08q#jdB(g$^hH#aE8`tB?!ObL%3wCC>4EK&>FPtY z{QE55Zp=HN0A>C`#Xb0(%CnF%oz9&)A2i{IPtJ=}>6c_zWq?RtmVm&75VYT5o`rC^ zd103~Wm29v%_F4W<}`#GBM|njiX-ifhcC)L{vXZ}d5BZp1%w2{ee)oU5I|aNgL@!g zP{6u5(6OMWKk^6m;k6keCOEW2zmC=mVp~XHf}|>;TT&tMQHXeas%s|Vu$(ABrReKZ zvbjH6>%DDD`UT+@`%9;cfM_%q{C6#|A2KXAs;{aaJQl`QQDMIPr}@<=DpJLHgfyRi z7SSzIy&eu>00v$DUi6YW8NiGRqbX;(*N*yKlz*RK6miTeY4BWX+fG?eFod1MW)j-} z{psXdKzih-U)L7`0^wzWhuGDktet_zYlBtab?~hERf@2o(j7Rkq7afPxnzH0-UJ97 zmYAu4M{QG2Q?m@A#W#lrBrM>;Uxk~KU5W}mR#4q%9%;10cl75T0#4x`)w}4F#co9M zH%k0Mj6Ak;JDUE58hxkrE^J%}u%0x4T!V}jga}t%5%KJYr(=d-o@{HCdGqpRMlG1ecf}eLy+28>0&?3Ip#PYne{--qKFkkc0A1p zJxqbQD6B{cB`LlfwKtgp+k+pr*VZo%HTsI)u2pHLtnd=6h=4!crKl%p0%9YAHbTEd ze}|dN-pwJMnYxCqi9X~)|7pD#ujGeg&FU6~k`$8xr+epEatkss2D%XRS2|j_!oN0-duPhr!35s#z=x;<6&nD9AdO0J35Pp*lpD_C! zv4Ulq(f%?S5pM5O6<4hcvu9M7tw5x%`U{#2f*=-IW`M+G!~5B8K?|`IXIO~&I>W~; zc7g>gZUnGbB$Jzla%A{uA}V%S6JN^ivn{?UI#D|J?fxE)eMV$z z757{y=ppDhsnP%2h?pwUGuu1d&jVmzkf|x34T#gRlPnt@IiEyGNkP{h->AN7Zsq4* z{^izLrcpzPV_2DD*|iZ74~Po-m7^(#kF}|IA#Uh%Df5S$KWphQ;gqY{b6K`rpjr9T_+~_GEloYx)WB zA8DKzxJwBXfBc>Mu{pJ9H#L%*G3MhEr2?R*VZPyECP9ubxUEzW6BQNJ4$-ZpP6_@d z;u6UADuzR|Z_$yQ{8$<2inK~|+qZ{k%MQ35x(W(mV;}RIoWi$T>S$-Rpcg|@v|~rj zQ#-FZaG`%W(F)_smYg)d0xvxypN2P4>WO?|P#a0>RkLD`*YoSBa|}B6TPPF7a|c}J zM=}uzXyq)n5}pAlqJaCkOgNnHoR%;O+q%Abf+~*fO#H3(-v+gauRT3}6WLc9NnF;( zL^xjT)^A3jrTgwDTjS z+?7{+9Uc2oX4Rj3x*owWre{-yzsoY=d{!q6I_qc|76hTYP#ZQ0VVP~Qqph4er6nu{ z)*w>!cV#mo&1U@zpY}Hjs+nz@(GDf!C9YJ4#Qiv6Qd)$v{pF-5KW!pc+r5hr z5-hi0BmG*J_-s`Ljv3tEO#oLuyM0TkM`XH}r|0G3*U(RTNZ>UJ&yExL0pBAq?~v=e zO5f?r_Z6(2p1T#EJZ+}j4LmPwxhqvgzg|L_TslgZc_jieai}nBGu-z$P!Wm{72Bx8 zUGzqwkvZGPGi5G|%FW3$c+G`w6;h}PnOP9GkGzNELqE&MX?s*0?EtlI-ZWH10#zzf zRo8AjJAEXVf48`wcAegDcD-S(<0tX9dYemCdYK4kRugt%A#zV9+QAB zc_XKl3<~`o85Yq16`8z0=@f70TOh6-nKg=-YM*VJZvHBxj1>q@AIC!wHW=JS67%C9~ z5!xX_K?};{0yMy_1B1uPcUCjw&>k?%wv*t^6Z~n~&g?B^3+$(3o^q2~`fitUv0Cw+ z$2TiD9`67EdJXfjP^#<0nqB=8^cTHyzNkF@q%fvc7jRCpdCn_~*xqhY|Ahd8hz&^q zTvkwuH~({}5p~lDQLMtrLj>PSI)6foU-|GI2_y2W#byJ>|7E`1h2Ud#uocF?t>sL; zVB%^%QP5O22Wy6Q!UYoFZI&Yh?vSR`><3)6mN| zg7NkNJ*!u_6Pz-J{v5Hapj#$quMq_taVT}~3>x|vv#;4-a8p6vo_yg^a+JevlO?W_ z-ejT(y?RfsVgJBSS$;wMcNUh{ha$ye<>dhZYS}n=nAkz_O;!-J7W52+u;t2d35CW- z<>L7N8*6=@LE_vT=r}$*5BGm_pZ{~7gO!DegYAEv&oK6b{hwL-zwKM;FQ9Wj3_yAy zC}#>%5!pboO%@&!UN$C9Py^O~-s68h6_h0XU&Ayz_x~Vdw_g8)kTn2Ff*dTopa|*z z_8Ec-sNB}Mumfilz96==&Q>{Gc7I=bRw(9h@hj%k3O1oA5nG>+Xr*JtxSsv}`>*Gi z5EWAd9MjCILLG=66dD?Otq=aPx8Cs!`_N&q=j&~6y`0wR$30$WPg}?KSD?#dTb@xD zea2F`ebxIEfP1_Cx(C!w-0Azex5sHEsZn}idwU0E#rgr%p(@s}Ha?;>cju>E&Q*r?|P9JYaYtH%@voT{hODf_*XRA_RMExv@q%m)2d ze{PW>-gGRufBigqZ#iz7Wtx16K#E-3Sfq0(OxmXk0F!$`e@~;@)6?wkd5etm`LvXC zt#hH1nPj7nn`NlH#h^WAx!}f|rJOQ$`5=%}Gw~~X@$jK5voLJ+L0_?I>LC|6TT68= z=zbjXc5Un|&Pby9f*3Gdx?z8{%g<{g_ac{aQzu6unJSx61bu9fhBS#um_8Wj?4`YV z+uTPChy;mn)FYgOi?cOH3z+SPZ|92YoNW)%o}u)8b#%JRma-ECQw?ca$^$mP3Mx`` zf~2AJ(hxF$v%aZ&s>#no^;Op{Kb|JATvXU{yQ?~vE;y;F!BVj4ViwYmTI{uozGj(Y z{XV0EC9NS77G%no$5j)np;MVs^j&}I_O$yvISvyFTpp{*=rntD3z0Rc; zuzShsJ#|N8Crv61NUQYr>U;3qtfdPZ5ukIm`oN=KvGYt=YqI{KoU=6MB}+^TVC((Y7etcEeu=32Yh(Sj_eX{_9t#w7iP_rt=2^8GbR zxTOfLG>Tlv^&4sNMqVM*bcX23fRd#sU{5+erZt`}0=7^Dr@$gfjDiL$I`tPvg0YuH zYLoBR-S8d)3fwLv1{@>?omWUSA+{)mTeCJ_X5aOB+3Tedrh-5pS9&GaBPwuyUpKbP zVlCSQ4_VFLbzD3iVw^2!jZ?e8{jN;w6x=jA0T;&1)%O+&9U!4NXf&&|vCkX}C^}W! zc84=o6OhHs%Fsv0;^Oo~-V#>D)ZGl^lwf*Jl2>;n#O~gwxrC@E7-q$RQyPH+q7mAY z@H~Wki86e>Bee9#L$~USlZ?&X>;jJ1O~VOzSI~JLvD}p@20vX-cOk1b0a?5_s9peq(cNHKKfyr z*Nblj#l9O>5ph?7lK6)FrD@k9(^@^Rg?BD>w6=d{$X>GkD3fzt7A=8oZ=Z<^Nk1=v z6Qg&K+_cZY;va;*GvuTA7Z`B#wOZnKE*N%Jx@@a0}@37hv<2bw`CiL@{)`$CY z?S#)@DU^7}1A#&m& zK(}h#ob*70>h-!7cyEDwJ9=mRO(&fNZ$LS9I&g^a-o&t=flj{z4PNUUktx(5HtLxQ zJ{js+x6MFYvf53ZfR@16t4w`w*Ec1KH`64ei>Yz)Z)Cs^>tFN+fD*WL!jveh{bllG zM7Mwnr$6nIcjw(qaAM_k^l6D3b)Bib8zu$Nb|{H-=VU?r!^7tf-s+UNF{RXfMyeXz zfRi^fw{Y}<$_CiC3LBpm=fKyeDxzzwhCv5Hvze5dxr>M8;?obNl;! zH1KJ!+!_0QO}djbI<`z4s(<^R^5y8gA!@~VV_OJ}4mM~a0@7m8lcZ%$p_olc^fSz= zC8IH;-mHGaLXS&MW0DJk^ov*q*OipA?-L)uk2{>NyTb(nOyp z4>|zQTJ-v|>Q~ss0#mR8V+9xA*n!!fL6-Rp5)aX01~OjPNXo4e8sBR8 zCn#}p;5=h-SOP|kf&@h)k*jl($%Bl_p8W+ndvx9gWsmeR+DQSmxvkXP^y!Ar1{(sO z_f<5$SG#{bm^pEXFotA*C)_t4*+G5coHoEDtIM|ss+hEuk$ywEfT*92qCxcNKJdbt zMS`~f(fu4uj@!y1!XS@>XgnxDT8z2I)n=H=vSqf6I}Eh?5F26 z1_N|krGEg$0+mFD(#LN6fgKa?fl4nIjgz#$Ud*W@Bj5TIz+C=YWo?C{*Z+nJ344WJ*#GZ_f#Wh`^%gdB|3QP- zA;Gz23U?Z+{HS1{U3waTdq_uoKMk&2TnA>q)`Ta^Kbz_qa6`|rX#B%XWi{Oc7bVL|rM1oWSl5z7TnrKFt+ zINWp&r)%;Ay(c8luY?t-Q0+ggvX%ExmNRm~4ML_IZBvykUi7~J_6+jk(pIBp?L^eP zAwSvssa?_!td}1}FcEyD65;bR@!L1Q>{T2Zr1uDbW}?ilxxXTIPwAIiw$x=}(mAl` zg$WzXHzbxyZsIpo9cnWi_@jcF2B6T@u0{$@snDzKr!jZw2)s2~s}Gs2-u2{A9_7iu z^A>#HDr^({O#%A}m`4iu$6|%xPc@_`ybajD9i+#-#nz*FXuH^QURr7)6`SZ#x6BJm zeas3ZgWCFtXPLX`I0^o{C6uYUvngyfWiFNt#ApxO!81g#UGUsMqrb7f!gKXzw|Zc5 zz@QjO8`AG1)tcgyZ?T~%T8xn277y0o7lEJT8j571{iLe_1i%~%ycCJMz|C29sy{+l zct$F|S2ELvp~EZ0YaS`#)SeH^*4>Zl%iiJIWqk%$xM`2_m+~uhD&(E-4we`{aty}} z>#Sra`?7HA5DbLS67mQnzIawko4)X(EwiN@z)dhD%TVQ8I6e(k{4!{9YNJ74$pBQ9 z2bfkGDbl^9H=sn)W;p|_)nb=E^{&t zKlJX>%OJjpb@Qz3v1=@4yIB(Hj)z~W%E8d=?AWb(kh02tf`X>-(0kN8zz#}I9c*LWo44MEdi zxj>57!E^}UsPm~4kHs4~_ z^cwPQe@awSZ^Z+Xd^XCk&{=*#H4dy%hzXdSRU{92X&M^cO~P+qXU)U(U;xQx3ND>| zI1`QV9sXZI+iaF850iTbUs_u59jb9gOvH^7;0J+iHRHR1l_Ux^^@B_A9PY|>!fAB^ z)?NdcJdk9-Y!hkoNt0c$b4g33m(S5CRqA3&>^vG*qH(}&e8XT5?%cCNP-fHvD`^xc zyV55q{AAN@`waPZbK)f=j)3wKXih0U*9Sl7w15?nhCKC@Kz^g4m(uu^LU;N3o>yc6 zunX8Yg&EhYdJR4JBN@M1=Po8`tGmG3-oj2jM$ST{v-Fh*!S=)W0_E{gM@C&UeeV(0 zDtxf&tkcZOoVX&%`D{c34G+!|*da^O(vUwd?bLk9l3TT%>mIKb9a!vSUjf8(&Q zGa6CA->&wpgYtVm@}j#x6kb5hk%HR?qgZbM{ZG3l$C2sv&s{!-zn2Z&_cHw-VDm{e z+-7b0#(&0aif%AATe=34rEZBI0vY=o0|(nr~=9O93Wm5 zN5<|NG-1l;`G2<+>@5H73g`UzKk9uN1T}z#{r`Nz+aw4i+j_I<(xo;&WONvf5W za=<#bQ%J@_%lIL`?J^OY`+5C#@9s=%K4y>kdY(pn6q75hkw=DkSw5OTj2yJe$8)XQ z)=+Gxzruf-;$CseE^qT&-D-MX;jXx^Tj8ELzI>b+?h(LN^a1b%zB9gGy|-R;=B(7! z0uC4wT&Em8>x^8m2Zg8A(1yuOY>LTfSEu&Rf3U9aC-im&J_Zgi_crGAb_YH}AX*83 zJfs`INC3QSvlsSrACwB?_GKy*s-vvn;LKex<&kYSyNxIZl1~u#1>~d#tsxN*t#Qh| zQ*GFHhI`mzH2{0(^72+I!u!Pl-}e>JwjooKg{e#G=Yov+NF^H1H*7jKB;k}?O}`o9 zf3i{;=ZcLnjgL|_#SOf*0ELkOSFFPZa{CUIgm{5z5m~R*b<^KkFqq21t9&}$^eZ{; ze}wn0p+2^17M7p@zglKnk#SS4j6JcIZA?{qW|ckCB>}HPirY2Z@JBGAo53-|;DLnN z2F1&{burK!-5NJKwJJ7e-o4>U{I<*qdW1$zN8o`8>q5cdhv+z5mA8RQ0)q<2jQlt> zVnJzKf6rWg+vHnzkDZEZ8igNW(%K7o9SNi~NN$P20pBOaP z`khexP__u&B>Fa=!Vx_$=}TpUPr0^q?=K{fQMu$YGg@HO2az`}bMD!Es6*|Z;dZTz z#gnO@My-FqdcuRwF|$D{Tr;|T#z+@>Pj2oTKL+S@bGcBCxiO|w_DM~kQWlFTG-+Gs z-mC1)%Zu3KUy(v2G_YEfU=GmE}#oM_-GLg*{Y-T>D}}KD?o-j3ETTc z`3WefFwRxFW!#0YaJQsNc$1Ot6>AmDJo|HJHF=(lkI7}K3%oxN7TfV>s zWHEU77iwUSdHO>1wJEy8KDmF)S!Y0e7SYbYAjG3JPHZB>;6V-v6B9_uB}H~YzI%*< zhshP|^Nml9R1HOI`r5v5HQS14Zb>ggtO0Jo&ix{lR0m)dF+_UWXW6Q`O#Qpf?b@LY z*rf*+C;YSF6tizRZ9dj{_DXQSQ)baa^F)7( zbw#rO?RLao^u?p=lR>>lF+Z-g;4C5jvg-aT=I{zqe>Qy$16MKzp!cLZeBLZ zD|+yPm+65~_7KvPO7|Jw8L71SD1N29#EDWeKr7>Zm{P5X6lLqijJ{C?1%Ot^wr7Py zte;NWNiI$3rmCg*R`fisZ4gZ22WBXlf6tDH410!3o&p)bB}_U3w}%rBhVUh!Z2;Re zSY+|UEy7d)#;xfp3f$&u#;3ogMDlEzvQoG*UfSMH0UlmN?!GUcIz@#!dhS=e##xNL zvaA;g6=~`HQajHjKP6n>3P48VCY1s&LZhPYl1C8YTvqQ`(DKqu`ws&DU+XQ!`nmy{ z!-q|BN{$mLKfPqYBX6)(4*VdqOF|!vcnu49x1|C*Z}ne95p}e2=#y;0qP0i}dS_+5 zx45^26PAZfPtKrq2hC?gi!#xN+b8ba#N<(~^IeDmVwP$py(^_GNPv<%RA5|V2Z>1x zsnkaj&6hkdAzlJSvFTFtKSMdFCnm z=9n9AnT{E&Fs3@S3^+C2j!TS)vTyvUCF6@`)L+z$k>ZI%Lf&X_5Rvoy&7J5>K||Kn zZMKlL9oo|d;ncxq0IfZ!B50qT_LvAEN}J@b7X^j+l>c&ek7+zuVyyI9F;v5(ROFYb zwXR*Zxy34e?Y_#xsmq*47Hh1+p3DTZ1&&d;OgUU|C!=WZB*4#mF9!iR;B3|6!lEBu zS*d+&aqLKb-Yu0N1OhB0`~(=TBCz=Dm1DbN7iFReyE# z1B&5zoFI=gCtwg9+ZbQ|ps^ZH1Z=h+&(q8{)>1wRJo_BC3Slo&+Pn#gElg!T-Rw74 z<@jRm=>UC}guF!3ZQdkO*h<5F0fM-&u3^aq!B0MICg?rd@2n*c7wj(M(u>~ZiEjLC z<^)JaQuIctSPfE`t(N-P<#0+~R!^f`iu|T)rHP#Qv4GbT`>E+l7fH(Xgu?(JJrZg? zm%%K=Pj8xd%FW5lpL6BM@h>WgZImu?hX_E!d@v+3uthO9k-H?TD?(8p+4$Vy)Ab+! z!iNP>hDX1jMc!@9L+H*kk%<0(Y`tYrT;UeANu$Bt-QC^Y-Q6v?TaZRVaM$4O?iSoN zXmAbg?l7HuYo_iuGrwr6csctVs=AuB*Lv0%q@6%i(=h=tL1S1+U-JkykhE2*Y-(LL zSXv~oT^iiK)sgfeNgB9LxV|-&KeBDjR=96cinTm|`5FEmUPzm&IVe5~C`m3Q)M z1!J3uqla4269RKbtR2{^h7sdPm+|@G8YVLP;tblJ?^wB9wA>X7LZ0BsPZXuChE_G0 zN^ZQn`W8eGEAZ*oq2}m{^${F!eZ`0n6=QYN#fuC@kxpFDTms^7rPIJ8C)w z;4rJ}ZQ^u^LFYzDyM~ZyMr+I*`wIX4?q#<@G=GyCt`uIepT5$*)*l}1JnMoYLNA{G za%1TY>zzmHq2Kgf!fvuXt9!8p0%N)2H_vujg!4$~u5)6kj2QNDA(*8l7uT@#4bg5` zT6-y6b{NF;(FJflSIl4ioA~Y>;YK~$Ea;tK*zt7S?eE`rA6BM63ngSBl$Gy8F(9C; zH~mN>&0YZT`YiSqY|$z62^J&?zdb8!6-(*=}o#XW$@Wn!KjV`$E-nf{);P z&*c}VumY?X0nYR@WR@2NCu}+|?jPRfK{HE`4=7S!-RXhSmn=CJ>At-FYhV=6*U*z< zqh11>;#48|kX=tW0#p&b9hu};aFrI@cZix8n1(v>ic~iT#y&ejx7Y(*r$m-ID|mu( zWpHA7`4nBiG1t~w&1+=J%%CxjzcPOL zCX59F9>ef ztEnn((kVIY&?86SEPFaCck;+a-qN^W*d`STxvT&wa$O+!01Uk)EF23zK6RP>UT*v+ zYI-+wr(w`Pj=#k#GvQa)*vp%}Na=v4 z6t@60^5it$Q4$MCJG^MxHtHM~fcUya6hj-AMBNNq1g}wTLt}EuOm#?0x0GYV3wg9B z67r2osHZ1*Z-1R)rFlGrv}m_pEb({}WiTc^2aVUiGx8ufk`$W_ZI#fdD912f z9*5xMLW^r}f>*abw6Jr$eSd#9+*Pm^YU9>S?SfqZ@?!K+k6$E>FuC_^%WWh3(nx%~+#T{)Aj)ZnfplG^-A* zuP7LSyk9|SbhgmOSUE5D!t{K!VY5dp6s%4~9S;f+gO{`C5};@uP)wGv7HF*$B;tA@>_%-=G&!@YMwP-w)t~-kS7EF$d1BlWT?n7v zxxfBzH|}k-(3|{h%Uvs-X#CM3mS@I2{oIFN-Ez#q6OS0g`tdArD_d%f&%1Acii!M> z$Z+8OM~Fm1JpHnvVveg@!d=Gx5YX*?`vLI8R|$f3tWS5G0ValPVa>0lKksFXEdkG- z1rEnGnjazBvM!UMVoDQGX|VGI4SIcno4dfaJD~qi>~ei0I=5#(GklT4K+m)gJ7f8V znLU3Kor*f_R-3atb(H*ibtogSd;@LHjE`x3Zem<9>XiAN$LUnque0rrU+RgFI6nY} zO-0A2KwXA>a%a7a)q{Y}R^ov;`>&}xjdeF?GN}~LI9}OEfvZiMViab)j>e*jbH)HH z3UT*MkoU=`ejp(Z<+^C&Z&FDxzBW15U+4Mci>62MuB7hHj2+nYxe$avZL3cb>s-l{ zn3BN{!GI?Z&)IH)@ICy}1+D9e9e5b!ky>8`<;+^jW_@t#HFnUPWBrd}W;XJ+t>2r{ zW8qux8r0@@`80*6*G`78n=y>9qI_1cd()gFMg{*q4gJjF*DJPs^pQhc7~GcDpWrk* ze$|0AZtb~GN*`fVJ`e)Jd@c4kv^T{2!6It)Rec2EKx@Q#?Kev?^}q+lS(J8;(jR4Z zY>D3EG{s6xHquh3CpMc7xo`cLM>&?>L!AmS0>iIVrA{aS zOE{)n7-lT}_AFm@SobR6>1LGXnbmh+wk`(T6NSU5>N7sL?YOtpaRJs~4a{~a#!O86 z2W#&{$q&s%p7JDQ-ov5#db&1ZpN#gh=c$2MIW9Y?T3V->L2Vdc&v)lO0jqDTM~HBi zju!tn$;dJ(Hw-3i-XCOLVExC){@1n(LQivo2uW=Jt?K1SOW23UPm70w`cDL!iz}@j z1so&I@e^cP&^3K=6-P%?*l9voo=#0ixjWkU_xg|1mvqrp-1$ zVnDESu%#^qfI5CTLDmY8LxYop`(JXJ6I2k)4yqC6VoPFe$46yl=lc8*I&?6 ze8G{^z5+qQN3040Iu0vH>i`9sZhkw(gsTzQ$2W2Au_xyiLhO@yz6QqNVI|AEIr-+^xb zAKE@L#KkEAF;s`y z@UxAHi6g=Xgi$FIfiC5R68I$+?g74jgN68S&&N+kWU*Aa1-C#V;&-t5LSmt=C?y!3 z9z*P*7fq;h5u?j+py#|LnP+aYE{F;^yL}Zy?EGvvb2T8N!Xje1-P*8NOg%8C$hHAqeBIxv zG09DXmMt=dxF1`SY|!@ZG+og4-3S;iZZ*e@aPnA-h!`={%b9iI6Tnc~&<^dJnYu}G zyD%_tgS2~lfwFghu)$@NZH#EAl`5AN*d6IxWLCKFDA8h@@Ju#(^TJj2^kwleIXGS+ zVpvD6`Bj#3i*6|uxH|GVV{sV8nYCnqVvOtl?Ox&OL@I-zh-u`;vg~KBA#Q`~*^SdCn6Bsi)pfLzd9A$-Wu8k$C%(EdQ7sx$^x=X{j4>cS!Asi#?T|9l|9>}ToSR($2@Ln+=P0A^%q zOuBVNo17g&g&vvF1Q(^^av~HLDx&Lv<9>;5&~zT@K3I%8mrZp%T38lwjq=FQU*8vdWZ3^ji;_bk9iDgn;Lv8f!nFd7ofUipvUO+ zpO~*4DBDqxhjWiIcZ|4(u=V z8iLOh9e-?hAJ8Qhuz@8y!*D;J=}{UFez4Q^?%x16-7k`KU&0eM@PeufBqq`Thcro3 zt6z9RkunW?Hqb-|ilzhsRelGO)vSgE63Bzy-Sv{f`@Bg54q@dR7>m=SK6Tm!x1~%B z>qvzXtQ07O(paxJ7G(5(WhqmP14C6V$|n$A7ce0zOme|e_xq_ul9Yp&=_eXk&wQI` z@?{eJzjPNz(J|I@@BDO4Mi$YfZ85yVe-(i@RVH?ZjeZO=dEocU3)w!_?hFGG-X2z5xz2twB&eUbG^8??Tv>&d!%(}MBmFL9Blu;lEJ$ar!}h~JjwoeOhus5J;5~AdtuMRs@QGjk zg`%$Lj~dHQfdMr*#uv(66rotv`oOgoXF-KPk|x~wVQW6<>hYuWeM<5)2-BX?eN-I6 z_Wl)Q=^CbBYwoT@+Q#wLE#Nd%Iy94rC1R=ojL)EnvQpx(A(8}D>5|9j1-<(6%N0$u zt5^7JSFE2hQROTFwU>r75;vTai`sC$Vi?3;UrM@ zc8C<27@bLq5VAMk^M!3emgFulC*ciYTXeCe1No%!U$lSPf0((o@dG0_cE(4xj5Vbd zO+@9UlFJCQ<1Jxc)VPLrryHfkXT1NGSm}&70;pR?-^E5UeAH<$k|FSb`k|OmxL7}s zHd+olr31KV4=`q2IX(%7hR|8TytSf~g>@b<8iOTtRiftZNG@GC5Rr0^8Ku{L!#c*N z*@VZ&ZwtnBh&{Z@I{>w|;WEQCSn@f$Od1&EGaI9apL^plb4vE;`Swx9Pqk$xv{FXS zQOr3T>|F$QV4)^@G^k+ zYb`{ZZk6UN)M?z2JaGqni{Bf8ZcZIHzv=MOYx?C;L6BzZlL~~R3tJ=qNe4frq4LVn z{XW^(r6}@aw{?P##f?&d7HAe&n;gr)K4Fi^T9QR4ShsZWaqH@WJ4nEVz4XoEr6&?s zD&BVecUl|wHfeEM+0zWH<7XtXMegYY?vwVh!Qf%MO{@|8bmvX434zZz@w~Vw9&$9L9D=S-RB<&{R zts_F3p6OJBG{Oj;@g<#V4pW(3oPIo!ZFF$3*v~PB!@L+H#@-U#lPx`XwJT z;;1JF!fP2+Z3oD$o)^@*_Q3da7UDt-QCaA_j4SDd{$rp((gNA>Ykyyy`}Z#fzDIw4 zu2wAP)a7GrD$3NMxo$_V)rAkXSjWNSA=^`mlpnefKrM>V__S+zO$78Pwekbq3;ENZ zopU<}K7FdIS+HPdzIHa|AQ<|LHLbN7F9cNJ$8IFOHDUt#CCdk%ospBJuqc7I|El`T)P&(!@7$?>vro4 zp_f>$hSx9f=OoPYD%!LgzS%>A-@2i$-ux&NP=45DJx(mF@rCk1L=L z+7~Wf!k+s!O=V>xwTh(;=AVCa*4jmJ3(;YPlhUe3A1k1KVHIQ@9Zagzb1HPtfg z=kglO5q)HGUSm3*op~IHR%c4jDr+5uvXssbOYiAAJKOzNK3&~jTa35fmW3QW&uwlS zUV$&CXPG_znf`9C9~)DT40bmqla9ojJ?6TA&-$uepFT@1*%bJk4WS;OwnZGv!=O9BX9$Mvp1L!01-8v&+ifMJF}t!N+Ig_e|;iO-G3} z5Z9htMoufj;0Ycv&gb^mI35s<*~QnA{I+0Wxl4);Me0@{x4DktrsBZ_g_KjX0eDR% z_B9bv>A~dpTU;e4iAif0R@A(ek0B#b>L1(sAnU+vv^sX{5Ra6o6L{|BvM!Av#LeBM zz?Fn#;y~Lb%@=P`JTg;CN5i?T&R#uBCOaoaqwy^6I;@$L{J#@K+hA?HBm2Ey1yBu=IimayXrvU?lm45TrdUJw zsNofLx~vl-<;9R~avR-w*&+$Uhw{@n{_Ms14wF0VQkS^4=LH zjK8J=H-I~6#FA=_P$j(*16Q8_zM(j`Agb$xk1f_<;&m1= zN{LX1E#S(IOj2wrlu{c&R|5{%(SNJo3lQnRVIzJiM3#U|CN2}O$ajDzrcs^(KQA{W z2%PQqfZR$V*g2YlxbD~gvD?6#-z0FaB75PyeL6#t0&jQX;E8DQ+f-_RE z-BK9#uSP4FsrDI{T?sSZroWOEH9qfp&zB zh8=TV>IUA{+H<$|= z1jZy4{M{Bd94PyH#Thu_=(&>P&0*_g)(b`}Q>zQF%`uAKsh1QSM(!99-3E}nk*#>f z2^r$`=AR5(ywF+^9LEe_`SBF;S0OknD7+6XHd+z@k0jTQXIk3)B>FwCVTaVRaf4uo zrjpR@)MKaVU%~(QK9)=xD|C zEcxMufPx*iV|-Sdcig+o+J9p#3N1VU-metg4m9R-tsMYs?} zfXdDPtq?Y{IT(kWN4muIMaM&lwOtfKP+qM}wzF_+<}MqEam!j*?to37wYhy9kloC0 zu|YWdU_olQ^VMXQI-0xLyo8sze_*3yBpOT*hq?;{r6wybD<&@?C<2RXiY8}NNRIV} zt7;BZrkz_Ab=4;43wQ~4sc4TT@7+@Aq2IehVYbK$AiEI3T$O%3WKp@;2*XP_S1iO` z6%1HReGCV3bQi=kf|p2~`F2uyJSES`A>465=5AI|c%gsd3KO>J_g%93|1l{$5f!TC zd-a_h{h=#^f49te*`gnf{9(5@5t0gcd&&KUWMlJzD&))`>l@c-oXdf+{*nY80Qp6htN(-%tR4TkfX;I!J#+zZ6gN^W<&ULaP%!>F$1iJ@ABGSU z+EtURqIdf>09zPKHoz5kF?iD|TRFUGf9)qfdJKQ{gPd}o9r)wt4%mjpL$FBR`)LWNiF)4v3H4#K{{jjK> zDN5#7=(wLEfCYzi-*jH8-zvIXibinG&$C=W1j((uv1n7xpY%T$kkQs1W+xkxs?u#} zEURzm$|adNlaU4|5Q@34bBmzDTL4McoD$4CZq*tj2QX_Pri{7hOGb!3j$0?j1*DY^ zM{gpHt)hlfcdIv7>;$eo8}27^`UNN$_*0Wj;ti?1FrE;`O2sQxR=k;&BNX3Z*s4c> zRRg@)e7~g%=iR8(k5E{u_jStTdZBPMcP`jd8_>tVC1}#dNp}-$@nG29JZB@pX5GOAAnoCZATKgJ4Yl)*!KIJ#3$tuRxH)>H&Ya-W8fv!&h z3%WIelo&tSWnD*Vnm!^Jp75KD;PeB$OTqL*I?P8zkXpX};pe%>4`>fz?xDagFO?y) z47x6BmC1p`y$NQSuR-fd)LN1=ISdjJHMQ~4fRfSxI0!PqV2bDlt!I(C4jH((iw+MZOtuc}y8RXNt;;n3R_H2+#y7`{??FKd zrLRcZw~!~eEDPAS9OctusMXBkvjL!Rmc-yZk#Q>jFieE_6XkRN+m-^Xj+Y}Ky6_qu zq0|?xmmVdu1V7NDB4`Y)OSID-C>7|XsXV4agU7z2wctc0yxT#0D_5Ve0KKRs`xD>z zCUg$Raqhr=;}9c8TrM_5UX}Zzg_=SILzFniRBt0ltQ*zIy-+jr$0(KL5SlI$o2~E3 z0T{u?URw1uME?9wy;x;AWKU`hA*Gr`67gayB!ZxTQ@=^2N`#3Cq|slFKvg#CPfUF? z8q5%4Sx=NCJ&8bxF9(H$3Z~*^J#x8}Maq!m^qf?M=KvW%)*S;M>qC5@%WZ+G+G={y zfbubB^hl*r2OfAqfRUltemq8GMPK+-$XxSTRhf0aM3N1|SiG~`r1Wc@qLBu-GX>xW z8QUEfoloCSOPU8UY6oWvpmQuYbvED0T86?;-$r~dlHyc^h$4qy_F!uQ+L(&fD4^JSA&9e_;&(Xn3hA59?b!+}+F`+KY^QPB7gw_29eCWj&_*Z+xA(pxk?2VUVN&vP!hNf&ZD5Dp$1+Ej+a#LBa2uD1~zOm7+ngqdW{^Z?hiKV!Z!BH!V`Oi@MSq~!BnG>h-&O!eibEk1B z%xm%ovE#)vkH~7r+Pnsp&X^b4;6mlStYfyM`R0$oOkMng;L@^)ogvxqKqaSopKYKB z&))O^$j+O=7Bst07s(oo!6uq^VUNcj=UrdZ092$cS$EL?J~p0>Y-cx9)t`<|stcL? z6$@vhc!8+Xy>0n-V8(?>G=W>k$gsCtVCWr4HkQv}-}z?Xs6O=D)sE15x_YhqcRNSK z&sf=zDMcmUX$`;H;FV*s?fNXlwc(OggSkHCpL42~4914sLIz!Kx3`;oGXBf_N5%#= z#6XTf%Uy5BK(Xy{-=ZE88pGmwv_9HdR(Sly8A~ z-?!GZnY5g=EzZH>{-VB8*7LS%Rf1pId&~RBUClUui7XO6O)pZGC$;mJM$GdL52@BB zjw{*ImAt6`k*E<_SnRCzhZl$HiARx85CYhu;(Q=FTVZ-aQZO;*!03}(jdRD_E{`0_ zXeW7J9EN5YN*K2%{w~7(k#jkwVWLLvD(4@%P$Vv7hEJZO_HIpL+sfyfEPOLZ~$mD`Jabk=1=NDYWl zT1(anQ>}@VyrQ4Yzp-P0tpCfs+QwY*Zr!Hc0)9-*7`KQ<6-X_-oA(ZfbWq>~faoch zS=~-K)rqdw2`cZSAsf!fLNvDz?TeRo5q)eyV^wyCg<-trWbBIcB>{c%4{>;xJt@}8L*<^)|lZbse z19L<2`x$aL`1)8vs4}<;Q1^x3EEvMuNyiz^58y2G9-oY1?5c7au>2fn%j>>XNbF3H z{>8_1+Tz~&WQX?GqNtc;`r!);13?igHeBb`g{ZDCi}}!^&hDmj=wO91;}P(lqP!c? zNM#nNw5RqnJX?j7%jjd~OYqjJi8&5R^VGC~elNFCJVRUct`DBqPQWAD%-PvrwxG82 zT>^#)J^!@I%$a<$e zvdtf4FVlQqIUje3d>QL}2N{939zI7*TW5b@ZnU@9G6Qpv;_k5Q2wy}X7s64AJu%R| z$8gQ0-9^;_XiCntWs9(m)o2kqTIJ=hUEwX~dTU?JrMya`k7S)hz7(!hzQwd+uo)n9 zX&qdA?GMx+bwHG;X9)*2vNW=1*oPS2T~Kyx7DaQNf?rQu`JGMq0}eANr{IB`85tC!t?R%pCi- zu5!6A*>!d+EIS!uDY8aH;ZrU z#YYIi#D$h`ZZtdU|NAwUhoHHd{j~Jr-frR6Yx!8M%V2$YoD^Yl8BC@LI`{{^d{2Ty zEUI965@H2D!qWaIko@T>&luW0PupVIeeA+LMG}4KDN#nX6YSF6%2K{nlsxH9pY)gP zEEL6a>E`nFtC8855FOPww@(a0eN&m;+QLSw??^gU*q8M#53J zT-Hy}J;wUCd`TCuK_$3%Ed#eUzmtPtS3iCsdJ{ZW*u^C?0p&-=;a-vJk~Phj0*&ep z_m9CHF}<@$3aTJsrTnK_R+UvvLv zMdZBBLH<}RB7CSM?tPAtuKpB#Xsc}G1^sIUp1*-LdAXhH>&g}y&^9jMJ*L|hFt|8< zP|+~*F{{u_b3+P@xjXy>Q!Q%({3o=)mkioJ8yY~O<8iREGJ$sdTx{%2oNWKCV*>FD z*?E|F{(7GM8!RG?4?s-_#oRwe*P(ZYY|G6$J zXdFav%rs#Xa6|xST0Q`r1e+Z+Iw)fCuS*={cVGuKNr6V-U`fkk1rQ*y{~vq*q`;q8 zQ0$x_+Iw1h4HN?w3+N<>Ccz0p&Ho1#0b(q&fyjyga{wO5^1%7OR|c*BSqGue)BMpv zw@h0LdT!YSkoZ7emj5^i{%;qDch;1Eq0`^CgiDA?Aj*yFMxPFrFy($QSR;Gm3gpVb zfjtQ_yU$VmTFb?^RV8_c5&XYBr4|2l*b2_gc5#+vqjpKG%EN zwcA$1*7lAyBWvOr=1by_ZvoG5b%LKZZfj>iZbP@8&yCB5%gvsN?oPk=lQ-YgMW5=% z2~dVZN2^yjHAR5AZBnk>wXbo4xz-qSg)#d5Jyc`GAqx2MaSwVov48(_b`w`?><=cg z5=Ojbc?e6<-FeyZ%IxOd_D_lJm~0x?rL;M&8inrz>#K~TFYm$(v5DSy<%qGehycQ- zN(|k|Wx`UAMAB)qaiz-4OasLVfPRl*kGiO&lh;jUgv!D-9}Pn4m7V8$)ekE#(Y0JF zi!W6M4xV=HtCkLpLgqs!Sl-P-m0BYMo{U-?7h_$=7u(EKTCcD7KRKLCq76Jo281Nx zvDs=*P+~4{sRU7I28Z$*q|2@pTY*8f&W&sakUi>^^f+;!gvg9$B-&F#5bKwZfi!!N ze=ng2&dQH3E>O4Y*+(7YvGjHi+Iqkvzb)sQW*Hd@_lzN=^M_2HQj-T^HWc<=us^Km64*MtYooiO-3kOSzz@-0f` zVFp*#US*Rk>;{8J^Kj_Pgs!fIjqXCnxcth5nO|SzegR(0dk@;mV2wY$?%4$xBm6B= zx49K?3Xgi|CYgc`5Z!?A(j-IZ5dGvKp~<^8!LL2U8~KYKJVy zYGZ7+C=O|}wdvBWK}~#_JG#-*VGSg3dF~< zvoH+DM7M>=+7j7Fa6j2(DnSyi5*xSBTnW^Gm4Yk0H?)bef=NxxNZ<%9D>U;+R*tb# zwJR>~I)Tim01@R-Vm{@)sJ|Zd$oRF6GniLC)RhBd*;BO5Na;HwEjQ~0*!9R1;HSmp z5Vp0qO@vvxvMn-Kp50Z_vMqyJ?Pn%erT2^hs|$845ILWfqEt=NuTE^5}F-?%9WolgD%2p!V z`6#xhKFdnj6calU9NL#w6dv8Tk`25{8tmhY*nI-d3Hg1OP>EXX4%^s$ONAYrBS)}{ z`PEepp(|KcE}+%$%O-U9GX8F#iYN^wOFUcs#5D^JpExLg4^0+h6dG3i<-{ZI%Zet4 zp~8UYYtSe(_t!sf(T&irONlOB#m_iMcj%MY{1& zXap(UTzhq zZ$KKWi)diO%Gn`|MzRG1a8 zL4e$*K8MEbVu!(y7h?wf;Gy*LAy~7|8oH2-unMH17dM`zo(`#}+UAFJl)(I%h9htOB3SoHjOPb8n-1Ifa>%~D|1x4e zJb7Z=8-;}$;7oC5Z7Ssur^>inMAjzOBer2rFiQRL3@!Br9hR$B!_$nYGEG|W&jFDfHX%J2UZY1qDM zu@7(t%HBt&7kls>v2O44(U@6HADfKA8@m$|GM+PBrC0BDjD~&*nkmHLlmP1OXDAk# zDB=3YJvp*aEzy(NoHH-Vp*DU6cg7%h3}CP3SS^yy_}jz=x@Jnn_-SZ;b@)%6(iFYF zXa8Q}8dj!2ECXSxqeo(-=>4Gw)qXFTI0ZEpC!>w~sa!=u zi+QoYo#aZMO}m8-#7}YsGJKRvQo`Uib}5ZwT1Mx@f4V)8(BsL1!%2dj;5W!G$XHRJ z#{Qyx=Z+}iXJdXJuC`1kRPNYg{v_DTxfDN8%Auf2_a6+W+*Lfpvs;}^g$-jutZg04 z`R1-6B9G;XNkjz`^(O6FHVm<3!a#VU7UbM}GEl>8__Bc((SZ*E%&kf#?d2uMK8;h% z&65$pgdH}s*5qQU%BXlf!l`y6geY-r%d`tdTbBs9d4$q2~= zAHIKD{^a-&SJOxfT>M6MUG#N@Y#F9bL9CeJN`?{#-_tWDHn6KPZjAQEp4JE}=T?qZ zo7PP=dicW`wihTt_%ZLhaD8ws-i1zQ$x_#7y>g@AB2aNP%#>_gB6qfUMUD5YSgUcE zK@Cg!!}vG#m;0~{tR6#?k)pgdOW10HuJ0N<%iISjE>cVFz?$na`xUsh+xu{-RbG51 zK>p=bQpS@CpzZkV)WM6Gmo7R-L{RNJJR|Fe@%PlSz4mpOeh)I$=kF)@Y!9`UzkK_~VN`*JE`*2HPtUrTt(bHVlMwF=#%JZT$aOebi( zJA|kYr8(ZIKr5w~2py%n)UB`$-@6v2TOF?dM~_!0`d#2=i>^ zb(yR<{7aoi8!toyMRp9cwoH0DA`CD!tT>q`2V&fM$vex>o;5mHmt0D2cRbhA_od?V zs%e269IF{4=cZmgxJWFDYazfq-V=sF2*o>ahb261U=aC5gHf)-m0+0Y zeS`1I)XmAWI~pvWw<~jroQ6wHKNA%B>Wd4z#jW4YyY<(8SozL%+3DGWaUjkR&6RM{ zVVcU+VdP~2kgUhhT~L;tk0OY2d=|fN!;;N)Lr4wcwV(fJUa*b7k_9&d5Cu<6ZRYoN z-|BJ30N-V}+*Q0Bz^IRTn#Hu9#KQ_dx;@DAC!i?A?N|5+cA2iC`<6wQWBznPM=f+9 zK@8OHwQ(~B!nPOSRe!>s8|>dFd^2n<{kCq=)H`H{&=Vp_ao@`N_V>YMnrBc>PD~XE zWw(3Sh`es^u?$ALMYqA>mqc9p?y6b3%~m5)6|kL)&0313N^T->VUEaY5S8D8}xj!IKi+_`PE`vhfvyKTGCs4py1TP5H$GWXp!a4T@XGWilmx zcL!7MRbLLn8Qg2KOFzKWp0iY=S)FHS2%nvr5a)PGi(E_^$Q&MaR^j2k8X*WrKN7tl zL;%0;O~z?&C>-Kg^&Lt3A5rTOJ9wRJdOys3HcARaCt4V85yOdv;=43;KCIyOxkIQ2 z{WK5!a!%H~!rgkn*LQHsbaYI9EPsD(x>Ed`bkzN0kjjAQgru`Nsl3ID{l}~z)vb{v ztGS&26>Y5FDStn3u{J|SuUyRx zr$r8Gg)jBJD4&a(TXpo^^rqUT81{v(^&H~ z&OC_|L+gmYk^dWN(`AIg&@8jBqZ=Q0OI>m~C~Aa_gftO0mWfqWb=A9(`}OGq7`(Zc z{7t^<0m_}ij^g0JisgZh<&jo*?j*f~JLIUKd03@md6pwCA*jwA|emo#)?5DH^`s~2qTTilATE*`luQztF1Jhi|>|d;HlV^HYES>7^#5?C@D!)^uprxOAJGU3Z8~V)WsOBtGPRyu`Wc6KKcp5 z`S`^lw1*irny@sS`h*W^B%}mPtf3~vv;%2`sx2=0^X%mL9hzdUGy!LN0#-uE&q7fh zmZ787jKfkWh%w}Lcj1@n+xho#50>t;&9Zcy!?74u=P(achL*E&ny0p4VA%ZT#-)Bm z5AjjIHjvfj03qY_IR(^gh>7$I%rO783MOZv2()i0xdbaOrc84MUFKBQ_u$u?4 zNKKJBPPVbVtc1jzOe-2PpyH|GfImm&T483Zj^PEpl1?9Ax;wglh*VE8tF&6xqq0b> zPDOmtjwkawS!8<*H^$H7hOBxaWeE)+(Va+&2;Y?JHC8-dnA#njFYf^xlmwbGCrQW3 z^rgPHte`7Q88iggs7#{i1nd*aD2KUh9USN$mT;LjcA&Dk~*w zl=JKScHjdA9fG3*$SDjnA&B(H$Ln#Jxrig7QE>App$>VI^X7A-8TfC*}dnztMK^A-PFL^VZz~Kl~Dx*9lX}?X%$I{_- zeXh-l_IB7x_g5rjZ;}&g>f({KlKGKJ0`(Fw*wc|j?s%UV?VS+Xv3bWnnH=@EbRBp@ zNKgLM^GuvLml#DZreStN3h>2`=w)ysA|Op^XI=~08Ai$DsLt}r-YSyV(z{iJQe8&P zCG>>UJ!=*eZ~#?zIGC6m&A2c|0jns62;t>furP6@0WG4)JPr(csz;(^8=%wKWyf6-cRtDDQzbhVd^3%$R+kLNA@jd+~st0^iaoRcTwdEd7C6{UcgEK8xHxR z1X4KwnxR{$W!iu0rCyEYDr-oEC0fX&+H$*|Go@w1m;kCJ8$@rnQT?4=jP0gZhc=UE zJZ%FYi#;$IKX##I>=weB?6G>+>C;*8R++ysgxj{uf704g2%xLiUhI$KN2MuHxma)q69Hr z|0_|VuyOq#QXzYi=n6*K2qrkFAB8JTRRD?v_n$1u0m?^#ghp->4pt5(PEJrhij|2K zRIq}F{C^0XT-^T^8XZhPF&*_mC^B3&(Dgv_A_v=lLOvkL@L$G?lZS~V3H1-|e^OcC zpiq;MJ*Zl;&JCmyE)V{Ta+YYgnYf7!Gzkq{?c#O1wUS6-1J6%W&hGCeHkFD#TT->g#yvJ`HvyeS zlEk%6k6~N2PPs^@r^XXu6-;Zk#z5es;oUp3Q{knPad+ECgruZF*^%e%4OA4`(?~(| z2&{4;LrVSj?D^gVw(K34Ij~#S^3His7#Q%pyGN$?LA3F4yB|dyq;j|S+B)kI7;*XN z&F0~;*xuXP3@e5_ev+r|$s_4E`5iL<$Eu@Aj zp!KFJod#AEpmfBR77LkzPeonlXyJE8_TU6GFBR_G*2w$@aGSZjJyOq1+sOf*J?VC` zkQacn=Km+llZ98GfVnJ}ZjMJ)D`O-UHy&k@$*b;x34GI~FAR)!7^s`op6ndO@(F2; zmQJ3Oj+h!3V(ydW>UCCBTvu02lM-^{#UwJGh47*%qre;0j;BzFdyXD{P&MiJ?&4ScP@~d=`YAcf;agwnhHr z$AU8$G8s9a4{G6Bka4O)YY!g^e2)JXX;5JOg^f#1`9eYt>0vJ_NiOj5_g$|B4~)lt zd+_HxnJtlk@rTr`dfs7-Te3@5Y)b|bHpHSydE>H91rd>MA`l|!qRET1BOkM3c8gRI z!kR6*IVUFP~==p;cx~oeRe-^c@ zLK`RH1N!k1U;#J zUYh7~m^IpY3{H+e7ZPS50!h6r7VZzxhVu=vy4 z5pFWrgW6Yvp<5;T9Pv%+TNtohZ@|6g>y zV{j#J_^umc!ik-UZQHhO+s4WS6B{eGlZkEHw(U%uOp=}7>^gP!|KL-1SEKsvUbU+F zexK*Mv@J84#v&$jE|2}N7^DXx5f=q!dY8DvVFSt23S1nI0FcXy@K2Xfmy75ix7b%i zd#G0xGL;Gqsn8_$xap%>2p~7%j7TK4)FkRR9EPzV0+6|8P|`h`x@eBFnx2NlM@sen zFUEJ#p`u5I*}lF@hQHfVlZWb{T?M-26KFr}16w!pGQBCm2RHJ3joL#*W)p3-eV0l+ zgU;km$$qNy0*XUNd?9c(PgR5)yaq)2C|vc!WKVl``kf+ZQgo%!IfL%0T~^!r4h5wU z&wUsttVPaMPuAVC{pMgfkB&7(1yL^-zQq;ycKap?My;A4`s}pqv3mSorIw5BBtgFo z$bb@1Ixa=!B&%o3+qpt)Rc_?{}lQ&mtSrf6f@?HzDQwQOVh))*l9N6*mA~lvm5>mC#-68X=& zas(pPzkpIQ>G|xc;cUE+gUa9GU zbM<=cR{1ZiE}Y$^xGJARmDrx#(lD(lkXdqyQ@tAB-=0G12-qp}%Z)GeKuz@wb~em1>2FPR)ox+*4X?F*$~8PzuaXjkF6;quRLXA$GmAC_X$JRRYABJk^MgUf zlk6_4vzUZ2aL^AK^Y0i;lx`of?i2(`8JZ@9KNQxkH95{{d{@J+EjgZ(q<@Xul|+=h z4IoI)2i9_ZuMyZPG5*)t*meDn{5>QwLV!frRk){Vdl(bVnjkj%H=(HIZ+{Tg? zT6$vC3L!pvn|r3ms#`>XO4wrAMP~+L)_4}(UUXr!ElA& z(ZNt(#Ck-Z?Q1HPK`mt}jh0Fz=wL2;+5t4}B}J_?tcu_-vl8|^t9VQ*qK`(EXD}?*H&GAjN|37$4>O(&3-);`S`bLmH>&; z$XPmI?Sw8lc|pbqy*LL9XsfFf@!F~tC5bL2%QA|hk6%Pb@tYJw3)7s5x(X~cc+Kh@ znHX;Jq#5WDzc1~n|N5$-)M+XoKNzzuecX5cfv;-9x&=McS8LK%*QL}2^l8qsBt35H zQB>M`PEv|Z!7~?al;V;Xm!>lpazK+@$%yR{_bSIu2zYULPoB|P3U_5&uAoKxT8ZLN zvavISv_zWcOUu#-9!S^Fld7y>r-Ri&W*rG0wkaatFY+~eti|HY+BGpD;yj;#DJiHw zf6)q)MpIdUbH{XILj@{_EXA*3IqeJ;1&s&HuaOh6@EzKxR3%fY(`urBCIR=F&BPCD zz$jOdg-ggIig&e;68$hiYn}SlwdcyJ zPKznJ!2EN2i&mt&DwxvDOIdhzk$SMK4wfYl{Dj)Ai4=LG3O@1_FROmS`*%vAR<}DV zriz&?*bV}}k77=&9|v1g0|15bQf_g!bOl8DH<6d0fltSDx2I*IK3dm%MZerF@QX5^ zbbnG^!%UMfH$>CNv*F;gm;3pBv8|vl|M-rLzwM|FGxrb(peQ)(Ry?(Uu#s+TsA%#w zu%1}r8uesks%cqe2#O0YpRN239h|gU+LOjo=EuElLscQOec#6t+?SwAu*?iPa*Iwc(WB2bDj2czwSj{{yKOs z>M=ABA-bvR`@VS(D!b7QQ*3NMxtm279pWv1r&-pEhmxftI=@&nIppo)63`%F1J6Av z_crycv~5a!Mkb`uCI+yDP=am^M$)%w=g|P-L{G`{v^fvEFDPOHlU|Psn|lp?(k7VL z9Ea>(k$rX3A1D7fuAH`+GZ@f|9DkE)9XY1UHs%v+HMyotNJ>rlYot<>l9{p4P7ZlK zz^bnsCN7%lFabdvZKU-e0CL^~<`JNeP)+&vv=;7KV%1(e zwesqpmd$1=oG09wS=jx~?N#D}d>cC}eU8;OQ`~mGCvhAfoAuWA)aq^0zyZBtY|-46 z;64V?oAAM|VtsG&3}8NmVI~w(Ec&_9hp%S*2W=RxExA+?NHUG}2;nOSEXbTaglWp+ zjN~gBpG|x8F9RqLxKZd_Xb8zcU2t|9cB6CSGCn~@$MEht#fJd#aul7Ykm@ah2WxF- z&Ym-`P6CaH?IcI62mN1&`{*=s1T)hs$G4eD9zJKXe@? z^A6Tq)e}Cgi>WreF$IsgOYc2`=o$_vmuaLMUQ38VV*oU~IAshD(r%vB(SPFT6?1lw zff~X|YNnyOj!$ji>g5n{@TRkx=}RbP8{3~EX9KrSFz7l|RYKC9Y49oX_*ywd#QzqP zg$wx2{JTm)aQ9||J(5o%FjtqCJhAr8y*t6O$>)aY4V@W-fy z_nGcgXEPuL(mg6V4N!5|0v>)v*+26;>Q5yif*Pwi)3;q7)GH%-o3{Zt0@~>rOf1#* z@S41pz-zSM%?Q-@*^4-yMRcq#q|5iqvrh&ye?_d-<*!2MxMX~f!UG?8KWrmcgswPw;0 zbI0quPCqZRT+J2hLR`*xmE*8(q@ptM5`h5NagW#_ahuQh@=lw3Ga}9nrNr#c_)QIO$)g>*67>{UK(-Yk;%WgjrP6cCPp$ z-_2Q$k%RF%uliKlJP0WtAp<-Cm8vDX+EgrY@chhprcEd#^ZODFQ$c;a%qj9~^v?sp z+WYXSb5c?|9T;T#JudrMB*&P6Ck~0K9q(RWo*>+fot)Gia#--z?mk&yZy9w*-oBFh z3l)1IgPe0KTb;`b_xgH7xQi?mozPJO)S1z0gg$;N;VvMMRlcL&W;<1bIL| za-8V+VIMwp;RSf^@5I-B5qUg4-F@-4dYJK|cKhe=-s9ENU1Vtc%gc0q#-Q~QgFQgQ zz*oulVRCs;15+U<6F?DBbs_8I^nM>sN&QR_A)b=FAXad$Ji52HIZvVH1b*%RDZD&5 z3HAB+<1`VNX#DEqbbDQ*&;=yJ)w)-8DYhkMz5|oK?=~Ot~Tb7kzo1 zG8nn%i*tU4;Xr8yauI=R0fAV4kO`m`!_3AuH0Zj#sgmu9zE(f;GfMXJ`2lGgE!m_J ztk<2gwU~-ckx@@0LO27%|C^qBGX2tBi9*%q=nQgvg0*6TJqcN3ovo5oGJVl1)#>2@ zHwW8S@wVMqRWv33jslY?H)IyHD1Qddk1zZv;3f3WAwAQd_R}U3BW03~xTTFH6hoqEjypu#GfBY`RzUZtINuUajQ!u6IppsR2os}_lb+NyD4t`PyGTy9w(xjkF zw|SZ46$y`u`vVia^G5--))?TY@yC?%uCADxoR&rKJAq<;B{itIn|iYFH^@>_QeJd9 ziEiY$kGE;#5C-pilwken0FT|A(8`73$w!k&*Y;u@j3n)=2T9+H6I?+Irn)>>9F(Bz zCuw%u;nPy1fR%N7+jEA@p|g0n>Yv+d71!gZTG5WA6yst7i-|7{*_8l`@%)_ZaBDEQ zv!wKp><(~+RJrN3(SAoVp3kaPLfM|Zp8a`(Qmh0^eM2q%IcpFc$Avr~B;mniGWu(F| z8my8u-9Y9Pmgici({aG4u^V{wwwOX=^2j-A2s)<@iP_Es@77aymw@#pdFjy>24lfb-CkI;0o0eV$i|d$d(~c^f8Q42h{*^rrTMw{!WuluJ;qgm`Ny9S3wNVr>AoH*n44xYZJ}Enw(i4C z9EgvX5C7W43-r}tn&-HSP)ml9LG_>D)$zZZa|wyvY~;qCYv0NW9;~GoN;khj6oaXT zy5wPAy+Xb>MQ8&El%s}9R~YJ8_3R#Egm|LG+OmIdzbawSq!Y9byf3EsrJ9Me{Q~)c z2VW!4IyI#@@8=W=u6ND(!U*j*8TdWnYJK5LE%+yx!OiaWaFchjIz+NP@>R>X_DZlR z!Bs{nxja%!x~(YS(7dP1Mdn6wX71fPrkj26aG?TQ05lQMUEkJ0EO*}wd7A&jr&Cxh z9z&AwgugNCWojmq^tYk~Btl!8mc5ww2si1;G#RQAauh^jAhlUu?X)p->`_fli+bx z2ISA273gk2oo8*vF&X#5p0|?}3i+}YKWSk>Bdr>3rZ2K3ij;A*ljeE7XwQ{w%u19j ziVcjC8V|P=n(om~-9W$s5n`)tPf<81`guya?}b-N?g0uo=&c~?Z2eWl>c;M0`;3)? zUx&)jMxt72B!xt+3qn{Y{BfsD*x3inut0WkQ3W7iPm2CBPJ5r(Cz!PbP45h`e>iN6 ziR({0c;7=8F-X5i+y?KZkQxP$YD9e0!`e%x4HycMY$UW4b2t(w;P>`obH%gs(J z3Bb)VGCBwjDVv9SzgMMJ(WsXt*P{2XneXQBW&BRr3IZQ=_I^?C)d|-Pd>I~icEol| z{SG#YUpI92H6d(v#307M{l<~t({W==J7t=sPXFzW-|RYkx}x=rF;}e5a6{x3q1L)t zxG>KGpI*@AhvdcINd;Z;+}P9M0_-re$=li`Cmw8 zE84n+UO1nF{5QOCw$M|c{jG^sUdGQJKY^~~^}~4+j~DC3l&r)<<9$^BW}BOz%p}qp zmiypy86WJ)QWc0E9KzmSPtwH%$wQZ=Ol6@2S>CF4s|y7h3RyCI?uCc|r&Jj}VQQfe zY7K=w)L4vu;6Wk(D4D2Ec{-a)aS^PJGJWkf!{**_-BBD&|B5)&BrAs206n}7i`aB} zbXFzNDPo`4cO2#2WDUG>>LuGhV!aB2k3}>J%2lZaL%)>sgZ>KSyNkY_rmnylOw^`j zTnp&FAdvD|*l%2vYt_F1^p=wr1=UOH+$;#q4RNO?P=04-vC&<*#MZOWXWzR+Tt3AtQ1< zd`U2^GHToA54`f@#?i|dpFa_fTWGAifTZZJIHiPsk19tfL0Tz(bRf9%GDk5S1ACp5pP zZsi)rr%ZB65M*#rhOxOez*~s8_6xI3ltf5o%_NrNU~)~hrKOPDN_oxsce_U7j!R`f zk#@y{8bel;sP79?^#9h=x42p7b(XW88_WuzHIG%z2#vx55YXE#B$A9{I9zD;gjFFF zec&}}EY+Nf>KUCfB!K#Nb=@j-&*iP6Cv@lRQuKH+@4(eOxK)tMy)36Q%XEkG>| zF*b|;8~OUZytrUWkW?DkI9OEBXxtUM0xuN9y6ksK0E#%2=>}DeljmyP1945F_NA1- zfXrNPw>!4GJq(6C#K6_0Wp)hMR7y3z(jrB#3JRx7zv;JSCIgCq(G)svuG9^LBf~%K z7qc!H1{Zl}BZ1d^0eapbI-WgxUa${0Hvvc<`fQXPMS#|A>^$&3Gk0q|jFT}#|G1fr z(cEcafI6|7LWA=Rw3HU^Mfy%r8tJ2(?XSxkq`I|of4oPxQxtc>lz#qXvhi)M+7-;X zP2+8YSkT^>LDCsisOUUZ&mK-3a2|}@9-=mL1-RkCDEvrK#8*TYXWo0av_Ox*WL|LE ziv>3-sFeGsg^Qn-k4N8hKHPV(rH&wWsHi{W0g+~w#hf6TmpTKIHk3JwQC$xlE5+gE@9T=XiWV%g7*XYwqp5-hS!5$nJ?-K z5WQb2k~EusqsQH-4%?vv-*Znp3P!*l4&|hnf>)-LqzsRhmw4GgMXiFr`D>Wcy)7nX z=4R7kG+H~nnNFfiPd$C9{$_KP+OJ#48lbH(iOHCVH7&uz0 z))Jj7pqCd1Mf}^cnMWrN8NJ=b9soQDSUOEH<@L~_u}?er_tr>R-skB2X=!}?rH*jZ zILE}^3Z&5jJB6+q)seufiouP^J5&~Vm^*Wr+w)wHLm?X#(tw5})Q=?3nM!pNzc-7Boh5(`)e3?ONA&chOuYy*IX<@C zp5CvKPsgNX{0*ZG<2=TN`H(!`zfR*i=1IYBe)kT*e#FXm;m=O%xVz<;%DfBF=1;rR zDv{zM+#cg1gm{&Xt^jbuK7Pye;9q@peDgduaTw$}UY|Y8te%=boay5+kmOwPot!ff z0yC|Wlf5>zZaR~?sG-p2V%z7?j7D&DUS2FLou!+%-U5ukCUs67b;VO*Ma+CBNo3ha zT(k(UQ#@=yn*vYHG_6%+k;00MKbziO!G_%8cT2^_zZrnnWS=!!1>_La3M^~Y+0>jcx+h-T2~3l*_&k_TjlU6m6)BeqV|t_Cc@9)>i7x7ZOE|Mx9~ ztNhlPfZ&gZ!rF~H*i`$FcM@n+#eZ<)r9tQnJ=z)wkT2gcT#gPy5#tTD7Ep@yy`=D7 zT=aJ>5B>cfRbX!;Fxx(=6%;XPxReG4v$b%Y9zPHA32hVIT6k$;swTlD?OXb@>L?aR zBmydNUa3-gmPm8Bvg%y}8=4U5&4_E8abjp4_k-`O3fZcfid9(%Yt` zp!a;WRo#c%)4R5Ziw_pOs8Dm&puA<-TzL6OfGuZQ=in9K_IO(KUmsZe(tpm|uRf^% z>Ad}|yZPn3MFD&{Z=w06@iWNzVG`^T(pXzvon0;;NI3i)UvpOyCdG?Y!=?9Hw?6&b z;R3-#LGsZR%<;4!+%Y3JxBWrx2gl`f7|b>7{#>jMjyGlLZBA7ujz@Y_JP=}DUoGE7 z=2&pJvDlmg)b94g{=A=Sj6Pjw^S65TCs6-Z{bPT74=cm`Je&|%f(?`+x>LP5*!&6@ zw48$k{5@X}oD*a}CAZ%1P7?t=_XmUmUDEVmmE8u7muK`tn~Z2$DdogUUSrZy@QJjO z5a6{{^b~asoZRzRGKama>G2Tcu5ja8+SGizCz?ut;@11 zWLG*)z4+58R8r*h<)>dvwWgcy>;!G#mnhXzUj%Jz3z^E96)Jwxb&0N`B$apOjE#C{ zPow};n953ye_Yz~ToUN_U;8qL8dMuDC<`F`7EEag~g5@oAt! zUSHK}7X|)z7?5`|q&=V9%E8Ah!CtALp`jR%)jQmlC$>C^FqW!tRXkSd%N2TTH3F>Q zovg^!1#jPt*(}`^)>04LC6zX_+QMb|26onu?+FWca$nM;svp#l&k}$4ExQL;<8V{| zTd9@Cb8hF}LBfj5q-;#@sQ-N`aST0;1_j%xxxe0JK&X#(OGb^k55 zPz;PkuzB-49-Si+)O{9>2uQbTyn1rQFXWmCVwuPd{Bs1Q4D7!#T&Sa{f%2nXV+Wi| z2_lB>p&y}13$*94r6uqA8HM(1{-GEwD6k>(BKca0fzQ=RS~z=M?d5_nlMuoHARiFo zg!meJ^x>uHimY|hVcG)!`?XM$o$@)^?6f-zOvfaA*_M)iP!n`YpSZIgJNN?DYo%0jY8HhGtAHt_TXyxfPxF6A~RMy z?e+)d))>G01q=8XtGUN>tpSz)%$mVHw(zv0PgnUsSNna$GQaU-dAD^W zZF=E=Ks61mR+?}y>F=Ouh~Fo~lXMI&9*>&Q3n~8u^yz4yK5Qfj0}M341L*3&p?cS} z8Ar4;^VDT?HN8o#c&_1l6C+RH;erD4t&`y&_^s4iirHUsRpw*Lt6X_<5ZsE;%mWKB z$TdUK3@y!4AWaxe^tyywX4x=lBYAF2>C7;Dl1Hnyuj}oZJt;!M_B~ITSYh4!q&+~{ zQ*!29b@0SE!SNuf1(k?KB2HQ1cC0%k_n@oH(z^HHAbe2RmQ4U$hDL2N>U^TT68YQ{9Fr}kw@dO)bsb!ZDPfJ+6CKsOm>UGJV ziLe^Mjy2%*RU5U%C<{a(g(Uv#tX`qQnxlvi*{c-Iw7s*B59OVqO*zXiw zlmfuibn)M66(NqURz!AiFf3va`$kEYN?1MJL*QCA0VO0sy1hJpE+VoX_w@=e=@@r< zlm(dFpmXS+j6)H$(Wyf-%7dCRhiJO;^{O^k{j`hOEzPQ%5XkmOhNM;K!8Yuhq5C+d zUP$b7yd<)bR>lJA$i=HB@h%2AA#{;a=M5I?%6ThSuG~^hNi#%{M`=PeG-X#v(%h^> zTuZ@NfPR*PdD)TlH%8PtiUe4;tY#r2B10dYl2DehU(~$J&M>&X=a->VzkA&AY{EXz38K@%9d}`L*z12cY%)%d(6?gJp4oD^?RH>6G zh~xO4gpT%Q8;lR_JK+f>qnL@2F9hio;#kF#01A)kpXmeNmQ)9mjlk8@+D-O<1a~HO zfD>8gie6Gg2}I2O$&C{MS2jT?HMMdl{#f~X1A>nOMs*L%_EkRpPX+rL#k%?XlSczB zMVh`Z?CRlt__$neE_=%@XtIykSSndcvtC42EWQq)x$?n4M%GfvZuuWW>G`*zuk(1- z0G*RFYd9PO#rop1-|LhXZ-W_4h4@8G(>e@q%57N+k@h1P0!^@Ntr)|u_K{{enWBjO zKU6vA`=Bk*w~`!(u9p0C0@D&Z*I&PJxOCJKfP(eQnkH2W!`j+#nmm=b zoO=aT_CTLq?xes=)uypwK|qHpCA~9P0YsYH% zS3O2c^?Xt$PH69cfC4vr@MraAy^fI)_MdRQvYkyP#@j9xXE1)W>OZ{S{d%>h3y2SS zU&cRM7ei&kY9<=~_xwAB>O5w>KyhGTOVS)|%Q7 zoT_9efBO_H?5^)jXK@j0K8DU=0Ag>#^>jD2LS|Z!431wTbhncX{O67*g{F4{guuC9 zWBRX-*g55##xOIjLL~qrnz%+czr@w@8Z}Kz`KBMx8|`3BxlCykbGSExsBkO{<0p2R zisP?&vQCnwWWt*VS+}=GmfgTfJM?Pgc|V-Z_nsNn$ghf%@im%Z(>D4t0O79IS*Lfv zbFM~*6c~COa%7~yP1DLY&E2u@%RyYKqaZmn9n?B#Ama(nbSvCtAYQ2CU#-6rIs96_ z`|UcX`esw0=Vqr{Oh;BytYqvR_rG=jW>+!HQ}|i54&DfhQJ?a-=OlVPDj2{xw}@Wl z@f@^#l`EEM-}m4twy8^q1H}B&p#(O1LILOXvTQG~0vE-eyfB3PCoCKG;$Vc?=SWOW zz8uGzYKAtqr6|or-%a5CmSs7s=c2NT6|Tt;iE1aBPrl;_9)@4NdSvEaV@ND#2;|2j zBBoQ>kG1kQG_sQoEdYH?n$i!6e*0n;9fRW|76l+zC9jr0!#O;E5m3P`c!w)KWJg4W z!1_IvRqqM8kFK{#5fEABCmK*`{EW~(u&<+esV*qiZl4rf()JI(O@B?9_RENbI~xti z-tqq()R&3?q`0CV6mP*G~?* zk3?*=Q4A)yyZFkhu)?zPt4!AZ7-x>f&q}TR>DTy$IZNm58LE4#QSyNq!tgzaA!F;u z`ztm4yni*K?^aLfXBmo9jmW?axX;*N!A@w@PUxiB0luy5{ zm-!wHl4f?R1J|l`Lra%MU-INn-Lvv*!*TF~=T8x{gA<9RI|(%5LQG+hgk0BpN&)s@ z%Vi{?u&Zt)eO?^Px&)ijTv9 zF^NRG>ZesHjgJm?O&7C0XS?FZ6Op2EK3`9ahqmJdUQtc1Zia_L0F%E8d;~!VxwfWr*ODtyTSI zh3C|SJFZnWv+bFGt&Q=x&TvuJaPFcP7g+S+9{m;yI|U0PO+xwN{f+(}E`QkiMbx>j z>X~$f>lAR*&c~e9__Eq8s23vAjij3F)J_w?0b<0&wqvV^TY-OebC@J@pE&6(4@Eks zaOlWMqHAv`oY$~?oPllQQC5F*VwCb%y1A6{6)LM_`!IPKsu87B` z;No-*1DzspI;qm>Q^m`f&V)jmm8w((Gd>Eq;;M@H^whQ!`}|Q(cD#>5a4eKHo9kEvVW&tZ@8BI%lq{XMSp)bgl2U|H#{yi)Rjn?i^jj>oT|G zKuUEahmhKTrw6j*FP%L_0A01)@?7rP1R@c$x15!XY+Mwg5M@*6D9A6Vp9zG+z2e#E zK0IPPr*zqO`?o-TD&w6|xROrDw4I-x0H8fQGIqFlSr{ZA82V-I=y^AxIQ`#u;kSGC z6ZLTY%hU|J*S`mB*<9&+rSx(^kARUFvG_5 zRer(#Z;OK!D1--rm)LXq&(Fff3Y^^nM*~t3fFu4#n92P1)p_!tQHS{l+m}^_>ubTp z{BP@vTEqMw90%wBI`xYjV`K}83bZr?|LQs6NHn4%2e5w0Wd3KU@?Y7;m(}<4%j%2t zdbHV-G8igJB?rE7xQHQ{aR7hcPxdACwX4t@U)OuV`>Na6O3NcCOes95hy?ew3CBY` ze#szOKE8gm^Hb4l9Mv$$>b6-wJF|Dm^5yOJTzPl*zwKDh{8Zgsl3QFt0!%I&P+WJv zlY0SfA17a)XsPCv$uKz_wrfa(0JO8blP$6h6DnWd7jMlDbq5$jA2&irqnDt7_ub2k z*b38k9p_tMvqKlS@TiA?e_|$ds^{lS6VekC|7($0N|7`LwSpFr)hVeAOK-q`Y#1$V znt$PnDbA!M7-}2c5rCF1DUFdw9nFf~&&29{^hKfNl(75du32iyjuyN(g_7&HN;p`^ zWG!)gxujN~sCG~N`_W}a1_Q5XYC#cR11X$@3?u~@cVZbOH{I^tyWQt0=A3e;dWE@P zu{xda%1$VsZ%Z!{x^GJ#QpSpVi-bZHuq>O_AD10IBl9L66~HyJLjDCuKxKRinBc;d zyy@>Yxi5|zp?9yRx&@qG_#1R zF+0Z1Vkq`y0lFqa!={oHEYc(!CP{cs>vg+D=BZ5EJU^UVxURpcv05s!q88_ z8a}kd2Q*hApvnm~rX!=myb7{wi6aM>nTe00BeKw20mNFyq7%3f(db(Fo@^w{V;ZP~ zPvQrFa~9&{pWiiMnT_?Is1LF*_Eopr)sovc%qN_6DxQyO#TzUT`X1owCBJ~eF8q-iE)VxfVg*cZAU|~F622GLm_v0Rr&b5E z?{ftZ7RY&p&`ln&3fGw~6L{s!F!iT%_Aw()20$# zWUzKR!3f>b%g=!7;_ymTk6T6`;o#nkvptiW`niBf+& zCi)88a_V!=LP%RX#2RnHiSXl64yFc5BgaZa|A(!uC22d_6s*G!R&i677j1RYj`+Iz zd_cHrN@_gJu!saswYkI)7+4tn*GrTNAPHzC5=i+jgHmel{s8AEL0(rIQGmM)VCMQJZin-xD$`IGk|A=DXd%V~WKw8pN;-gk zY;iLH)WLH1@^QD!-d@DD1p;J9mm5Z=LJv}a0ak5k9jC@pheSjYKUFwb`_ie?sPz*3 zgSUb4a$GS;IiTX`%J?>*2rnFS7=?j_#3{fapOv(Gj9Jh3(%JE&^L`@PO25Sg5WAM6 z&qlH`-okT>Pdz30&}PM9)48^-T4;b~K|w|y?U-?p;Ex@=tV+2d^iqsdngJnh??0>| zTH8wQhletEkquwm6^hwTXBABR$B!^QBPB(ER3o>OuKeyhLCvBOsU|=~i0uxrrVEV)!Pp2@^4tskgabY4o`uo|T0K1Lq zTpHAt?i5&zrLB-K1MgI(yS)2l#!g#9wQ(3S9<;AZ`zd>sfZFLz_xTEU z$F29vo%NyEY7R^J5n?YR3sky}YASQ~(0O_S-k6UbgA=5*KGH5r3uYSFl{FKG$~flN zz8+}iZE`d}*>{GMw;;0xWB$+nsi*)-;|c4k9+-f2^|=Q?{wr{@_)aWXg>$15GoG zXqrcf{|Vaz$42jM%a2CZYmmu^J=X>SLrrYVzvSJjdLCF5!bJM3q&f}6b>%a5aQ0S( zI;j|AFNc?wn2{y$H>D??n^p{8wAOsO$xR3pM}m%}V+Tthc#SU$7GUPrf;bKyNp5fa zwA3bnH@*V0LbH0^>NT{8F-9tv;ahzh+xX5kNOV&csi`}iC9qUyQoGL=zf(0PT6-$xXSt8 zIZVwo={sg?M9RQz4*+_eq`6he;2d~@k_~kXxO?_fEGgTc&Ed{fySm}5{fI)*V-%ZzdfGO#VQ~ zwuwv_u=02-azC?NN@h~&LvFOO5n_gsS($nLG=A1BjQF~X5r9*XMcPzurI|1NwMm?r zYt8ONM-L~`6qf9cVY4suF_29)SZ9U{G6;;9X;}Pw(oaKSkN0`}#b%*Ywc^YW4kubb zQ_VNbh`a(h9$8FJd&c4h5ili+2D71=C|Y5Oc>!IcnF^2MblBNZw(zN9R9%+PceJaO z_Orx{!1LLV3;@PEM&OK&N5fx4WhvmW zc@@7@h`hC>KFK8R*$!i~sl&DIJ-=0dCQ~%}vzCGB5&&tE2#Ydp$azqU^9t85C`k#k zY9E(JC;cx617my=HOl4yYnxNG1E@u2CvU@U7gNVirb5~_)YBWH65k}n2@6C*m;BLv z+;in$A~&1%8bD%`wTdh%7@ZKo#^El5m{Yv?zjl??hYa=-A+My>AvANh|o zJQ5oJ7CgtRZ0_LqMDX1w1wP|;_7NOnH6X)t9Do7w9@jLGPe_PnG7Dv+cr7NM2kiJY zMV~_n^jV&Tl;B0~o&ya`?!1p@T=hG#AfCx4RRrYRuOMix8FXnxVkj}8N);CNtT#mQ zUyzXAscw!Ox+}SV%_88(DAf_q&u~>>l=`7fI%Ws(&Ba)*9dVK~o?0;Bb6_)mbKTuR zkpcu4#7>p58GyX;Tz1W=Lq&RrY*~=@OVl%}g1Z~Du7B?pHvBmr*s;eNaMNwhpuGcz z9(fncHAIX_ZQU7{oxc~ox1D7yTjkVX_XaW3M{eeu8NIIecBs0YzL6wyWlNjQI#&vCwTKupZKy_k{u`uTUT1Q zj;SC(CJf;2RFypc6+)+)wga57ooI8NoP}8bF?gb#o7114RYv2byyoJt3|D|jupWsl zvoRvxm^5(_JJuWF{3UH&VFwK_^>#kK1v)T!sq`|{CpJ`D`Cyw6mE}HG!1F+c)e9hc zwaPeK_#qOY;+X8bI}rs45_D9YGX>vby_P+To=#T{89KuI*}>x8Tp$|!edz$MWF%L$ zWffN~FFmj*FxTe>(TYY~%ZiiH;8+E`F;)~@igvo@Nh!tC`HGw=XZR4T`b3LB!Yy=> zwUc9coN-Lq8A&ZUlcbuYRT6Z}g%=?2Jd|FT6IC=pr zuhKcRy@#zk8iKDk#YT`8+n3p79V>O5NKCpA*(f<}r!g5gp$~x}HC_ZmB&=80%nibi z#0eI};ndYZ231NluBT28gqJ1fz>sWOSu)Jc*_gkS!hMYUyNJgii&dnVSq<1iGVEn_ zXS!317Rn`*1sFR>pBC`I%vaQsmUcZLZ+1Ps!DW$SDIA8W90y+*?YrB=h?Lt2n71o_vQ_OZg*OeKPJt}2&W|C7}PogghErD;Vxqww_+GQmo{bu4q zewUhi0Mvf(#{FTS^JGUI90!<=6Pd@#SpyaosR!%Z^6ziE7`gvF(ap*;unxO27Nf!xP?J66|44x91{W;K!eT0@Vru0c~hIB$1Mx%u=LWrhhM^gDc2qkh7xvv{zA&HtaYS;N!7IF4H+}2x&D+eBB@AV= z&xQL^HX?jJcfgn|#sWZiO0zr?)|+oh_{0W<(v#8f>Upr*)zq{o;U%K{hJD#In>mA@ zEh{f~tbL8ioMWpxM<~1!FQ#Nr6ej`00Bc@YwoQpj?r?C5sO@cPNY<=XKp(1Fo6<;2_+s^U`QYoad|u@dnnY76oR0VVFZ= zRG)InONXxHD>&(R5rSmjF-KafSMun~8Nv|#Lk4Y*F9Lw(jDt3VZp(WZ8+O{>qs#l8 zcer@fOFpTl8HPziO203sc}=kpF*M3AfTg&ji6H;R^1L>kZYpXSJy}-miaAIxIR&eQ z37ss9ST3^bM7irRb|+zK;IarRp8{|`@9ELl&L`Dor+(>3wUpE~DYd>i`n$TCBW^(U zwJoat;2f|wqH8pITyvj!anf-MYJ!+uyx4!c+VFPyV)C7zV+vd1&lI(Sn~#Ss2A0X7 zKrEHxW^AK82S?)WW=_?!I3ym>&wh$}0ELjiegHoSpdrz|kh}l;S}b4C;s4`O|5zH3 z>|9?0ak|F`TI zh}8j(1f;}*LIh4yfx!Y5O2NMYXA;2?fslF-C_q<1C{9o&;BP@FN{p|8{fFlGANT%+ zBxW*zU;yF>LDiu%b29$F4*)v(LVRUD>?~h|VT5o0Hx&54%x7KvU#kvyw;H{1`Wxx$ zBiMa3o}#XglM~^bf1KT@vduVuxU@0eYxnj9EpVgAU8AB<=%;wfBNGeHUB)n?*X=`- z4#V-X-tD3Wrh&)iU+=~isx4hze%=p%rj_N|Hb2SESP;rL$0br)S%tMA9f z9<+LcSw-ad;hjZg>5hQbyPBcp^yuUC zGJQPV6&ez84R~#82}8b}6j|omC^@Ooi7cmf)3a2o6Q5fWQ&SHF{kiO5UheFEU(BRF zHp-f=Buaiy3!qkKUz6qJR%b0r$g3UjcDiL@exGly?xHErX8NUUqT7F;U*)=rrkm7A zpGxUftH%py`pe6h;Wa!@Krmfne2zbzu__Wlc|}J9KK_kg>k%enFO`6aih>5?*fCv= zX2PjUyEp|1`e0Z`cRr+Zdy|Qzu1t`}Em*qe*u;Mh1eBpaC@rb!v6sNqBRW-7D6@SK zSG-)w_9`Fa#k}cGu)|$X)A=UVzp-q7dbv+M+hRHUkz3r=-y>Ch=dG!o^Oij6M7 zf|;v10?^f(CJYY0pQ`*y8-@hInd#uVg^lWL$bKe^ZF67lD^&R`0CvW zx~0A6($3ngm$Ue8R0v}xG)SQ`NB6hDN4TA0<;+RR_YvH_dwWJJaR5|DfF|z4UThDt z^$CY@TRWXS$89j8xYEHM!@|*#b>}SnLx?C$2msX}*{r{l)6RO!OKL_YL*=`-{kuJx z&sRA{NXo+n?UAp1>1Oj+1IFTO%d=Px322${h{l+y1Uli>$h}WG&&(BbsyJ8K*WiOXXCxAH(en!T9g&% z^f!w@afNrouAG7~GK4O&w>_WNGgj^jg)Y|uqVN4STpLI-nV z$nW@sz*H%}AR|``y|Sj>(8)yPq;w9gswEZk0x_mpDso(`3g!YgyqUQE_f|Npuh6A$Qch@+Y~)evSF}-r zpost=75`WE-`rliLO1HnnRH_uu-l8M&dU-S%zF*iUB}d4p%pR(cM=R3A-W8@12pEEA1^y&q-@_*33G{nqkG6kB=?DxR74+8dxs^FoE|I%xrC(4gfIb~ooB1vI1 z{AO*KV5ME)J-ke(#73ek%iw1Iwz#DfK7}y>Cvms3^3$XX@xj*adq625EHQ}r)(>e} z05Vre+CvYTB6KB%6U2pXIZ;cVc*G$~R|82iYdJ60Gi#f>6paeE9Fn#k7of>JG=2)G zOOFKp9Ub%|%hyZswHpo-C=>QiJT;*FnE(fx${q1ms3Lo{nM)e(C=t=n(9%<{Sfw4{ z8)9MF@40xnBKvLQOxtd5irJqyj0siMreD@1#+(CJeqqk0{o|Z$EJs(67viXg?p<_T8o_agC2fS2Ubq$zXcwXKM0bom8oislg$)nuE z6q>9e+YKym`(RfSe@>E!&?ubjBM@=|CzF4q`Yl45C|AG}ocz*+Yb&hEru+gj?CFZ zwc(yL^D`e+<3yJyb8}o)XUYLeY&6c0Z#A|CR6A3+Z<9Rf0pY5h>WO6$Eq6mij~ew& zHtJjqE`}rYWgJwtRc81BOdt#(+%@9GhNY#vZjsFa*$?i>b@jJqK7Y6 z-)Kg3;X1@PKgo5#Mu(KjI@dhZ%Ds-;doHOUF!^m;3f< z8LP^DGg&zDm#qW*1OU4=-R8EfMD_GE|9}=(>f8gy&4|1q-FE)$14dN=`K}WFr#d-| zYCbEt_y(>Z9({V?g{U=fdLY(}n@d#(Fl2M<97Ug0<)?4l6eAwf<1wRZ!|c>(vyP7Cy2*%pcqL%>@AV ziejTJC@o}0#Q(uiGycI}zzNkI*)%UWCrGYN^)%K#IQDwFaxO0b>C+XF2jSC2sL;1X zp@@F*IFuXN<%N&?eL!SXOFMOWtsLfB)IgZVr-6_pCH$U z%d>Hk2n&3ksD$NyHMum4kPaan+K;IuC|a;O3*%E^U>dFvexR4$73wR-WVK@SxG(5A zy$jM*AI<3T&9&F$#PaHlU`;<<$)|X)x6Vf7M172jP6Wauq(kRtVH0}eT!Xj|9`%i4 za2pc~^I9w{)637mB>DO;zE?a(}K0^Kw7@uXLd1mvt-xLqz$DQ}?$p1)s-EYx- zkeBI5hoCgWD7^Jjlx0~MHPaPcw^(@6%rdFhTXTjhvA9jf?k#>QD|#S2jG91aY)1D+ z7mhmPX9i{nW5h?^Xe+?+)nnE*3X!sJZLkqQb0 zkoTj@B{z+&OR~f~0s(gJTJ*(Y3=@2mq_%Rzo%LUZT>Zi$%!x#UM@!)nKc4$Olev=q zh1IAbWo-YjYy?ZX5|AO0vZJp23gGJA)?0@|cm;9@MM2W4NOe|EugSy3h}vOoqgBbi zh%aX$A)0q^7=+h2X7eZU?+5pD%kRpEF*ygyV{c80n?Y%j=1u*oMmnD1N~$NHU|P;1 z5+aA1#^u8E`D3b$ybt#$m!Sd&z~X*4G!$6Oe)+pu+f9U?`xf`inCH!@6U4x9^Ir-# z9SLyGd-KfrCzYE{Y$WD(^P_bfzDty5;MR(-sY4w>e2b!LL8QfKH}OG?pv6Qa32jtj zGnJg%aIVb+T!-Z!_ard0WNTQJ24}LVI#xw-4pbXTn_H+w{fo+q*B_nPQ-~!v@=?{D zM5Nam=b}-X%#rn|tlm^uoUXx_nx;3e{;@#0c+?FN|n3OJ7{AroPUTz0pwz|W0geZ-45$RatB{#;%asF2%H-Jf<&ne z&t%>Mf%0r1eONprX98p&Q!ZKj=xFjbXtuf!?m4(_` zB+k^ZouDm~!JvcylnY5z-X_FzsaBR~9Jn;JLNWl#bnG3g#Bca!&a7ZtZD{6V?Y+~r z!--JqQ2Iz28}jcm!C;`L-mvnXC63-dtK7PXQ?7e{t=3_{gkGIl<6ZuN#(V)jV&$oq z8`GhTkj~ZAZH2}Z$7`KYeQHJDc-0qv0W03o_}XO$cEJZvz0AWx)BQW`Mjm zVp$>u-vbMZ8K-mmp#3|l0ibI~JOa~f{>s^k5)VQVr*JlswPyK`u$)`m9xCFH97>Vp zR~_-ErDf+ZvZ37jAt`IYFd7iIm5fs0NJic1HN}kQJ=D1v%STE5BHmKn`Oge_cqf=_ z)!#%0x$O`5@r`+!!~rh02RX81Mxnn+?m}JPPC}7 z0+|2c4{l2YZ^)jEU+A06VFV$X`643-ADz$a%fH4~<{>Yfcdak-Mg@Vvie#eB@JtMU z>pr8xHPqvIi=f0B5S1gtj6!b<9Zrcu;=g>Tq4@qf6})3vA1-sBBt3@|snMfLr@ z)udD}_p~y2PxG%OdVGMmef3H(1Uj{y&Z47f#f!z|g7~w==CVC3q(DymDBSXAFdD-! zYS%RbE0qH|YTd|Mor45U5T7i;3)#utg=xVOFCF1JynBmG`40iu-yejKP5SF#z4Uza zBJpL{x*#71oid;b{tP$P$pQKQWTQqgGyc8444>WvbWaS!Vfr3*48z6!>p`YhgRx}P zAXqMs>xGts^my;o2KmGm9_J;v=IZ+<8P{3*u^=ch*1EYqcNd=d?`usMcVuSo3eIijO+3 zvv%o}@rCH((OxYnfR1fsApnT9y(Gs6Ak8LyRaBqxe-8q$R<3qAp9trcT4woSBpsM- z<4T7r2N+nRQeR2C>cv-^bpr|@FW-k-3KvYU*I_S(7gZVT0sN%XtYCH4evzm zcg?uN1VuJB85g`gMa;emQ2}e_cQQCW1frj#F&ls8k`|TIxJEYQLG%0z4G?_|7u1o- zFA;ixn3rO6>0F-lTMsCaoN^1fSF~%KBP@`=68(Xm13$OrO_1A`Jjn&!YEDqM1f!)` zE^Y5~M+tL-GhFF*Hy2*esPBp+l}M=y<+RP(FU3n+0!+gWmU8P z-A@7r%&Qq?E*2VOgMZFE5ZkhxoY$R{~L!*a^rh_oE5Nw2#KLQR;x{**R@x zqpLYM$u3nSadFA=7K*vf;sTl5>r*c#zRVdBelwFbr;m1k@Ji5Hd@gT@mjieF<9|0W zYFDT?Hl9Acqd#{h1TSGWB0f+h@SQmfUMYYrc*D&+Blzbl3RBjhYc}%q)E;560Q*Q{ zE!kgqE5} zR1O}9#keon9`lBEJvJAeJm1C_xQiAC#s3(zaG|~pTI^i^2LV(4tt*kY{Ld`WTeXVu zHv-15Bpf`^7Qay>xUsDeHrqd*xB+`{G_vt-kny$0!(wEU(u3DlMiZiS1dEqoYM-0^ zU`EsMdflR{-9E|Vy5{>6ym-0)q3`VXcx(MUT^YyR@m6`Qi9G4P2;@>+f4)uv_|g_@wq~|NCC{0(vokpRx$__pccE$ zQRAT$HsNgc+pNU`M8CjtNze$*xH;2OFKI)HDXFH`+})mbqn z95%0id2j4g6S-1h5@KY&AN;s$2v8i{JM!=8#8};nuX=jEVMjpqcIsGw&#V{ZkZo!W zHk3(EVt)E4>wxG1T;1Gb`O{)#J>#~%79mY6S{wXxp+1AlY#5=_TFhG!Dikn8OT>X|;ZRv+ zEktR9_;Y7X0N_HL?71{+UoTpb=I(g&>*%b)LacGwnUIl5(P&eAa+w#R`rSV6TyJk2 znu&$OVTsWWd=1G{_6v_XfOYEt2L{!O;}Q>y1Xq%LM-I zdaC>}wI!j|1VT=ch+jAEYKPXT;hwfARtZtft3njO$<%kY$5>f&UC`TCYi|go* zT_P^}mtm3diqP8GkzN>HjYh0|?!1&mEcw}hxqUccVQ_8&P?pSh%r0b8bv~5{$gWh3 z$b8NG^N_M*I$3hfvuL_-NFNk0(9w%4C*dkZSV$tFOzv}4x}`D_tOyssu?(L~#Wr-_ zJewzk#&R3*-gJNFdfGsW)}{$^s&wNnM%g^_HL|3T~4Cd$JP&jT!BTEx+9S??(l@ zmNNq9&2OgCLj|4aZ91UwWU>$LmAX{YgF*{5w@(>4zc$P#)XFMB$ii+?{O4lYk9i0i zQmyYDp2v-I3EPcKn?|o0Pfu@7#ZVWCK(ax;C$Xr#Zvi6) z333|s^ESZwr@0En0FYru#6-UEVt=cS1UF!`?)t4{^T7Kojl`L|uQYvR==RVv)*b5rOq&Mc+q7VkI@cc14k2k4L(UE{r&a@Hf#%pOKDXk(Y7E zv=C=*VADpifs_7Fe-C^>I}KH(%tqqq&n+L@g}-VaMLL#eA249n*e$DHi7fmLO>!kf zBVBcsBJfbjyf^cPm%?^yOTW&ABKa3^pZ7eKt+mti)UlHnrHbPcwTJBr;U6wtzf{jM z(&dxw#>x|=w(u@=5sMmo5@w3I&MQM5tQsV)(r#Q13kv`WB@rIi7-}+=V*5%O*JEek ziGN>_n>pAZXJKK0$t0{{dcWK9qL)te$V+EY$oAf;v9coep|-ku6qD)n71^g6h`B@HLeOzJiax*TePYhAVc3f>$j_8wfV$!B`TN?N7^jh&qRI zGidQrbg~Eh6;^9P=vKs|#G_k4rbM5GsaiED5}%G#*9NZBd0WvD{h_7IJV%pY8D{M1 zXD$tJs=7x~Gpw<)f#pOxMjPOT4OLS>p+vOQdL(jExOj^>hu(gg|0DuhrG<$`>ew7L zkv7w@Z&Q`c$a|<_3NO334z~1sCPXxP?UXHpX3;<;yfo@Kp{>bSLRA{DSp>v9dzWnW z$$zMneu>0Q{xpEJUGhcb3)m{<%~~BimDoCTrglXImdISF2II@lZ;q!MVUy`AU%qB+ zt@-eBt+t>4P;rUeO$FNeQ*iDnwcjEyjORFm@J5H!n0KWLT4du%Hhm$04BY2wW)v-0 zr;J2qYiN$;wz=RJzRV#|iU?e)rcKK%5)7&C;xu=7ior--z{ncL+UO;0Y7Bn22or)G`P}$NIQJ+f}iI<2Hm+4c*X_m)G-6dxteW+{& zMSo-gE6?U(S^q*!qNwtz#eqyt-`F$U2i2UFR;*3Uh>M!B3vUQ)SS-i8HB#IknK`)v zr{pO^3O%-JlBH-1LDM0*+b}2+cey`nyx~fjFbw`ppj7?T)|Bsj1xqT=rLrFfD?2b3 z(Im?0at*GwAezgdsy%4kTyIw7)yb@^a~VUJGUPFYMdPpK%4J@i zra(zP;q7Vn)7%Cq+t8rDUyryFYzON#)lGmhGXpA>bmpAd#!Wq!z# zFL%ToraHNgY*YqW8ll11;=_NT8B#9hA_5xY`naEh(DhKwllL^wd`PkH%x%+Dn)FpK$ckQ1QIYn zHS{OeW)YBD{DEW&HtzX+5ZdUPupwOOek=QVVpg5BJ-#_=tRyP!I<(E_Yg#~%urSS1 zi@b--6u;1YH~_miVLoZ}|4) z9AZkbikh{-tLt$a{9y#w>cj7Mk5n1LVii;AkvrfW{0Q?T8>n-rorDyql{SbKTt+hI z2lB@)agTg6Po0Z_=u{@Jz;N{s4u8dN+(ZWBY#PdCv`SU&6 z*N4qNxcD&=odC2yuWp1yd;#Z90C-{|i)HwtUouTQja*SOY`>_nQuIitWl5u{p;Gkd z{`@W$i%}({bL#YkrPBs54&|<-&It<=9WGPR&xRjmBC+^W6RNyJWF|o6bL?uHvX1-sG*K$hA zq-7T(hn(U(;A(0!evH3E)P>>c_)bQ!)CyBd#dqt$G1JBvexJmvy5;xZ-bv=05Of1? za=L<(chX2jW+TBdXy+PaqXNoQ?tT@D3$2hwPADgKk_zrSrLz|E{tF{$tYN5}LQAMC z2(E#n)jv(_pi(;jbB+A6OX&N8D%@$Wb{betX!Cy!!)K=Hn3|wRudsQP)m9qR;FQ)c!>)^Xye8*3$0r zUFK8>ec>3N<|o*8@)ft-DSG-aaK2VO6X08UdJNfvxT|u-{dqSHZAPiWOF;MRAv8_z zlibw4I&(?9O;m0R z2kxrjgiu-4uZyvb^nsQ1bgwFwrW@Fub(+EC{UCe(qo;v}T9{Q?(wiO5{%v6#ir zq2SyaFYZuI_P7*C@Z{}ke%i_lCRo_>T>1&oavl2@MIOxgv|+1KmZ7w>zQ@_r#bz?D zD2ra8_Gzf${RncmhJOhlyE9YVyMzTW@L-oz=`Vx#(}eK|*EI^=n+5WudmuS`$3!HD zEmfh{urgaQfc-=K6bP;8ex5U|2gkO>dZ1i|`kInB#?17MPIOI3h#00Z#7^Flm}8`d zdWj5g7pF$#T~QX>V*yNQOrtLQp)n)*=Cv@c+3kJS7LI#zOLgNKoP`pZ|Z-{{E@}(fxy~mqHm6Z z%?-5HxD@_KP=bSUvH6XWVolx8CPAf52U^Z9pqh{7@Gh%5NegrhS2MH9FUPBou4VdB zX$%iO!K)t1g;ZK&rt@6S`X;h>XzIPS1&_>na)6Z3q$hP1Ytnr}>j1#Q<+G{j|? zI#?d^aV!F9*pj|g~SQB&0`EpV6>vdi$v%80u+ zVJm1Wzq)%RwGwE9_Tz7@MRK7M>L2g|I5u<-JLo3gp`h|oe$x~d08)?)+RC=UD~8Yy zdxScw@sEg$zg=|02rLRP>Jh>3j2Yoz%J_*&-nLFdVa4$)H~53a81Wznh8DJH^meF? zO;f#3>Gh9{a;!cy^sd{jf@%++%>8Tq&NY;w0v_JUin2hv&x(Bn=#H;50S93?sFYlR z52~I=Ic<8u49Z%Lf3ShiYpQ+rZv;d3Y(xq+a(QnS_h#EnD?jOicN^bKm6pZLBR#-Sd~5iD-ufhdrOC% z&Ne5Iid&!-ZLDCm(zOt9;?GjeAiD<<3lgv<08l%1Ym<6tVZ$g{)nrukl~EhG*;b|< z#m}mM4`$di&BTMiD20EeH5?8Nyf(;e)Bl|f#*&T2JKd`WYF-6K@{{M;se}KS1F{ue z(RsNI^XJtWk{jmEayrmsi>x-Q0Cd4MGnP(i>08&}hk0S}P<>RZKU3bjSiZa3m|xge z5Revhp^shIM><@*-*oy@ufNFLv3tOee~v?Fby57I=&>jL#M`nrBD7hca2GqAqt7Au zqzHt1*{?u9L!+tdQYSx0ONnH2u+&Ohh+JPgX&4gxS)z&hFzl53mg?$0zD@YX%l+)L zMA0;q#?P=l-xC!-m}y3J6MHO>Zw3-`GIoYRnMehZh^RrETtI$hy_XKf* z+NEV0xNqSr71>i2Qw=g6SJE1%@&bc&mYNUMbNJpS+6R+@1q_j<)5(%TKymE_!zd3= zOM|Sd58?e?0ZYO3o@=Z_4x=COHF-?_+GgqQ5|@ftaPvq2JJYX;A;OP;U@ofj4k8Af z!O-^#t*iYwSphTXa=sRP(XOA#&|Pzo^)%1cf8^ux3I_tYPi687>=AKPq9;PSz?CF* z?i0zUKZqZ~DM0?Kq*MxjPyhTkx|{p|2J2MoX~%s#v-}N>zJiH50&!zJPv8*1JG$dR zxS~B11*$$~T*gmlT^G*u75)7xB9jLaB@h>p5Ez!a7#gJf-LTyr3#=={H|_EL9v2tG zn>ROwHn%17YHAFTdi3>sh^}h=w*)mFYpM;-YI|aZfc|gt54W!$9hKLTYD4B&`of(+ z>OzQ5bY-S}i8GpI>nbzXkM~b~G{HUM?^Dm#==Q*GdNwvv6G1Za$PsZP?$pTE5rn=hQ+3ob zZwCh8cbv{EF89YiH}Hc?W~Cl$-josDrAm60@Vu-xk%GDV2tm)U*3!x?8!Owr|KH;C zYO)dqWYrifFau>OKm-Oi4N%1sEx(_Q{LRXP+-E+tz|J{4GxsUy;`{)1bTM#)MA%1u zF+EslZc9F|kDL7I*gVRjzTdxmV%x^4Fzo;?W>pB15~?iPL%6`O%8^Zugy*A+E?}HR zqk{?zdEvQ}$s{|`{rCwcN1bKb7!_NF|H4l&NPltRNDTVSm;6Q+wfHOIoa9Ot)w0Nb zSm;U?Gp)a89`;F+0>xv&UHD40W`6Pt=4+d5 zOw?1_*{4F62iZmF;q6O%p=rd_Y3Re2)>Pe5EU(I{e4pVy?@B_$?03}xB+cTzggJ>m zH7(L69(jEuQ48vo)K58^A~1kIb;vGIot)+6&``@3brN>gc=-Z_V|qQ>-;N)GQ>qlf zDia3VI`7IjKI5Vc-59^z;mY{r=gW3KLaFc*kE^C3&J)7Ni;*`81=$qjy79W&W6^GH z-)V(E=Y31_>&A6HcU10b6bBQ$<;XA%C_?`vOnFlh5B%ZD0+-bY%Yr@l6KJ;!hZxI5#V zWXlDs7i5Thq6GPLq3Ink+3uY<(N_U_lZ>!SnIkd<2x47%2cukJo_G@pybuiSgQS=Q z2=grODZNHT3WN{g4At%VxHoLz`(YF+`C;#Gdxb8_e^JQcRzvV#qVj5gOe)&4XFb@+ zf1QC{$b`>;bRn4VmBP=D>%^S~k&vlK_qW$=v8W~0@rmny4bm{RSO4{!F9hlQ(Z>XD zho5jZL3mV8Q@8Gg@}>gXWFnpigLB}TE>AK)^tDFVtF(cRrdxZQJ0Q6NT!Xtwxo!G6 z{CHLrg2Excyf4~kZr#17C^`kC3gS*Vy)Eq)&{ht1vGs)-8^Z3Uq-rSj!XnE6b+QP7 z5>Z276)zAYAWbmefn{A2iJ%vuFUw|;JAj)RGw~YqXIR_KjzdhPJum2J6vc_(K`07@ zH&z;>SSpgtbd4ikbEw?sVX%J(mOnPbBTC71axQSC?v_km|AOb<+n@PX%O zL*Sh7xOUa@62Df%m>0{8;PEGgZ?>~d_4ix67OcI%P0dW9#c#(15^wS#4@s=8-x9W2 zVH`tRuq*l8QwE2~2c}9p|2Q7h$TaF7@Bl%#GVhxS^3=<%Oe0tWy6rf_R@RCCm@LMi zMpU)lxhulbGI7VzMVrC_#u9_Ni`##?kiBan?j6Sp@GTo5A-TTcVa-TsVY2sLRTx9D zj>347>Z(dhuUbzpJ*AfmbSuT9G*7<`NdPf!^(8)EB+sLRgoxA7Z;lFf#`$Li)}YP zUOp(~$A$>;tL#bI#q9Uz!pgI<=Twamj_~LqvqkG9+awursrw;Co<&|r@~Q_(lP%7b zuGr=1CRzOvfqOp!uT)GOY$U#Nk}{h>AXR0IO9QP4N!gkZnd8eh**}}0Sw*hc@=R*H z%c=8ESENDhwfk028~)NqYiACg5tts$beT_N7X)|gzMwv}?|_^DJTu930|z)Xd{ab7 zWDq38xXA94t5Q2qb!FQ-xXaay{Nt3xgO}}Y0#2nNfG14OSC~n>BAlMT7LSo&!p=ZR z8Jt!0^j*)C)8ST~GE5d}I`ZRiMmdUvo+7Ar-r=2I)HeG8=zmyzkZDh@t%e~jL9h8+@X6wBt zwM*)QUVbB!jf1@G9-=rDc$B1kPm_$(>KhDZ z9xi?I8u*Shh2N;BlH8u#;{uqgy!+*?vd8Y|3jGL_=Uf>|vF$dAkDTA>jN&%ph?Zw9 zHZl#5H`$i`9ixXWE>bP4R-F^p3%tp9zl-#?V?l#|;c`swG7j z$(Le)eF?}P&D5}SF%_)q9HY|R1CmXseL}1S#Xw)9_{V%CJ1nd~?I$pJfbY2+60#~0 z3M$`Gxar9x=BhDN@4VhFp*pJIxTe{!AONS&GSpYQ?O>-(xytgl1!L_Ai9ks_`by(= z2saN_GQ{W+xM&fa0!=M+*28IOMV#@@88iolJx@LaWrFC?zaCqHt&}ij)ScF^FPEMy zvAsE%CqLl{=I}y@1jBRNfIMVss%aRhe`3NTJhe?sVo_fu1VZN}mD^@ zRcZG^y~--Yp(>GPGS2iCcV}u;37HDOQ^LrK_O0X2b`=FN-;LhK59XN3PcEDu&A zn!+b)d0ddleMumSF=%>VH>T8MxbZ(P)4TLpmUX@+Y^h$XTb*wH0805n2}z~iL-uE5 z2ehFWTZRNj`hG^gaupvwQ(JP7mAtf4@$bK~%Bnb)-w0t!_q{M@_p8x}za`jzI{PVP zqt=W@u=jKF-VS2^y_p9nc|LDp8|DQEx6a-NL#6}d;^A$GipH4dBqy6HSHC}BY_B+oA|UpQ)DNMZwc~Z9Kt-DNc~cF zQ)P|cAar?PGT9hepDaVRoDF{DyxUzgT+J1b+;qbV|{2rnESQuPYU&^^Hr)8Pr0Wyzq?f!er*q4Cfh=zlP`> z3S+S_ai+`?fn7P4%~z8AN4Aj1Y$%CvSwP%^XG#8SUL7Wni-u1b%Wl3d12)23bk$|L6DyD77|!@G$Oio8vO7SP8PzmM#_mkx2`emBnYW6{yF`Ik8Ks4 z^(qFIJk=w&b4x6?)_P*ID-VZ5jF{_lC`_rtJ6k0SuwXjX!v>`k+5`p zJsX^YsSod|5{Rfg)sW>X$Mdj#T64p>3Ecym8|PR#7j3z!U?T^vzw|XRf*~gzc~-E& z4IC7Hb=_v6i zUf~SxKw-0odJrH6RUQ6V$7DI($a{sz5$;$@Oz3IF8c`B@^{U5u`txP8RV=N`MeD2} z!VjHZvo?lwDizr>2cn-HSN*>&eui=xvlnr+dzV`_e~g0?y!apg+ZgsHnFC3$%c0-U z*PF>p{9K5l)|r^hg0)*QzW;2GahJbF{z9N@s^!MMT{2T$( z=ZhL)tSf;*_;#ZzJ638*v0gk{3R1(5YGR)UVwfQX>FE@LtZjfHbV7zIf?wr80=RiP zJFxw-0?Mi~?9I_GG=|tL)OVPhB2p<1hTZ+Z%sjb!21g?!wi38G4KxcC->;4 zUx&$FW!$tZ)k>D_Vns_QCe}l*-gi{?%1_5$^Prb>RPRlAZKHsJA@?C(7MAe?UV$?- zNtR!O$!xxMc9I4+sQ);g4hoXW8G*vaXu#Uf%%EYtj88%UVm3i0$x%HeJ)wPL5~|)Z zm(=5(izcVvv{DCm+*3{vJ_Hg6i6yv0j1~My7&Sy2s6{V;so@uqBWE1D@aG4#EyyDk77+Ff z&f=||VaSRTv^&+La`KRcN^VWDn56;v=XyQ3Y!Q78_w=t|JY^ie`=G&l@Wa3Koi|xy zzIx=FYNcWs0AFHSk!nQzhdUlY6Vw-T(Lieom!YX}$Xd|>0yh9Bp9k9G#=6Y8;kM^K zh0PQJ*2lpmIi?q`B_;k@+;0l+b>P*^W__*tdiwAA)uH(V<-+^IlQUR%d7WR6|$+Up)E!bn??vE%Ht0J;1+z3@eh| zSmazV#8N9MgNguTN(mdiFTC{xB0ST-Hy|l6W+`sMjk&=85#3t}OTI)0{;m z{`^sPe6y>DZhSoJqk2r)OjwWjHm`~n!-{_{L4MNe<;F&JT@1`9AKEcL#?_tEPf0u( ztQvt1(lt0kEx<;0T5;2SUSS;7RjO zdQ4m7L9Rx|=NLU{M{8yHvoH=&(sOig8?%SDnH@>Ok$1v;nZzpBAH-7} zHQc+@;`aY*s|zytBUfEt*X4n&_xKw7313Oa+f032K;%w0^KtsPwf&fjN-(TbD4R4`&;U3dDax>jGc3T9*d;T8krK$!=JAu68nS`lG!GU6=ZVCWT=*>ueZ%d$v;T_?vYOa53xBTW*SqGXA6?>BUb(nzNzZ_4>F2B+?O zND3C;i2@a>qfW0_-56)9SY18y+_Vwc_;7G$srR6`{q+$}0pHw|39!w{u%A3L))n?k zGBFT?sUWU$6!<#dR`ga~yYQOCMwr-U|P!PPHQ!!M?ww-?|$gEUVJ3Lt5 z1&d;r;y$s3M8LPigr4n}H|e(?jSlUB`j{AKg1XBh=SinsT=J{d0!nc-)Ka@oJ2y;W zxE(2*Xq(QCDVjU5^r!T3^Zq1IG1VG#Dh`sfK#k6GUX@oXGGJl1>J%+R#DhdlFb`WJ zUo1pxjz9HA3PkVUkSJjiAuMzXwC^t;eo}H+g$ZL9=EoqYm8F(qQ6CJW!PO6)$IlGgRo)e8)h2r88(KTP-4X!3odSLDsdcuvg z-~{Cx5t8Z8c-xMjY#CY2!+-Pt*mJ>tOy=Kgy@ywKn&+JH5oDEhrYMXjwg{DvacI^< zdbb|#Ia1m8Jn-*SRFir}o3Mq)OzkJ-2CBG-mebELml@C1*8~?2x4^<_0ZkS9rS2!y(!MS=u%~ysY~IX>hu5texgAGVjNONZjIj9;5&iHo$~BbI2Lh zgL7^JEZl#*(Sy<=rEt%EQh$ZoY>iXuT6IN$Jzj)ZJUEIA*Mu`#KxizlD7^k6i64bm zPcOMdPY`C+_>6&WLxx&D1)>0&uFq`F-!WtZKjpNV=;rv^ZP}H9lWm0+6nHQ5W{dm! z)Kxq%X`F_Q2u9K4%9HMgXl@+H$UVi%VP$73W5m5ze+P^L?8 zO~E~JLvvP9+zlv*cY0DtONopBW?l8mP2ZU6fsoFp<~EwH*o2e-dU*OAHEx5#wRk@H zHpq!g&dGq7nAZfZ`jb-(Jik`{;l>|e@+ld_9v(fvxpX<|w4E(z--{@>B+UeGItdSE?O>8mh6Ul1)m8tW7OA}|20m@7}HCLeS$Pg-8JYN|;v`eLyL zVaUUr(PgG^yvF3uamnFH$kJ%kqR9DlV#F|KUbh-XMQ0-HuRR3!zEX(E`sYx~KgYd> z3{%pf&8kJ{j5J9v(Rab4zjms2I%AmU?OJe1$VuLQcVw4fy0}8}&{GvDK23yV6ENdV zi75iN9up2Fv4ezn#ips=A4kW~FW@fZCqA&)ha?j!{?ggHL;Ma!jp+p0c6Y?38+5{z zP|lA!sAmhU7-LbrxW6^404t%#8pfBN#YzRG)isKyKL67ILedvQk7?_U<||8xbi3f2 z@iK^B-P!Vw%=SVqA;QeYQHKd@plG59JqsI1%g$xhcr%`SuC#x9_uWpi^ZmiB>N8QR zyL&C0l2HG+J;m=~t`}JH7~Qz`0w#2se>%Gqk+k3Z2`W<^sG;9A-@F^$ zgpxvgC#$$>O-acMQt6=+D38JE5`<#8@GmlFtI1F*-NzTl#gmgkm#sz0GTAl90Ts4e zGu@^f@@9j6J9A@PDe6}zfyu2iS-2t-cH47>*S(Y}SyKDdyqyx0hd9`PmX91zV)b2B zw%%hHqG0Zi<~Q7d$#ofGqKYWkhS2!05DlB-VGR6O*}T?l>JC9`ll z`bbIAHbphR5{3nkm2^KPuZUa}Tds-`70w*_aHhAMH1$T$;;jhT^YLcF$LQ4oZm*C@ z_D?<&EF%}~DW~~v5(B2k3M49E)L7!#&vQn}-j}cv7^@t~XSpUpI0lS;K&xt@R$zmG zdXjNEP14EdpCz(!g39Avov_T8E@{R7ckYwC>l=(oC)1@knXd>ByMtS5k11q!omnqd zYtoEjKq2OzvdaCalbyjh-mjPOb6?kl{J85oQ z2#yI`o(2EI2Z@sWU_%_Ro1_ef-cuB1a;IjGYdGqmZRau^idYRwe76L;nnT~%)9csw zTpwH;*0q2Y=`1&V>A|5xtadAD+aYylERk90Y zZ3yLm zM1^_HeI$auNr79&&{AA)J0Ku&n8nm zZA;A*>X>FS5UFvFgw~K22}9H5f9A*x0h(6hM4<^`B$|Pi8y%7EdA{LBmj>u(s;kuV zG&@#4D_66dQFVt)Eg(6{p}h>deYU#wWb>vzVMknSakDc6@@1i$op-LLKXB8GOeQXL zLZ|$Dah_KoXpQpRW6mQZ8l2g%*#Bx2T=!-bPmNSRSPQF422B-+*S_6*H8QAHs2$uU z98Jkg$=d;S$DLJ7){phoQ( zfNWGW(3RQCd0Vly@kL#4WV?n#P_awnvOi(+@@@g%I$U{}hGKm+oSalN451^I;<>nD zLUiRLg6W_WJ{=jPjuK_*tgalqL}Tpg$o2n1R|)*1edZ{UnmE6c6vchBYvmG+0j7gZ z+Zy@ePisc(n37hGRTL>w+mp4W)aS9fMk-yloh0z5p4sn@baXLM?ymKWJrBv=ZcMDo z3V;tta#R`&&>wZAWkBsa>S%|boK74?&=@AcGq6L*0VG^%V{xwc;!0W z;QBLDk%1jKY2=c9!Y`b-H=kH>ro<>^Z5=w&`S8E`CLM267^Kp>TncW0y-^XY8c`HC zZEcbrFF-JGt)a#Q+{W_Jh1|DeLOfchQHo<_T(;~FiIV|mbGH5C2TByFmxS`gqk|9mI1yn`)cAZOXTK(JXA(SL|9XQg@eQ$s# zL2EXt?GFMn3LSzjS7PMdnlWKhmCtWJW>Cj3w;&lUY`gnY?R0odT^0@)q3@wP_AoLo ziV%*6n(j|5;kWl$u`0(8Vz{@QL&V~D@bT{NqPci#+zQ*j`8Vnu&y(&Rw3~F{`n?!K?{RfZ^G2XEEmd4 zJ`vdYHPQJyCTdYEG^B|o;_=Rdh)rr@S2Dhq1N5>;EeThfwl6y-IVEYPO^)_CwmM~g zK2p8(Z~+RE9(ynQCt~o%C5nhry$=J{lQas_X8#y-{ z$qzE?SPaCS0fk0S=Ja|@o9I+z5HdKvWYMJJF}dH&qPd79#U=1#n>xh0dU{)MZ2)-5 zpU);qX(#>lZpu-SWK0;8_ihmC?4@O2_VIDfk~qwG`Hk}7X+Y}RuW z=hN$X3MY07$WWiUJ4mUdF)P^pJ>aW)uHBeC9a3x1Wrl<7n$5wbZMTij_;H~%)XXs6?q&-H-?c2z1&wkG-6Ln(jbg;C3{PdvT$h|p1V z{z~;gD!sme-kh?m@cn-Lnb|cX#JKj&_RO*DLDh+2-i}PqT5rU1YETEND9|FiP)U8v z&7&Z60M$xJTP4|mE_vB4B56pQiIMC`bcvDGv&V4~D}##HAcE4&UEAj%ALqv!x{rlH zhU11?@C+u>XB27RLM$u)()&~SjB^)S$$K{&@waCy^Nd;4=FbHTxto4zi?_N4JFBnF z-n$M(h`}Ao%4@RE7EP0ftkIl(mbTc!JB1#X+`n2vg()cu2IMB;k^}Wmx|1Lk~Io9}iPR9|jM>|%qy49Q~ zO6zw;RCmrk8&L<&Gx_i67Y>VOM58~DZTHav7aSd=P_ypg>mXBe=y4(H5j$<~x#Z|v*po|-EvIVUrTUAtB)QrKo zglP8JNlwN-ra+fGo<(cMVt|opWj=^a?epp&+}wF&BGdix@~~lIO_bM?eYkMBwfFS6 z(aAh=d1;h2(qb3>0L=Q|Dc)`&?@;e-{RX^V(dGXmCv|SUdNGXc3a6#~2jwl7SsqO7 zH8XpGEG(ZXkhk44ktBW3z9Rg2^RZQ~+4$k>`gnc4^A00UCH!&vddO9ubB#3M>}{x* zs2e)^KgyCWr44GnRy$|hMvF|7?l)Z92^~5shh&j&fMR4$sV3^0mc|##+aZc!?9wQK z1bF#4K$bls5clvw@FnxXruH<67VtT(i7dRy-xbCzPX3Ix_cHvlu&>_%! zYi!ZXWL)pE$>dXLl4nfHJ#;3E_;*p|Zq3$t$Ve=rrcxcmr%6n`T(FPNW)M8y9U@@3 z$Dk=Xjh0?cijF6-9b0C6&7b zX1 zGYf=Fz3RvcEt4uNo0g%E0Dr^_6ca%P;3V3_!^^N0N_gEi(3FW=i7$#TPQJ@rxd@VX zlYr_f_2lL*1P$y6Mvn?XK&n~V5Vb1MN{+*~UMi0|Nf7^%$a!NY+mK)ip4y2Rt~uAZ zy?Miy8RSI!s^+w9h8jnM0?7ljuc?**^X>PEZe~adc>UPA^2%ckEq--X5pQ$_7FC9V zmP{0IsMT#{wyue%mVku4hLGIcL|y(i5@+JwqM?`pylWd} z|BjY!dpe_Yu*>%t7vYSWHT;yN?#x5dFnV)S9kA;5G0(l7w;=It_zdJ-U@#L zp$goTuX>kCnJ${@6yO{dM#7Q?7Z-z8w5|8YQTlOA^i0ejSzOpy3P z2y6<%p9?)NCnI3JDJzggWqRzhWrrrlrkidsP_ez_sIGkWVM5U4(9CyJ+eY1GE*KWg$+%)XplgGa4GcYbd zR}uKN2DeXe9L@&U0kreLW42JHQ*(`Yi4T3$VvgQqo5qCL?y1qG z3&)5yn8(ZL-(A>n-fieVSqFD;95A22t~YU-U3}}YAL0nJ;<31M+Ods)gSdYI@njxT z>XL`Sq`%0|RF{8O9~Lf9`P`%IdCR4O1LaG}szVFSZl(w8|548m3;gN%3;7%B{Mh*)ZmU81^CjB6uT_^xl?j1Op5@40Z{YlYQV!Je^G( zpBK*H39TcAjj_5_8oN7`X*tI!l*td&z>?n&-W^r`#B}D^EB#++C?s_V(ggbVKB2+2hHCU%|)NEjc6!<@A*3# zr2jl-z|mq);p3dM{)TVUC;Z7_DiBYnY00p1&yG_zW^%KpacwfpCf4=KuM{?ZlA zg!w-*d>Y!_zGqx1*$=0GP$kGO2z;yOKJ4x|5(rPo=pJIFi`nSg8HSHk1#B7o zGgS@4n+psu4b2wBPjW%G*gQep0|>@Pjki7*-Cxs<0)_DAAG|Q`G2J3Mw8OAtcSQGU zVDtU>r7{6fFrEH)(kIbU%nbaXmxHzr?n!$YkIa%AQyw<9vy5S2LE)HJPGM%s(rj0< zpJ&;=`*3rJ%;R?K^x?e_p9Mrgb!V?8B@-eCwj?*uD$q2BUD@F-<}|>Owe_xTSOUs1 zi_O}qYo*${P2c|lBU`(=@RWr?P=(mGokIQJHYoE#YqSP-sy8)+hS<)(0GE#Abo5FW0Mzb*2dZjkjnj!z;>Nw-JN z5Hf{)w-tjBq3>$Zezp0vLtTN!3g0AoRyoH~UeG8+1orOt#YdGA(q!;Xjb4*L!_H%S zOJ4vejVOLAk45X31-B1;IOH~q{6a@zQaxV@J&Ukp)N;p;jNh>J{q7yWRf%D3l9Yg~ zZdiri^!p5|Y$c0m1Dd@x3z4EXk0YlvdDI~SSKqFz&;i4HrMgss4xM1>H@o?XekKU` zZ|4oDkyKnsr;C;!==pKFkKO(_$*zOy8BZGkz3JJ7x%lY?J4|_Q(KhY&l}5nSz6VBwBzv65pEW^RLwap zbpF_2#F^>tB_6iSgb1{?Sv&mO%EtH4Dz5w?!Vo&py@;kTTU8;lFqGHezOzxgR83z|wj zaXVk?Gh?OWF!%X`Eo_r+x3VrVWvDT41?*jPwq=N?2TW4ah3LVom9Zf#&~@~-EJc}& ziE@*`o-jafen^d-tfrVFA(75C4lg+Xj86Hde5!A#O+Y*qq+2?s!W?^n=4p!o7ER4g zMc4*8g^IpN@w$U=AFo?wQnXqDiE@>5STxt{Q~WWZMyOv)?X{^jb*Kb6WwfUlMg?+i zi-x;6{u(Og!dO1kq0>>*( zE#`7tsB0K<XGb2(V%QN%{_&_SZJYo7Z$NX_24BXgpGc=^g~`n3lk}i#*vlbejs;1GJbu9Ll&r`+v&T-!3t^?V_{nRV+HCHy{ zd$7M~1V!N$g3%Dq&SJf7vJeO4Gi!8RA8%}aAub1il@$mY-%nITsGG}ThE}C%h`X$6 zTJ~=>(W=LSA&E&5H_=N0IP|eITkqB$`JHiTE(i!zWe7KS4XQ^YoAP=;zb}qZ+0uDD zYPz49Ds8IhoK&ng&k_X{Vs4tZ5%s2=+0rC!CSDW>qv zOQ2c^z3A0(s$O*0v8m?7cQo@krvxIBT*t60I>0wudT%Zb z=y-k&lUW~)Zi6%ff#-$BPGQ&NtM3>b(AbEc$9{7irhN9nFs34%6P&3TXrG^nEg!*N z0h#{>p)KOCH+eKFdb7z%c-_7+pjpb*%OCrO-U&d(Ob2}!NAno;+fU44xU4%ONo6TV z(Q;{1frL|QEfWVEmd1X~|Gxgid#pRm93{-P>)gza?|J zYmg@zO;cwEd^s@$GTK?TM5rc@_av_WHjk&}L38o7t{+k7j_ZUrsTn^EpGqbz*r&`9qjNxFRau!`Xb9mO(THv^ zQw75zP1`@4q|21mWI1rIwn%-%<7=~U{LX19?ne#-Uh00XD>vnAuekAj5J;AFb?6*G zC!_e15(N~sQiQNZ37}ULZW%D~RP!>c<4TK=+hY21ZssRV;V6&?vB<@kABvWqvJ|fX zUj?MP@s2s{K8w0HHG`22ORS>u5i91c2oV`(do?1xuERPUzC6{5dDFJpS0XR*jA0?B zTpC(HWrpfLlP&fxEcO+XW5pHt&MxI6--(#E4U@pe2)AYaIx8c-xg4m1*5qiALiLQkXBqnrDyh%9E<@Y=eDf}WL4D`_uWk>xT2&FRF}hwNY<*hI6~C# zorhEj&0wkdBgE}iv$4Bixeg&%$Ca8j?<I{Uj}tajpk)dpp)A#v7-;!pDW(&I5fqd~ zPU>E*(fVHjHouXEl9>07o7}H2z#e}&a4-_XQj=d7*|h_yRV3-@5_hpoh3l^1_yteVB(n9%ewEBOmgdq0zRZW|BV*tGhiC*1pGG z%G<+J#G{V)eNj83fBD8Da&pR&old><0sVY|46E{3&zaRa*a9sK_E>*;4q{Ugcuhv1 ztD4{%6vu*QW}9s1sn$!gMx~vr$;)|Pk!${XNwiD%x27V3JoV4{EI3*7UM{ue22VdO z>l~y3ZK|L4X14I%9UB~4VGUUamAw83^%Z5~*%kLLZ?kHG-*zdE(60^I1tZ4bo7Kmu z>07FC*Nmo4v>vUYG3FFj*kfCOtwPbj8#?A6LSFIR z54vHHxxpoM7a7K)gY9M>&s}Dl?eaczi9%?L4=H%hOV)f?8i^V|^39{&hHsX7)(tc; z0{=#LgSNz(mDE~ znf-8W5j4OqvEbETpJv(ka)3 zI!o3xeX~xbyP}_^swt=7qZ(%zB&TJ9L}xIVq`Hh-*$6V&b3{9+VCyfr7F_I*MWw-hieH29a* zEup6e?fBGePpekCBRnQ^uwqWElHZ6t3Ij}(ITUHeybg7}k%W_f*|VVKG%f|DX!Dm| zAC_#JmX?E4xqslzj7i`>#-#pT4u&9(Y4?q1!@6b2&ehJSr}mL@g5q&FJ+x=`Y(LR* zk%lxRO|M(P>$65gk7Srmz+Qa?x=mt-{;L3v+kPp4g3zGoxa@3POf1}A)qU(tY+qio z|Df-`Myxzc|AE%0p9_H^{D(Bp&Yr&a35t;}2m^tX-eLE3^OQFP1}+CX6FVyj2Rj=R z3)`0+?F)SWHR9lA`ceeHYX49;|LbvM*3s1?`JZR}xBc%558|u+k2gK>9-JEBA#mQ|q_EMw#fB6HLgYX2E}f+xL3l{xUE1EnW^=yyvxA_#-@< zp8@RRs{1lU3hlJfV3iIoqkGOm0qg{)ZysA3ol~0VUs2QN^RhMlEyucIuVd`T2%{Nh zBIJ!bVs7rGfCWI~@%1Zfy6tzz_1*37?a;Fq8QlR}43j6bQ6x>!r$ovGPohmqIiD6= z$J5QNB-+-lFyQ;VzeT6_iD&Tk{wKyMNZ{omqIIs_>XiFY(e2a3(WCQ!qNWNXMKb?i z)U?`*zBU&VHxtE$kK{j5(^*G_nEymglYy_S>AAZtgM%R7Co1>*z{Yh?6dKjCDZ?@w ztEr+K{j!%4rL3Xf6fVyvQ*MExnSt{<>T$9aZ4#K)pU_YJ{L<LkP6RkpI0i=B@Ws#h_jgyfooxg=kF15yQnfeYz3q&~S)n`P&7O+5^ zJ#w$x&1Wx&E|)qYIc62gc3`5<8~Q;UPKc<}kY(Pzit3R|W&cw$j@CG62Pz(W6QU(SM5zokm5+1O*SAHl0umh;AdsG3b3w z66!@sOLKi6(5q1eZ{hv#{aIm2;vFnzN(-c0k3m?~l(>1~xFrx|@`1+ja{(pM3$chE z;Ae$Wz9hvw_UBNXudHyt0IN(e?3_3fFLF?`q9~|(X7yQ-ZVBRVW0G9>EMvAiSFn>V z&6U#8jihHk+1MDZ8UTn)ikzN#(N|R)BKYn>@uf{EMBP6Q@G!>MBXRdMgfc9zTYfB& z#qS44I31lD)Gnmy=XzBW8Eyoz`2uunSut}8?39Hy=l8m6*Rd*Tz?G<0h_X}X$Upk; z4wpO+EY-<2STQ;5DDJar)ja4qv(@c`%%!pV_c?YG09g>FYh2Ks}3CAf7zlYBirhA5W7-or# zA0ag#GVy6~n>!|G0|VFP>#F$q@R%+?S2quL6XOdI80USKI<|>a39si;9#>Mw+8q6C z3pE(V3k2y(57e3p+i2|Jxujoh3H8CVGuP6gD@7~^xpB?sY?9PCNdrGQ#>~cMA~(0n z;S5;Xi;L5>RG0gwxmo^z*D~^2=nSW)x$L>(=ZfYf!zg6^1ZKk`!Vq*ea|bl^`YE!< zbV^N7!#I*NL_k-s)&60fO>F2V+W! zhKNYZnyY`HKXQT%(JyI4e9%H%Liy}%8%u?P7l;tvUorneW^P-4J_T$QUA67OtJ2hesJ!0v~t>Q;#L!W1Yv79S!V zxk<*U$mm@V<_dg@%`1EvFQ`S$n3RLy7&h>6NXw<^*Vk%9+6r6?P&l!kPa-#9ACSa0 zq$qk=W)tLYbFYvF-pbel7AXHkV7lfgL@z`;Zc4dT`OLYGg>w`P+4t%sjN9%u?z#)5 zRBFaA0^3tRR4nl#**rkM0-Y*l@~sdS9qtofC+#2>)2w_VnO7?DY`Uh3q^&{*g{&Mx z-kwLwcjj7yYE4VC2qw9&9on)-E`q(NXtNylU)^KSM#-uBqNgU(ag2w_#YO&=$9+l? zy1c?oEaWS^-#-%=OP#x5g*nWTRjIX@el%kPMj)ds2Uf>~IJqE7$PbvIe4IFrM{KVI zi)76=G2Ep=iNng^7XqjT&^?wW)QA?Kc3^IvLh@ki$X zOI3^#_b>d&3;%V~-RCuD?Bz2M{EoMXrKev0>ZCcJ+=TFo$#j^&e1=mh)hj3Ka%eOO z*x*3iGK#r!+&;DX@{H)PR%D!#S(o-uL(RFAj>d*7gXpzda4cDYdGCF#_sqQ51d>1z za@y|~WPPV{_gDAfaH&Ogl zTo1^<%}nVT+s#Zvl{Z;^T7>}DE!~21r8~B-6{`bx4{c=%CcWKJs-xFq=9bTS%f9Bk z`9o~0E#aV66#_=3)Qj$w$OiK~Ubj*GjZn*Q77u9c+p;xfR`<-l)Bc(vw+ zi#$y}*^q6^N$$6_ZB;@KEI);6LyMmLEHn4*q;i#?VUR?nrp&jRkm2pfi)K8qYk;W^gOV6fkAL3-uGis(SDVHr7RfoU@n_Cj&KW=?N&NH3RkSyAP-HUCMjuGx?OzLN$l_w0I=i*O)@&J)pX={XN)ENuDz>G2s}cUb;W8x1ArH zX#j;~VwrwJJ9!cRZpPZwIZrlufhH7|>Hm$meZq8KGw0z~ItE~0U!D0D9O1X&CEDsa zZ>`ByZSMY#XZ0C(L~j={L)G?wu)UQ zhe^NDg}z9dcMLShL4^v9VR(ac;rOm<+=sM-yX_RUU(pTHbnsu$RJ;~7zHTR=(hHI+ z8;&$z_p&fTVrJvWoBW)u^RA&a z`^Q$HzILbTquNGagRnnHpONQ-PV%s2?XY7}_L*5a^#wqPNU6wWYrEwFWOf!(d76P< zPJDIna1r`yw?v)eYzjJH3NpW}4=KRDm16$cx$LvJ^yozn#{0A)&|NfIttysxdexw)l$J9?px5iv6*8>2Mcz)ch|N%m$b-% zh1HvsKH3vgy&CNHN`gSHSI`a^yO%~S)m_8=D(hGME;>tGtI@RkmYodZ@5>hUDtC+0 zxqeMBtk;Sa=W9WBWS7g@zjL-nTha@*rk4XzVc~Hdzl&LZ$JKglc^HsEbI7y6Dcx3hf~+6YX0F?lkFjhF@`i39ftL#&?B%ciEL)AEQ*$J}RLEO8x*C zxt~!6^xFTz99w{2$Bx@K^FYJiSfnCq>JKl zNSUKRG)15k4+83qyczj ztwQOGFd+kFBjUvM`#sw-qxzc-Z@GYE^0+1pSbPI)IJR-#G(X(PC`7FKXLsN5VBk>; z+jUW!5$jC=F{viyGCnTzy`$Z?@vKg1Uks=ib)A}@iUU)XK4fZpE7*K0VxTvz>Y8^f zt^)3=_3IgQVrI7x3xviK30!vGBrZIuurfRK=t-tt+HLl!3mCME=Clz{HgkZ>f=N(| zxyv^~kz3(M3hgZ~0#D3m|2v^&@={!6itKpmM|c!}98OB~yP~L^?vtAb@iN?W3mtB% zHk~h^4ZvP9oMy+x)$CcViH9r`GOvKxp$&0sg(){qB;GM)?$AP$YwqIS{rH&RhjaGQ@4hUh+7Fq?EAtodxLll`_2qD;m2RZ?LSxY}i4}2`{1?~j-E(Mv zIYZ$rSNWv@lLNM{6(pRYC%GSq?7ycj=;gMj(s93k9zY}x55tthhztOTDL?rIjU}DU zGL(jTWj&<-)F)IKQ#G`QUsBi5eHE9;kHh@d6zu|8^t(`~Dvfp>TqqDx?vQ9GvZF)l z{HcPr(YUr~LLAbod}D61q1XV!H=Foa4b4~4@d`5I4DaaF@QgJRP*u;a;-eZ(^fL>g zqUc&P^KCRmbmek|P2U5^3=rI@?J&kDUMEk@sXh3s`OMKFJRH|Urb8lPVJ3<{iESFV zHMQq#<#eusknVK^&elrh30$;zIQSFFH8SpQz$Zkh@cO+cTKhx7cBKcin=5o1jm&w` zq`8#&SPGRavN`5lphKryMe2qZq}ZCh(>8C-{f^6SDlv8Xg8u{MUT_FyHFKI{D3B8A z;o6g#L@jC8svccEr^+boY*@cDPzhzmM!Fy38S5wUxa!)OP0aG!z7E{!6tmk4_=Fih z1s<_g;d<;*2MfSbwL{{1{>Ev75gM;{$?Xm4&JO=IBR1_F`13GryAX2i#dd2fN9cv7a~$C?m)j!3vYh?Ab+nO{p!!IHIS{I+ zAPeiE=zsESDxtXL>Y^Yk{Tkss=~JQ>a(3(S{X|v}7|n&wlN-z!f9?Hg#_^S^tfkBj z;M0sq7`MWI@^78y68ZIBMp`asx{MbH`7XWuc&NcU3D7k)c~>x5v3G1LMo>OMR=rJu zX-->dtm%F>*);MV#S%9x6^}(E+iG|(RxJMOX|b)@SDQYWOX+O-ob-rdH{bc>Nyl@V}}QcgUBpbSVmj2XM0fpCtER0vnD8JZaaEi^4FkjngEm644#^ zix{)%r=rZZSnS_)|B25cD_snN=|@YqB#$E;?L6wsM5V}P8feBqRXM~62=G1PyS@7Z z*2HO#5r~vi%uK?eKTDERy0U?j;9ctmXe`dD>QybhX z!Z9VX*=+4T-mg*=xNp=+a%GtsvZc`+>0?vWIuGeT69PYOs z9`$T@KeL0#eY~v@C!d3$2@4P+Dd!*Eut*>4rlo1BVO3UO66TuQq``~ae0Zv+EJsaq zk*aa7N%1H30#NVKVKV1Q+&Ko>D>j9GcBf0p=RJG!pZ6n10dj0JF}PWlafPRs`$t9k z0tWhjKrZE&w9esw@#yPw#@tIboG||k)%Od=bZ89+Orlg`(x+bbtMm!Dp45rObb3wH zI;`HUoNMJ`HVt0=tsNNW6(ss=?=-ls)=9cOGA+Y80Z$(nP38_w>zK)C4NjMe(Hgnx zaf4TJ>)KJ}QPfcS=w>XJIvPls8Hfmrp6-e-3INUCU67zzBVVU@DK5`*pyIeIH+IPbstdT^zne67Qde4>O ztc0Hzz_OrPMG^N7^-Z>(0E?ty5Ep-eoRB;wWuKOWZA6lf-VklXI6I3_qOn_M6rddlCq~0 z*Uhs(bl78<3S_NMxvJz{7Vw)}X}unb1WO>_1Bpeu?CJg+iC2PDk@BD=O?&A6!(nBg>u)-;(%=(EC*D_oVa{(_O_(PQTZRLuCU z03k&^%@V%!6Lu8cScXX;G5(dv9sBF1UV3&<|h6rO4(=>UGw( z@q%y+GVuW{4+&5uGz66tW1I=Kr5iBNnUXJgxkp-90#q~toD)YAQ&MkfdfvEROAJM4 zSd@_z%H4=Q(pIICSK>LbRQ>m_mmM7X7(=Cc`Oim;m{ia6%WaTfz^+4j zMvCaq4(jSA8!rgNWm|sl$MLZZkgLK=n!pjo;|rMimDL<^VDOSQLNM7oOwoH}_;A&$ z7}k*JF_Id3K-}I{^R}BhfHRlzWpwr`pD((K;5?vJ2`R@JMJ*i`b}_ZF=2fN_y3zf8 zJv+1a5t>jKwT=J`e0qejYM;~w*n9indCPrg$KAQkbpo(p5g{Ze??tBI#WIo{ViKCO@1JODG^$L9C|qyqnW zcAMQ8h48@sg%tg}^YhXc^67$wD~W)i)N;PL>S!G&TT~xOc4q!#aUHn_kcAwLI7dnX zi9C#fXV|>aTA)&lHb+~X>jZqXAe9jf;lnyq84BF{BpmF~^n?w_zb@sarJI$8B9 z9`_eAtrThRFPZeNrfAXuAX+tWg#jVKsN;~x0yzZGFpYKYVCA;+eS4IdiL}%x)bSiG zR25-L9x2$VoAc$9o+rY(dI%svSG)2khh#c|!?ZL+Y90vZ;K@)75@w)+3H2}UH=ok& zwAJNDnFGgVCwIG`<SJx&U^U{o`!-p@;$g!6)b57Nb-OLZI~6Rdkhgi zO`^nwNpmqJ-GEmcJT|Vdr6?(bBhP=SmzZg{(M^_~)A5W-wW_oKocBZyrF$A5z=_@) z797*#uZTsLu3HzZbiy|WLR7Ou2$RtX6k5xR(+J^cvW-}v!agddRO%}dCa9*U3jisf z^0-O6aaky@hK-*gYS>4jRdXNbu9YO0hMr5 zU|8Qo{@gYzz1(kbBLg>qDoS1jGFci+N?srdm8j;TmAGU>J&!+*7Cu$H3c|QAEA$k@ z@r3@}>;)BZJUP##IUHHQ{Rl(r4YzfDQV{Ql(tha$4Pv(eLOKondb9X-GvNmbg}OqJ zxu5m~p|$?(8@WMic83JoqD=EcudRN7ZKw>1#*+PhPJE9EPI_^DuNz zY`AHQ>*7`bc}{}hDNpR-L0VfH&coEW?17n4xQ8)3-Re7hiW%efzde382&iiy2T{(S zkPNgWIAfXjFgpq+`BzTDqVve-;s_B8vjlr1bhee~2aM5$0}jOmhf{Z~Xg_v`HBy{$ zgG$Nev{msac!VFHkeBHdKdJ_3g(YEB?RXM@D)%*T3@P#qqD8sPNf1b_I9Znjc4Wx= zCkHj8*DRmF91#n)cv0i&q74C?6uL}Oo7SnM9BVS^)CnUQy8!7fe3pi#sIG4_!SUi=(Y%&q;) z9;;K}Pg7?CLF6Rp{pCrRg*8KFeh1r5@^}E6b9SEp9`zAJnI~^y^V%`+;$0^tAd{r2 zu&R#;E#IWsbTs8E{GYF71sK{A9oiC~{6s%sAn(%;ANJbeh;9qByt);`Ck-Z>5=jo5 zMWpKE{9-WW1{>C-&DyS&3oo;s7Ik?P53v!=cdn8d%%Ep0S0rxC1zI@4j={T?KvK|9n^+Rs}C>#)T zOjntDoF#5Q^SP*;srQ%61~M;HU?O*Y7Y`mB<=c9wA}5cxv>xSnWPEZs-Y(W?7*bu6 z-AX{bXwe+e5yHN!|I00}nOvB>39>73nE5?GUfiar^@KUIdKx}u(S|MkM-AG#!Zg;u z)3vb$|4*Y)?W+sNbH#%8P*ekjAC#q}qF<)|vZ$MG}9lP>8h6V-l zD)dFnaWc2LtaZbA2KmUZ02fGeXuWd!D}k~*o`=6jc#M6H$uiW((3*;~#&N%})PEtM zc~m(xN4PZxEp+xXMfmLp<8$d<#j2nj5opD3Davi7zq6p;7~flzDV~i90P3BDvIFP& z!6A5%(=+d zqs4BL2P4z#lwPloS@UK;G?_dpJ{U6+upMoPxd@8%6w%`i<~-xHyu5JumG!>YjzuZa zU)RK*W^!*$^F4Tz!ABdj1466Als`oD1b5OsJ1qn`BhjJRP!V8One14@BZ}= z4Q1eePe92NEjuvg-PyoYVicjO2pQK#7=_Q0DI!y(>$SD4{A!id=G>gk{22XBm_W-a z`tV})hZjm^SZ0;)NW<_A1}?J2_Vnrv)Av-S8cH#}1eyMpnY*q)65xMpLt0~)gCS6b zD{_^S#MM>pJN1mTDc`Cv>R%Jp&XMhkbXC5hRx#;=y%-Z(7ZqHvLK9)r*}W6D zNF+$+hVR#hEgfW-)Rhj){MoCzXxmbQ1lWCErblg?0{s^l|(J zdnRyj5`s){AUbl~?zw|!;D3=GB1l-%=;C)AOC6t)ofpHEb};G^!;XsCb|xr=A+WJ1 z)a80xp-#ml6FMlOk;2M1V&6=>w^p%*~S zq3h>3xg&r$LX@sRMAqVP2ycm!JI@sAigg$?Q7V&W5rOj%lt_Tv&{4^_MX3 zGzi~d$Ktt~XN+U2QPe(CeltPpZk_sBA!UD%jg?TdukLAegr9sQY^i+1$?cxL>=X8* zEGp7v{BErs3OK!F(FQ|Dg}!3&Y;TRwPjrL7v1>6(eeL-5-M+8y?AyK3ZR|*zvM*UT zb?Q6CEb#XNUU<&RgkejgL7DDV76g8#`zCp>CMmy7%4GG}|Lh#>PXlWV!`N$ko~!a& zXHHKy>CJkvJE(%Xp*j{k2Z51$>sAn@sfsg$UK8clZ_StYgSyd3Vt z5ttP{HgVpt)oFZ*OpXgfylG&jb;sJQ$VDAV_*A55ES_j)dSY+PJcE>prhr78$14b{ zDT%2ixfODWVriOV;3O*uZN-d;sdS9Tt$|>I{qy)#dyEsOD)EIKTc8!PYVT=KHtHa~f2>-0ABNPd1nQ zfm2V&dMPMEQT=!#p@l3)4Strd3Ko_Lv3;&b4S@U>n2IltGV!qO(FjwdjPPc5pEHw8 zDaJrKZQuhvVh!)$`6B|4-Dusvu3KGvu8eIZk5Dlo&c~9-quBhukm&AFM4h+)*ZVzm zf+PjxXPbWEhA)&OjR9Rl(JslK=#2!$aAq`2xH}u@aAe)j38HY`j}Mo)r7Vv2KBr=h z9$+=(Zh)G)`q{inprw~Q<;LPH{K-GsZPt^X;4TSW4e?+8l0;ThOD_^CO8=m-GR(ho z?-)#If#GMQ{I|doIxAyG`;V+vq_THhMI$|u9JGsvNsO@HKj4v+8Opv_ysti%A^5to z4t7J>tSx^c@yUhJ_IT`H?ze62-xp_2>I1M|Bl?z1bY7RAP!ZTCR6$K?awjixahm^H zuPSpo^Aq4ZKF&q981kWg+P`JnJQ-usKr5HIVh^sGtU9D0g^xwzDd!psE*)?kmkD** z9FufmfyuL<3wjI~R#(&64)UV}V|Q0kG4@{wA_n>wXX!=!BV1^}~dt0pR{P&Y&B={iY#jmGFWG08{K zy&L__30vh8JFD}}diY-X*izrk2^J8e%jpxA24$!rs4SLgINhY(4u-(yd((I-<}da2 zc)9fQ&*)Qp9w+eT)x%_hbhnUJ7X{4Z^bcrPj(FtR{xMIu5a|H?4Ho6z&*PN5M?Pd? zuH9vhWFm20r3f=2*Q~3@z zHlRbikdKC!vn7WPU;`1Zuj}s2KdASr>AyX&U@^)Qf3$AWSnI;%Z<8b zQqJC=en^p@S*Y*tpwQz2blcV9DARC%#Bfs{jE)A5Rk@ClZVV~u*kb1#)~6ms8`sdg z9-tSiVOfvoyZX<)&uyDO`YDablvg2xJ+!{`CY=(tnOQ?P;OF!F6VQoY|}%RdA1Oc^7U)nzzlJ# z?_&+;a=WX)Mk-y%VA4g#pv}4G?xe`y-#LL-@ZV&vuvkBu|9R5d7wpJ`p;S4w4{D!c zC>_T7R9zpkjJPR62S}STT&MHTs&?gUNc?2}nP8y9>tZyF`I7&lUsxclg_E31;q!ts`rw*V1atToK$63o7mW+3_RJ zFHM>YtTPZvAQ%&yN?YhW#Kd(Q!ny0+0V{82`9%2qBo*RE@f%%8h!<1}H|fKFwmOB2 zukJ=qQM@rznk26eLjR^G*Dd(|M|Av;6U`;{%ZbL$$@3pP z+W&H*{qG#K#PmrBw4rYA8bt7OGjM)qQ}5KSns<>YQdV45u!tr*${Rpg(o$dgSyLd@S{gS!Mk9&G7${S%U3jw9JShh;jzT%CMmAa%8BH-=$ zz8bmO`rXd`b>Likr|;pUlej0!@&DoKouVTP+pgW%wr$(CZQHghwrzIDPRF)wcWfJ- z?7ScTz5jhyHAc;`))A`K}aoeKqFXD?8# zW|4PlXG)h|V*iH}#*QhN8sns5$H}8+3}8y`Z!7(HdQ6G-KI+)>%^`!=d>DcfQ%fLY1W0dC z?*z5Lef4eM7%;qDcBs)9g}<~qO<3MW&>$pz7yYOYF$|3b8cv?F*dIJcUdecR=P_KC zYJ;{r(iX42;xdRJyaAYVE9uPIlC97{P0R%?PxWJO! z#7+|WoB3v7J?XI^vmg#3{Y(7RlMT}#yRtG!^<+*C@P3;_Gr)WUM2^7{i59JX!mN#h zvV`apEhRC!Y`|{2C+9|F@M|(4Ei5L_JZ&C6ar6e_PmvUC$#$~F6Ma@K=wpOQRIejrV|X1wUxOW7dOMwTR?T2h4->-y-YZ2hB8r zZjvR0Iki3ot-j8T?u=z;MC$Ee?ZyvmQys7O#1q$t0hX07Ljjv3^So-5|2()3I6IhG zT%!>p@WTtLpc;apTo}_xR^38N@s^s_hv~;CiAlU=1UkhgQTm{8^DO6J@mz_BX@CU1 zky5CJ$lgxB5N*9N08F49Y8L#1gIr%ouOTxW!aPPBNCTm=gC-w!!mG*7$96nPga_c; zPcR736KKKOmcEJn;GBuPvh1nzcbzu0bF)Ta!Ytw#CsSz)9O3mT%zKv|(K1sg#0kKO z>2Yq>EQUsqTGo{q*1=VH#==UWyab$u=Zw99m7m@2Ck*zL%~6pB&-Gj`CqxSV-okvh`?+01X^#Tr6dXG{xl0F(zKW{L(vh3H<*@k1 zPRXrl>m-m~p6VW({~X4@Y^n?_Lqy{BFc5Dwt!HR90GhE?Ihy3Q70K=@a^WqE`dk@v zhy(s%@cMMEm@k#4>JwL=FVsd&7<(LqKR88F8%+3cZeRW2CDv$iI;Yveo{xbL{Gc9B zKM@o%glI!|3*Yu4a{~U~y3K=)CEC&@^6-flDzj0!Usdo(Sj0H%$@Et6r`Ofgg?&R$7X9LB>xy4_mi61D}4xhN^ zC+#(VWZ=5MO1v3zP@WcXm#FFsA=x`Tz^aN20r}b40n4o(R2QpHskLcR2=0`YybvsIu3t$%YpLH}07c#|F;IL2Yjyq}pNx$8{yT zfJ>W~`E5Ts#4_SPIllEcI7@{k)tmZH^&x_Iix$HEp0&kTm{&fMX3OP=)Zm&VQ}&K~hm>ukzD`-&mwL*FK6xtMDMuq<54 znk{PjfmOpN*&WRKUC9-}dcifeUj6 z@aM`FYrxPh0`sOlY6&n#?yYO^B8~T&G8Ig?Q z7pf(Mi~%*+E@DjNqSZ63kJ&qG)D+tu8tkP|$u+*!Y*_$HGBLBa6EegJm0?i_IJ~$; z%|?TP6|pQhsQ^nN;fF2- z*QlA%=J7=UA8hH}z-iJEh7g;#tOcK8$vFS~ID2i+8t-#$8Y4?r!W85joqG7o$4?Fk zmcv!{N|;;5+rXUZ>Ukn4BeHq{z}xf(0xmzKx?tx&650ClZZ$LwQm$rGt6tU8Icj4n z)aqyM2Vc*j@i?3OqhvI1bIfRd?wwbF{| zW91*}H#o~7_%UvT6W+hA;lSGB2*LBwqn>O|%``a8BedvD3oQ+8=S>H2j2PMqU|nk?vF`RsetVk>ubvU zi|9g7C>h*l2hXL1yyFWFK>Uti4v-@b>GDoo@;m*(5si(9?*LYQt*mAkTbmIU2=OK< zmgbq8yklSd*Bw<=3cf=kMuUqx%4Gu0#@F%qIw*IZ*Ux(g7e%CfmvnYs)gkh zBdtot=IX;x+smvue`tFar&`cWLmsruk{X?bXldP9y6kxa&z}HofT3|a^>od0Prx2C ziTB#?dnrUjI>iIAx5FaTM(v{11R{@+VKpj!X((SPh|fBIYzTFcJyf-sELo>T_N6gF zs(@1fY*Dw^{$s2tX(U_<94wk9kXnEMkUoyV>CXME75|g`gLD+pNQt`-ubf45{u`7@ zlU!Ugfuv)|ffzOiz@hqSo?T6q4w((#iwmqdMB-vg;uj>0ymU~VYJV2dI2O2a&SVb} z;R}-l;_}Advt^K+h~bGxos&U-mA_JP=#KIFX!ezz+bd^{V4LM~W@}8&k@AoiBi%fh zxBJDQ<}~yr3OnePF*KJ;6BG`#)R7Uc!bn5MHUuq4vUg070ID%TNW=$oueQjhE$$-` zzRSxl|H2-G)Y7+eV=tR;*znm5MMWM?7ogFiy+km>-yu_S%WG-d&_I!@L0LT2x1pC= zg+OVk&#@+^0nNB}WstY7C@j+Ib*_DUvpskdWP2b!j+W9NDwGRgnjTVwq~}9R2ASSo=NG?vHWm9LC`@V3u>~{p{&9^5 zqG8GIHvg=OU9F zdzP8gBhS`Gv8>3!+g^veQcipW-gwkT{9uz;-@%^|kTg{>ehxtEuyL*wQe-l@()-tm zYrAyqf&N&J*30cwE)N>Q=;^_ti@WJg2%N0QUCYDBI0=uPd5(;$<0Yf^CD7fT2mMUW;~rWqGLEKz!tanZ`AY4;bi}~Z z-z*XskCXxk?OQ6`1lAk`vL=E3XwmQ3(5yD^e-+Xc#e6uNo)5MYxelBJKpIsbr z@9$Vx%M_4s4V`E|dPu2$O7#<)P_`(?oy^+#6!!TEppH4HI`{=lF2;()O)K!p0)|hr z_+;zTJB3(NQmF#LW~D}RKLYntNA_bgkDVzP$0Kc=CGeyQasqX8k?oUHkzXDcs%+bL zqMuS5+I_kC_B!F0zIX{PnIuX*Hf&^VTILB>V;3@5DcNb0X6M7k>X)yf=H1UCxWnH5 z)(y2sZsEqb%ODvmo=v)H62p{71BS_4FCN^K=Oi%@(h$;SQ64ztQJ9g}<8gg}+|sLO zU6EhzA5o-T8Pn`cI@n@0d#4~!k8+Gz4EgCSspUudLn$A}IaQ(E^)SFvQt9C-Wd62N zVE#O0gr@*Kb47{y-9JPD-4C{xj4j+PsATR{=KDM1?csQ#$RBK9s&V295EZy)yh5@# z2WyhFZf40tu9|$-zBa!(B4o&^mJXT7##Qr3^* z=?#yue6l%r*KXexC7sz0`uk>U6Ej1dkHk+FyB0B&6nzrc+ zesGH2)_XdF>xbRBJGv^rdzO)@8gRHywy9q}y=6i;zO+sTJD(L7TF|^TrRybPP7ISV z(e*cL)TW$OYlHN)|b{OS>sK)st<@vX`bHFn++BE3&Y^k6i(={w52nh~Omc02R zhoZt`Ma3z^hKIetY~^&BJu*1%&eJ%vs{*9uG*EQDb3=q@9^(A*dO;Q^3+b&h93{9f4=(0c;cF`%g64Yj^|bL5SwToO~1NQ_6z0mG8ERTjrf2 ztb9leDAe3$ROT;O=(3HT{|at}WI+&Pa&R+nvJD+pY26<=KoSTGW@78bAB>r zT{h5|7~CvB7=8xspSxsXVP)WECF15{VByYa!1*EQbN+W5!2ev8ne)H&yh1;Eo>~Yh z04oO<>;FA0YSz_u+>}BI_*q-*YfZ!8m==&`fB@yn8aKgkH8wFKO!ihXTR*O*!$!#i zjrn(@t3F+lb6J`_0SCgBK2=#;dr);=dA$5oRC}#)!Si;UQ+3f{P(#SkI^J28^KbD+ zlhZJtL$kN`x@xFLDw$Ntqn3U}S64iX&3nYvOUS>`!GZ6_+I@c=U33nK2mxE0|75Sw{ z$+v2qPbpVO3n1WNG~D{PJs2q2@rOZ8C!X(pcT%?5YmIK%B;#+7#w(#I?C0^rqH$9f z9p)&hU-|Rv$@ZZ^=xA>iMg>jva(``XQkBLiwZ+0H-K@&qEza9#WWxPDvUMrF#EsPf zs@|UxbN&?;TDQv3L6mBX79@h(X-bqXKRGbuf zTgrR$uo*n`G7-jO$fa5t0xRUNL6bf_3@nVOc`!#z+;bkv6TBr#pI&n3{5H9I9T57b zs4>ihEVTLQwL=MgkywPbOy({s$gv-9zH!%E4q*2=stsYCO*W5kK=kI5(wz^zNO?&@)6X;rm!X*f#0amXIZE$ z3P7Zb`OUflKx8t{R<91uFI~Ef%n~o1G2{400(`*B(hjct=0Jvz%xj3WdJKfZlr9ZC zYP3p|kdsh9p-td1GKx`b78gS>7AP2UeTG9~NI)b+yO$2W#wl(Becy79`OfDRDtUTk zfYdo8$cVZ;R+uoDn7E?YuD{P3=`!-VyCK19jii8mY1oUzA2Tq*mfIUlvPtKVm>S~B zc~HLUT>;_n(>C7&o(Lc7zPysTirmyC%(-H-3KNdHLzIaDI!12uu9r!rD~bs`(ZNzS zX+Yz~yo7Vi=E>$vl2k8(!a$wwz$-fl3U-C;*KNulz^alPGy_)sUq&6uWE-s3Kh~}ZoLOR)^fK(G@xW+NDWc^? zVzFWN^nH#r?NavwQ}8kAXl4eGF#QZ)dc^)&Lm@=P+q~1>5Izv|XXjoC1~4!%oK|R- zPc`Ha3^pxA3%!z$c!BFv(sQ2>K6u#std8Qx_anj}ei{AZf^av%c%3se%i%UIS^(?8 zLf54N$gU6&=59P9i>Z!N=)mu%TvI-D;z=q&o=`_54fYb#{+F8XNO&(ZqW+RJT za2GCiI_S1KToT9ka*H~D9^`CM;{o!rw>`mxYE_0&t(3`)ZLviyPY-1b_^PIMu`*?71d3G8;nsvZ`X8-E_)e(u(ERUmjyQ&fKd)NHLs zuG{Qg5k~z`VagN3^X#RJX$d2fHTWGnrz(;iGxy`(^$*wj5P3USI&fj~^ z4|<8$12``Itl%qhOF*e!2`~bChK(DdLf5S>E>!ADIt>Y*T-6Zi^5hjz>DW8;%|A<0zMm)+8mc)yXBzD zzRQtzt{-+M4Uz;?p8mvX`hl_;$ca~beLA#Vke*9&mYLbzIV1bk4sdss^3A6_HUr{T z!r-6FcvthrQkGNcPj%6BhqCC4$d;gZB8y;PpqTKYx=gm+(yjV+tvrV|5iIW=w~(9Z zd;3R?(kEL(uC@cBptb)rUo@frfG89l^?JW*8xs#dXbwK9P01k} zwX{skO6i|s+`75?co!0rcCb@3+R`}H(7d%o=*7adm12Kkmayl(s=z@v+O<0`;x%Wr zbQ^$eM=6A!oOaE!I6rH0Vyx1%BKL4?>=Ihn2M3q)&Z~3 zPc{fc)OM|9+Mr5D?X7cI!n~58zFjB|dJWt!ljm~f<4zYDAR zC+#xJf%B-%&~oTOM*8ze%W~oh*=jzUk8%e^%i88hXMi&@RmWa}8<|vAI?5xaDQ^vv zbY!QM>B&%5&XM+g>dDSto1qJ9q{Ie$I=e(@4oI+H@!&!EPt^Xocpj}pMooN(U`~C; zqoB#`(nc}^`)C4e7;a?M$QTH+Lr@*EEX_jRGT?eI)M13@ZkD!k%+VAWCCV6}d`xOfSG2#d8U{jh+{Fuzp~4>g{`BH+5+_|_(Cu{b z%$%xzgU$%b)JtPgmmK|7walV|fB!;=Uq^k=PH@6us+daeRhui_DjECEvqe`X7te#GM~BgyN7ti?D%i=ap9TJ|+Ww7V^V z-^|ALgStUisL0W_12l~N|MKyc!8lI_^Pz(p1R*&&{xGr-J#g%js!YhP|L`_xdCp+V zI0N!|e?IG5>lCpbmf0e!5jLKJS=%4;ZdP;pCgc}mM(zl^;bUkeP)=hABf1_h{R9k( zzq2(`^|4$n1aUcA84rbODQMM~rei!zs4|=*~4!bB3>#)1{#j#x2`&13U2M|qe- zlld@H=r_C->`*0mop(t)0Xww_(h)WV$bbMG(ku`1_H_3>lg(Da&o6;Y_RtaU*utUo zuK?M&c*Ih~E_hJ<(aK@s8V~=v%odMUomTxrX8^fdP82GNf_5=LW3OB0WW85@D|rI) z{%d6h>$>;*6D`{by5khHIUFnxZU`D-2239l(ZTido1|rss@`~L=9HU7V9i056KsP}f)wEjp)tXSJ{DJVA z&Q6z)se*$kQ zx>nu|2?Bfz4i%i{Qpl9dyz?lZAbKri46RgQRI90)PCdZ~P?PqNc3joY{%1Pm)bIdI zSvlsEz8ROtyzbnR)!*Qp3&7p3vi26A;d&Z}XQ(m3FY?7{oCi~IPGnR{Ql;f=tz zlhOw#xXtFg9l0jCgly0N%~{ul-f6#dwb*!@@Y}1#&Oi5*P^DDb>wwR)#hWwD6}fkF zr9t!~I`MNZFAJ`3_cuv1uo9{CNwtR_UR$50mmD4&W9ijfdx8gGS(SphJ>f@#So}700og<&a$yC#NIbWE*G{2>HLI-%C$61O|ZrS7NZ|W>*In@(dSr#8~YdRaX?17}( zgX}UR&V(@iK1^m#c(Xjn zF2j;q3|~o-Pbb+B;g98qYa|?9_uE{B4?{|$ph5M7K;$t#@63B*R-{?~LP1^^j49L7ygQ}>GH$@magoMXrz+>V=T?C?&76$)}~&*Yo`dMJgi$-N?*=Pq(M^|jXiKq zuv9v+eSv#(=b>sIFhw34p1miLX%h##Kb7;n5i&g5ufKS4sbJF?3I08=PG%A6o$zqWY&Ss7gqmXzku;Wg2(Y?{@Q1LbpB&yZV5(Y4$hNacQkX9p_5d%7iFnSAUfKH;oFQ!eTfnA(>Q-MrYq2kVx z5}-qiU{&J#T;!i)BusxqTO)V991xE_th7Ee5tGP_m@q48OoAgJrm(r48xV~{{2>3r+2H&8J#zW9 zY=a?C1}SIy$b*qU9I$1Yc-mb_8rZjZ^F@XF7!WlXK>?7)cHYZ)`riMyz&FBXdk%xg z=yDJ?dL~!Y#rP=DCQMt8k=x**mK<6%{)ZbKzw%ZEJD07SQ%upF@O#$9oCijv~ zUr4nM)(mj0iS%-)<8J^}ar*Td=#H`+-8r(VxEe@aVbWbdp>#q;z|X3dlkNcykG-` z#UCrJ8n~m*3qL<>pOCoEg)*>%q`bfZ{}+_oUjxuKyNn_(Y)^DKn|R6-Bs^6{vSYP| zrS*QkGqCjJg@PGb*+aARA+fqsdJYGE>$>f*mp6-sCTI=}Zf3o-u3q(lxT$0RECy*! zleb>3AtDQAun4EJOh&`{({a79>ddZPux3+dkW@|=F!xYvi~FZ?@%Tyxyu(?a6Fk0r zlO7O%zpA-bmb)J@URRGFMSCR`92Skakp%6Vg0CG2An+m5NI8jL#$6^9&UYBCY2Bos zE*d8=HhlC^DF%(o8VWd3wE}*k%N^svO1{yi7f*%ueL785U?tz=L4?G$)g4oEu3&*& z$^8gVt;3Kyz!T%+nT>vi)^&rSZdsY@@CJx|zqZqg6RBxPiTeuB&{B{VuKb3ygwB%W z88|by0YMWQu&im}&2&iVBq=O_K%eWj#!sCG<~W(Dazh&R`Au$iy?PMnpJgJB=pv~g zHU%_&YasHkGz{IwUUe63LcB!>CL%d63GZVmt?pjQJ#w2%8l}zajyf&I!vN6JY|Gm+x+|u{rY{# z=#C*WIYM&_f;q~}_$=Fnch@!;pXw3Ck$q9YpZvz5IK*(TVzg9nG6fqmC}6Cy9$FFY zNwdttCg{d0RD;ujJ?2}*#~keWFbt@l2-?o(_8(c@G@m`vPQly0`&0j^WxGRF%fJ6- z2aD!(PEf&Vi_DF&fN?Tlk!fHZUOZL&8D?QMuwxdEQMe1|s2p+zu6&bQS24yksqx}{ zg29HHyykJ689vd*)_=hxj{O^$K|U-!?jw+;h@ow)@Nbw5>pu1YiOi>d-wTAnedq7gY|0)mWEKSOmb#WuvxrFl1WteA}*k$co$ zb5TBU3aquE?ZClPd}R@TOLi!o+d_2`i98{CYv)z5uRsR;*&XS_ZdLLggwdFyZBw$$9#PkjfCMtv=O2BQ6|U56K7~Hp!>jPr8{h&7=om5flpM zzBs>x1*xrSpjk5lOseju(FBq3Z)gIcshHtmFkP&>?2jIKpuVFeN-*FNZu~FZG(;); zm+Ia#Pm^Y^azunhG7g!B@~@m|HJD0>)4K+TN>cAc*v;G=boIDq7&n_L$z_sdY%BL6 zl?;*~?|4MmrO|*=@Q6`7yYEe4j%#kh%qS$1k#+pxH#p8nFQw?H3j~=3{M4|EL6xV; z>>V1l{lHO{Dlt-BL2m%#T_Y8P{bP^R>;nk%7#c}+IjMXxUFf;-J zI4SqdoL5?dGWMfc@yI0sPRCjzOKpUAQPJSl(r}ivV7>{e!Cm;0h8qng7puYFGxlGg z6C~K^SksGMD`PdtP^rq4zfHcCG=sXWX=d=od29Y#Q4yXV}&+T3GHFzjpTLvGn zD(&i7Nr=^Sqy`49VX@pCgEh^B)@!oO*>_wUunT;69mI!>Zknk;6 z%@jjOIL&Etddr1%$7q>?nol})g?!svlb(o!4`{sBD;rKg9W8)dpySuDuuN!QRbmU^ zp6&AS0SB!_5+eYI3-Sl)8%W+$3foLVi#>2jzajogA>VXQ9@xlY9*g{9D_%!cT7X5P zE$s7A8_S=kaTngoGx0EvqPI4SCn4EIl;kv-;+QbcWHpOK`B!f)^s{FAS~B_)y)LC+ z5SR8O?7+gm%vPtbi@Tf_Wuv_Ivu((sJ?%v=i4g9^Ng)8=OxXG>F30J)H@RoFWqSV- zCM*PNThR=@YIyo(EZ>n-9JRI^Yh>(8F`a9*XQk8eE~Us-BvdBz6+-@%>lF;)J};7> za5!l>*V<3Gkzz8c;(?%tVzN6mo`0WvxO}zD9-AM*(3L_eqhoF-pAh zF6ZE%sc!@9d}@@U@WpL-trlS{4-webYVK~ca_OqgZA`jjT5WUNl?KQBHxGtl{n4HE zZ5A2N9?&X2*jt#}W}TL~c%kQV287xRGM=#qCa!7RJL_le-qjH*H5w?%K4?HB*Q=Ey zvb2H6r!E({R6?#dY&I<2Dr8T2-fh&e2|?3@AoT#PC{ujmnC*b9bQD- zqsp`~wTLm6!)Mv|Mf6wentw5;vP6O)14`~|+skdqjhOHq6)e0yD&>Do24JPp#RWUo zQ9S@UlJi_%YUN?k8()&OjF4^Z`EKNSrf<>83H|RG!A9h4>jXYvxrc49jD2*SuoH@O zT@(ugf6mhfcIf9UPe}Uv#s7C>2KwOCHKjy5kg$>pKAF?iWx9mB)_8|>%_;9M4X0P8DJdinNv;n{HA;pGNIA0{ynOP-M!%Rh*PMa(6P*bGs6OYozFN34H1XFost0 zG~$XQ9UIT7cZO+!&0To^UAMHy`rov{OSqWW{fNrE-Q3Izbnodu(WIR|NIh9exewCi z+3$t8UCUdMJ{oqjhaV9BOdUA5vYE27!B|gQ_D^$6=q$o=Xc>7|gQSbyo|c(@?7P{( zr-yD*rha(&o|TLBYsa5b2`k%%)pVMtOtXG$o^kl>i>(1<;Vc`g+$9x7x{6fIqUxo z1;GWda&i3M?zH=d6?-s(3=sVL1zF6P29k3ekSv!1B%KXLoy}%ldph_=;3lxHQIw({ zGqEoI{W>#so!ohN9sNu`3@jk?!OqM3kduIazCZcl;M(1B9z842`Pz7)q1k%jIeZbL z>G{ElSx4}45mTVSnX_F9*xb76c`bfDpEblZ?Dl!v-`CanV_p^W(`;^7UmOgmF89`U z)?QLc3&yP55pBH*NNQ~3?($Pc=R7WHB<%gc#y%Bm^-vr9JNm)K8cpoy5cV)Ipd9+S zuey8QxT0~Bh^eP_F#Ms>CXI?LrlIW*T&h}y)%T`_7{sDIvcif3P@#ZcTA*a(obUPJ=R+I2V9%IB=Zp0qDr-Xw+zr~bJ$A_U%v); z*G^yNR4oZ)}rHF?u-|= zOOG){(yy#gx9RBvbBGY|JaP9AW}IG-y_(C?-U-6rqR7d{7N@plD1^dUmdL`RD)DZB zXA#-JB=BK~6rUTNeOe^a>{$ggu|_a&GM??uQ1R+@s?$#Z({u2*01XF7nT#qJp~BiOG4!LZc$iy3<_H9HN=wZzP|bkp?0*r3d$ z*5?ef7KI725}PWkFPsJ@&1ItZ^hWbiP-fjK#MUsyw(S72Wvw84we-6jyd}V@zsp!f zAW(OG{3U<@i5lN`lULXikbX3YqdRQhYuy)RZ9A7xRN+5A*Fc$TburWKK_Ox`_NVN^ zd8olEoaT8u+!JCZAR6rCu#{3Y!&v9ByRMQpBArl1u^jPa)h+z^3B&Q3Cuk-#gZx5) z=ojkON~H+;?2*5z2PjdfK|rTqAqGfHF| zuV6FymEslICoW9Xo*fM0QnQBA3A{_zqVpW&yIqyCH4B#t^>cTDK~jOfs=+6~QyJ>R z(H~EMNzBy(Awo~Qz<($oP`M??{*d<@fuv+=Mr_R-S6%exyVfLSE~O>q?Ls-CawB2Y zs;}fUoy?t8zJavB(UM9FTvXBoyz5Mk8>le9>5710I>celJ5o=V*x_M$TTIHwJ=6nJj5#rX!|%47z5LG$gA5imHP>!C4BIby0F4A?*b6!KdGWYpoFx zzJ5lxPT`2)#@pO2rVrdL7vQ52tfs7w#cY5}(eEd>6++jc7G+;pNM%9eQMzMpSENXZ zu%@o@85CCvE+~FfYn`vSa-a=xgi-DRP*kElxYR^UciHbExPK2RCK32~eat9a`cWu= zPRx)(a~+%BVW_jYN}(+DggDvOwPv(P8k60w^bJR8C1mUjhqF~1IoWcre{EJ5vkj_; ztj8 zuZjHVKWt1yDZ&zxm+FOyaZ&%lpO6zZEh#DFb#aYjx=UpT3a;XNQi zCRv~cQJGfU2_G<7a_7RLYRS1(aG$CHAr%|^nTDHrSbiQrPBIUgugfAeM|UGKt@&>R(OX$myl7jKF%RFDy<2OE zjecQ86<+iV3MTC7C9^+i@*fS!n}t`bfz`(`)_>XXY5U#6Oi7(phZKxMVHNzCZhcXM zHrLQ!Z7zpP26^@!uOdE&kCpVcv)r(U@e$FARbm6!jIT>#PP^q6I@w?VoaA22!0H*W z*$+__IhhxfbD0fJ9@0qTw~jgT+e2MKa_{|eJE5-AafzA22ogB159wZSPzWL~Z7*`u zuToEsQu7F7JXJziz#<2!sKq^wlQP2;y2mxr;dRO7`oK1=d*Q$=q1YVAk*5&z zK84rvnH;tm$<~dyt{&6?VkxYsy(=1YIa%PsrKwyjC(&`XkK}`2Vu-#SPhyp)4X;Lj z>pJPF)NwOPka5N|O4KA&Zy8F=nSk#Wj;by4@Ihy*jrU*#XFw{$jR)AVywaIHUH(XI zu-UN13GX7dimLcL&&-KKO!>Ue%vlA0@W$xOpdUX4_fX(_QR!6z*v(nI$45!KV=qI- zHzXS0Pf7<@0?cc;`Eys*zE=5M&O_)E(#I+OR`uSFJa;j-% z8Gk%fPZ!}ufg{`oRQ~eg2G(KNaI%`X!)P8*5Z0HjkMCHN;(qQiY| zI)S@524!|lvvwU7a-ijIei;?~wRI0UelLDp+f~_!B*+0V*2%gRM7|y6kIqhu4b#mz zQC`YEBpRJ6a@1u(e`e>b356Mcop5TCY@j+Y#;$<%w`X(#XySi*cHO8SPiYNyeYK&6 z_5Hd>|BAZXgr@5Qv+~sIZ)wqWi33fzvF4g9iywJ;Rx~znW*SmxPggP4F3CZ=rLODu ztAz+L-R9E_>26S5Gy)jugn$B*;6hV!qryXL)0xUMLzdy7n%0wG?z*qJb|7QIVgHlhfT9ciP|GD zyyHJkxq2(n+apgDK2(LI(B;GzBIu&zx*3QBE|zQn62CqhCbK%IaH5hno80CJKgjgq zAOsj08$6h!Ck6A?V_yQ}UzSdswg#w^=o~yaYpIMu>IbzUvfL*4+!Z44Vyo-d`YuvA zYwVvN{F{fPk z4-3BlHx8OK;9>!aLcd*Sst=XGai(2tSyO2RbI#6lnASLXWjCz#D?gp#^f!|)kk$Jd z#BMN1;00VQpvJUNpRcx2Z8`Oei7zssnV>5fTd>c2lLv|N`{~~XzcMdnEr?EYDsRk^ zRpSP$y~*d05*=8=KEq#YWyTGHO!32K7dCr{1@w0S z_KIjuCX&0ThUOtNO`!)q(gGBZsHb%8V|aht>Q=aSona}sL>yP2{=jka?wg0Q2Yz;K z6hJW|N3Vx2nZFtFhDyD64r=nki}0=+$#f{Qck!KwP=c0i>{{jI8qhfR2qBRU=_c8Y8+;I7e9?_RiV|-WS}sl`$qb!n zHB$!>N(v+WKK$3_O^#&q6g#)0ty-0|R+Po1RP5$P^3}4g$fe{Bk^XUAp)Pbg{-q67US37jSta2g#NCg0#6ORaTG0+k2d>7^fEC(vS>M8 zW513VT7Ue+)>t!dc+|dHFx8nEPdFzYqXY;gEBX+t(C&PsSs!D$57Q|x(CiGJIoS)^ z(mN^Sm47m8_q@y({PuPVdhefcu-uCkroVH9b8whs+LI)|`aYVCM9uH$RZf?i0%sc7sZL=!C^`=$SmmURhvf3VDTH3f0OibdbDTnIR+)ovys-w|>Q6?tf1FjUW zizsv02eIm6xIwJEHDHaI0pzdoJoCNiP{2#XgQ^H>lQG`D7L<|bbc0^whN)oIK~JAK z!&Wh`7Z(rd*UB>6NgAz&Yn;?_ivW5LQP<20NsN_qY_iukN=AeA^`ogwO1s4)#^N6( z&J~pp`l#Z+V{L9Rx|4l?3WTC1_!y3_%bVeauyODsp{x%_9yvpk$f94MCT=6clAsN- zz-6E&fT%1Xx{`Y9K(9=M$#f8+@Cds23A}h8GYjWO#C3ERu5;CZ3%v>YouR!!eUBZg z$lyeEo?K2veKgYM5uAck=Dpt$E385WBSbOFI5Cb2W0|l`+ql>O$q8Uw2cvL4zpCLN5l;lK9?$n&iX7#_kUhnEakCSJ&fzFOJ&AgZ6B z%JGj!bxjLru@^P~zWeqNkLqxdc&DO344VlM{^)~bkndk8tip!k^W%YEO!(o|K6e$W zV{|)JR5aQ*A84rgdn^@HOw{Tv&f!y@#p-ZMcrGWNCSlwaty${saJqPNBZ{wayqU9> zd5Q781rm#6|HxaoBa*O*tQ5@=I#GVI{^ zUMNSb|C*`;fYpajEXB3(A8CS|kH@L)Yl7UaI&`V$ztRHtj}^#42acaMQ>kxNFc?-d z<8~>034mcpSU_d<`09hx$@Owgu<2_gkf#_Jm8l&Eh%cM*-f+aK{QJf>SF~3*xmO`- zW=*v3!%v7+<#i1=y(BZ{f*jrIz1uOnPjlD8%AC;zY(UjoCOEb+Dk9-Dp*%0UJL=d% zOE_kq9LGsy*BfI@`9{ahwPl1Z&fSov$|WNae(Vv@eJy9CM|#d+ z!v-eA*p^-dqr_D$9^_2);H|6V&TyrtuYKs$=Su4K$*n}TV`mqt`dLSg*&eG=nvH0_ z9MKCvDlqx$zXvp=8$SaY=AXzu_fKYki<^OsnTUn?CmPR1#L2|QkO3S6gM;)FCtxB{ z`9A|1_KXH35HygV?(f_U2zo3Qb|!|OJU#n=x_^GeoIkmPpJzWge`i+^TzD?7|Bp6< z*c%ul<4hC`5tt(*h!2_=lj~;+#QwipHYN@R4vzn$O`%!+?+E|TYvDoA5V`-WF6e)| z$2l^Rnqi5sSeaQFel`r)f25rM*&O)kFybO&XJJVZI>ANw3HSehuRi+@i;?jn_A^*g zI{%40uyL^c|F93g`F^cb_doYWh^{0$#X{?>WV-JhZE=J}g@XB5E=A;KtN z_y1w*9fK>2x~}cmwr$%TCmq}F*tSk=+v(W0ZQHh!j{W7npRejgy+8MDr z#+>sS0-g9R&pm34F3L@hd9Po9_tVfGp9o)f_wVa3O5|jRbTPz^=Nr+aUIFAI7P-P0 z$LwJ#aYX&?9_f6{kC&R~8v^yYx1G6xot>U{pD%dVk3ZGt z|NLm7`eU6OKkJa++v( z3I5Be_d9EMCKE`M8lXZqaeJ0Xi?W4IPIN~e;hY{vW*i)$iVPgkiwuU7-F&li^)&!0 ztXIaT89#g^>PB!}t4uI8>XdK=ynb-*0!x=puFQ(3+^dKQHstF8V3kM zbt|B*rDFzS0Z_gsdUXL5qac=+4y#=AbQ=oxEy#QFz;;(AT%zFtg3;E)-9_S==>)4U zkI93R+bqt%zh)G4BVHKeG8~)!J0&w{vH%uZr#_11p#e{_`huj@?dfQScnCvX>9n&Fu#KhHU)NgIJp9V18#MykwAd^d1aSN~ zZt+!m3;=WNZtIm`cYpN<^n(eiir)$d^_+(PYZ%$SIv zL@Wv6RzwP4+E;=IGmbxWsM&{Ni(iQd8Tf`@)yi4lZQVOdL{UHjtaX71Lb?0QA&#La zVuDY~1$s~iy)bgRooQnFgh}EI^BI1wnYimwDYOEgI)(ccyBJ^KY?)$qIHhu@gKa3+K1Vg)IWH)UT zlEfmb6a#qTPSeoIeR>~a;`MuG0ar+r&(A$=!ZbTmU}-`FnZZT+(^p4P&2lb!?xYgV z1V0#)0%m=A##BZQGP`wic}Eo^m~DhHF@T7}n}2|!{Fg%|Rf)M)#3A*e04^$wz9DHw zuFy5`DRn*)#-7W5toHGNZ`ptYpuE=Gpj3p;@%Lutr?&HDV*UbVql(MMI$Kf6-s>#Z zIF%-oW=bMmmYIXJPh~2JoKwgKpFjTwFb0oW1aO@cALO_h^Q<&EIcQTKEbo%O7vO1< zw)z1Z3|docni=mTY@-e}P59}khsNJKnDtgf1zDn9um9_#bGrSaJogqDQ_6{B%gD!^ zZ_$TeZA!u9?kI%^_?-+J2b_SA_ARNw1UGkVHqFpJ4%?ivKTg8LH#E=QZMNlR85r8xS7IF*7$dC@($x{S&Kly@vP_4KhOoL9vhs?Gj22 zJu*V9rF#U0cWcR#)OMMJO$_MR!&(W&N^1>XYafoXWA5_&ts?AkLu2A!F&+f;`nM!V zxmg8|xXBO5xFl~lUX@+M@PO4plA~JobVL8#h9`~pMQvewvS8R*C?mabhC0M1dgF{g zS?AYm!fyVfxNvLI=KAq}XN<|fX8inkQN63!`A?fEP2|RD)=zbMu-+A#djCz7As+DX zV%6sjqdhXCRZIo^%O$o_d=lh2I}DM8#b<>NDpA7~d_r2*KyptZWdf`jZ)ov7USV1D zmVsTkTT3H#DxK=BY0(IIc_?$bbPUgfI2hR_mh+F=kd_DBcy?oJcb9S6gI61o?70)O zZmYOkT)MjI;wN`>)@&?%DPUg}alL!5>YJ1QW5g0LD7us~HTU;{Xnp`b^T4%M%cYx5 zWaL1$T5m8BUtzF7r~)Wo6LJ=L2lz*8(QX$f)^SFOi!Wah>~)KowYt6t&$u?3coY6p z6(^@c=>waC7V94()cm*b{Lc0EN^^DEI0MgY$yUxNGA^3Zef`;}U&JqCnD+#~jMrfr zJ8)Yacg?iqQY{;3Wp=kq z1%ubA%|1vk9(5|!qxu)d4x;Ai(SW7uTB~D%?}-7lI;;Qnt2^9go>u>>J)o#=1SgnY z`_q4A_Gv$gFjFxOm4P$~9K#TMGOqT34iw9wd0D*d)&qOemJ-RhqvmQwR>YFF2H|%R zy5_1Ve*fRIQ8EC=Nr1DgPX*&n)=SY=EAfu;>KZd|^@nuY6<6?n-p1!7mN>@GoBQKl;&tuTBov!U@Az zn+NY+3@x6`HCR=(kd2zrdju&v8aeT^a&stF5tVX{BRqhB{Q3_FXd^ORwKsg~*RzHq zmLK4ztp{oAwH%E`9gC55Q>HzezGP!P6{}Qf4+uFBs~rHYsFwG#{`!8>G^s$Ye^jh} zPf7FYXc$zS`~jE6$9tF}#lOK(efS;W=)sjA&)4J*Y?r41)2~8*?0~gwT54i_HF9DG zw!_{E>Ik4k#Vd!(Va^tn96mxaU<&8gV9%@7_d{hnJ=#qOK#y0UJ8F2!AWj^`b6ahK z%fcC>YwngQm*|6G9o4PjIXqa7WL0v7-=3ufa4kESol7iogF?EH2;7?nFI5gX0Y^8yS)s~dWdj8 z!6>1%^ti)`gq^W2d;whp-^riEVYDEeFjf5IbEfa#B43jZOeEdi{!tq z`Mm+->^4J&#ei7&=Ah*Gka7+r(0>oVH&RV{x;)E??gxvd9m2@XdJj^3)#K@diGJ9A zmTk8uicixY#yGgjaN~Bg+6j1Xo5KJax}u$6PC8jK3h_&*t}J)VuU)nwe^AKfB_DJo zs>a}HxdO>z7z_r#bWe-MJYrP-6@yDLqAN(3MACA6BZBoJG_~l!)bW*K4RIr@i;%Y^ z8+MB$gkUD^`8Bxs>=Br!?vu?_S1rnND68jq}^P1vl0gDotk98y4c6KicwcHbFOn(~)DF zZBLhCC4JAH5uE&)hU1*p2Q#and6E>^IL2>COT|Z4!|>)%Q9b|WTCk~3vA|+Q=h&i5 zc9^~d<$X}$)B`Io2M7L+QjGw_zXGSqNz@pwynS~?YRAaS4o+;@QikT5S{AuywTz=z9H!wEPPiC)d%=7Hi#=?bF*ZSTR`d0tgy;b1>&F*zj163v z-c@!H)tOxeHr;Vnewzh!HN1L77Fn?hVh*asw|eX|PIkuSN-}b9g0jkI*s^!WKT(*| zsqCR~a;U)rqIedA+*AeGID(ey8sx!{G~}}IZeL>9l-N6_`4Hc;l-(H^Aj!0oH24a! zg;%LgoH`DhS_P^%+qVF#m0BLXoKi9sfg09|B0wKoM##=kvDefUsXZw+oZCCtR=o6W zr*c*&W5qudUQVtY(rRgFDUT{6)r_Sj%54{zjGjNt2X2tF(r6b$R6U8>m}DM@PTJ}5 zB`3c2yA+ht00PKh@%&mLID-YN-f5n7kM*vCC=E}=tW7&sJ!1fjivvPkD)mX&#eKb_ z0|GLxPf@EFRA)hG9GeMu=suhcf~(8vKEh*RI`=9q$uo7pHfK0*9~db0goTWNMsmrw z3r;sq=(kx6N_dN-g(v4F-SPrq5zDgKeBZTSz*P6F2=)ybW~XvcQ@bU1IRb7OiTMO zMD*Wgd{G((cN+?3 z8X@<_F@R4D4aA5S(<8i@P0xvX1n4eimt(nsNYrDjK z>eyOhjUKRQ+x|=g{}VoMh^5}xpwADFS9#A}j?1eU zd!=P>JRmZQk`1H%9xEciKO8!ySJ5ZOV8ZUZ_|7jcKh%199p5WxAp4X;%&%TbxV_Q0 z!x#XhRkEraXXt>Yd`g00JJov_{1_sC!=suj>jGGJACOg6E9~Pz;Tves(|EOuU}KB- z%CW@9off_Rg>CcR?(%zdM2sd;k{_FK1O25u^4^PBU4`6pTQlZC3>psSS6S;fK05h` zLVzlHvZ3mj?mBrZY3fq+eAu+L_xo3gDKi3U0{lhYT_&iezqi$q$12{*9?x%M3!h886A zMEw}dyw`27hVf>yAdkd6cA+uR9<*;EEwaRNPYAsf4m4ctra(^-{8{b_r$NdQB`VEqAV{H)<-W?h^I1-uLa8u*J z!T%f2&B5_sJ1#X!{3o7U0tS*8hn16w;m3Akh4<6&kUHjR> zf3m@mnK_vLH)D;6h5J8{3{W;E=2S^oNCtF{ADYIGfyl|g$;A5K5u~5R%&E7nu(@MndwJXW4aM?+ISJAo^)oWC!hab#WZa=Uu}lA zdjxt)%Riocy9_x`RysawPF5J-A75u)x0**QuBu;d{e1u**QoFApHEY-X4Calte2km zPw-~UA0wJ1`5IIyRQQs8)r5Pi&+1Zj9RnMj%pDDcE}wTl0Z_IW)~~c3Uw2oT(m-Pj zfVaVE&_nM{)un5Pi2M*J?2&lMv^ivXbmYE$suVnlt}acixq(x@VUI$H*f~_XTR|Vq zse;8-NI5`GvPEI?4V`Xw_IFh3*VzK%PTi_gT}X$+vi-BELl;}*`=b(QBWvA@g9ioX z>&g-KN#uuR8Ai)(O;D_1-In?#hakQ>pA>|j85FbU<4nC+lO9DR z`oICMJJc<+_te^6>rKqO+dGOp^5JKDWs2F^J~==zVH5=|UqmUajmn;UtKpTNBq%lL zmJneIzgbYZldE>XH(G!susM@n4{T=5%No|TR8oM|8BBGGw5GyGuaV?{Af7s2RI0VG zNJ3on7QPEzIfBSrK^13cI2Z>!t-u)%8rk#^D$hAe$Inr;?w@9xr18(xOcW^s7m%Xm zt}4K!vh&{im9gF(-2_x=Mt~MEg)K5+v5#dLNWcg0ff)TdF*nuGLDUxW#Zfz$P6(zE z>}2i=0WFZgD76%SMmlbjU?=(I=nd%20qAzCO+=y$JXQvydtL&=vUq@9ON^%}UyxIq zcV%XRwTlZQ8zfLNPD~iX9-@b3>U3N z1(-TMUO@ipCXAE#$e7e_tEuM_SeSr^!cWT)->Fq!54apW9dsV%xptb?^Eq)X=xR%= zN41TaRP)4Tm2oX>M660UQH}-t_mNR$&rZl0(ZNK1*G%fQMzc$6AIx5^>^7p)JAI5x zN<-R&Mv`h$f80*Etj<0ufN*X0XuAcdc*%5wO~!l@}eW+NU%k2x{5l5hf&J9B=^H zzAS$WB`SWqxC3HCn&7QwX zgdRCPhJ`S%XGSQt&Fl$MlN>+b1lGCO8s+{H zgNl8rdJ}BEOCB#=az!0(+7-782KF_Jg-r5;eT!=jkB!dgJ6HG1!yiCQXcEeS(TyUa zRIZ>^l9Zs>7AlowS!KZnDi-*R>F`LL^9hq2O;j`jbK+aZ>PztsTU4 zJcxY)Kh_{Yps&|IdX|8M_{Ztuz7t?)6q7)&+55wNLQCIm-*imGvRy~fdz|$0MFYWi zz(nKk;g+#R#9dqyp4^aH8GNjV4=&NM7)=f-UH*+}O{TtFR6BOA>Ou6A!tbB{c}5dK z!8QE?BG#@H3gG86_v8=}W@6k0^9DuGF{-$^8Sz+^F)iXrXfJ@m3hY$?09}`5Sagwp zwFay?4b(cNxGb|%)vrZKan;*-SFT(T!L%O$H1M`S8Iz5p zu)H(emlh5BNuOzNE$9t(*q~zu*s0RW#{w6bOv3P>`Wko~TwB1XBfzg_jGzqLG!xs< zG~q8ggaV{XD=HwxK=wGRC`YL-V~8I3tc75=zLMHa_kfH*&!=N?x@hd_>t%}k@Gfhn zqpjc9nx&ZUf&z9V@Y8*{G3eY?HykxomQ$$oht_mf-c69U(w}iBEgl#kP%*_a0@f5& zzbMAHWF`$EY8c3%>y9?Kp~|Gu#5<#}VfLqz)fUfrz6ap8kx_Po0KSj~VxdNpFAfG? z1$v;epHnp=87skb23ZDE1}1BlF*mv5I{AQf3GL|YkMNKh_KEvvvqc^g|3j9ujiv=$ zHQLRmYf!(rG`Q)+%M8$|uS|>g+vMu7l9O?Rq^m?cC_H9=SgQ1DyKPC+mt=CWOEE#1@I>Hp9`-cHr+hkjGJp)LRbC zR?s?3SzLzV*rgH*s=Z(#fZFWeS=Z&;%$=YSkx`<#plUV+wu_B#{Y&(0Ml*}rSdYmv z{`)CcP2c)tGs7gZ^E&HUYZZwM*tm}V`f`T5fCAv=@Vq;1Z2@L^g69r0w~fv{rDqeF z{g55Q?=RkfdVs*Yfgf5)te)qoCOa*JWlv<-_6CysbVYX7+uXd+)2D1Q!a5UH7B5Me z4=>l^H+vW6x7f1tj2Iokbv%O51<1q_8tYpFWqOQhjgSfUQ)=e43Ki~YQodP|mM9@l z0|gNF<}6$6w6^W>bD$+wKlQO;)5Ko91N}pj3hpy%Rbp0IPdE`Vrvjt)}kE2a5t2@!7Y;>3jfB3 zwLL%M%S{S+=nJSs!b=3DZS4RO5=g#Y^9J+)-2b58HSbZ}^hruqALU4JQUpw%xa)nAJV3cs7(ZOD8 z8CFt@lJmw_)7Ra}%5N93eXS*3e1+jNnq5`l^R!=IU9_hbe)%U244#^@Q;)o7t_kQs z-6H|MA=UZ8Btq@cZe)*C)3DXFPbx*CchmL_q8Sh290-4k=n5HZ8KZ)~cuS(NCm|<@ zmA{SbE(eA)!^6%0I(B8{0H;oed&V}-Na#%(WG1quE$St}hE}WI>0bNTf*hRO%`!gbD3!p>yG#B9yI$#M{)h48zv*D$<|w6n|_6~qesAZU?!_yO&`jy}GSVfak? zWgS&&T!I#JJhceEmr@Fagky|C4tRP)B>(&+^6vDGhZIV{Sm;-<~)BOZt zjDx%89WBk$X$suIQ7(8U83NPsLz{%wM){ZY#>P~)M8>P#P8{9Vk{q-FL_o^jc9{fS z|4xvgEIdbmAnX&wn}(1?pT2JZX$m*(-s@0pPdNze)+m4)uJ} zaZ}z%YX$zV)mE;t$s@5aK%~YC>@frPtZ#{a>D%QE>|AXwP?uOFEjxoYjahg(fbU`l zBX=w^U%%)Nf^!-aAB@wTC-4)o-AWL3kyGG|bNy%omg?~Q9W1?Ybtb@iZrggx1f?X^ zyl5uYFi@u>&Dz$M!e!`0pl#9~X**C1T`9}Be|j@DuP~nWU*{*~$orlViTFk1_GG+B zOj4QMI9}-cW%uNqsGtwwm=(+Kle)#{HEiu40CQhWIZM89Dh z4e3A=0mTWaDIEA&!I-zoMKNq=kYE2`9{|cSN^f9YMt$tcmB&A{YFn+6t8!{tkXjG$ za0?4gXAzU8;rPITNk|+q4DfB*)t-da0|$%iZ`A>E#Rurp-Xp;9V2IF4oA%5gLs;lh zHN|#fD0NP}2Xt_IjMx+r;=PCVhZo3#d~Jr@gw;5-<=s$rFl{^>FK`3mNr5uzWq#Sb(xRlx-K2Q>MA;38RnaE?eIsHr1Ai$OSk zx>3BrC;+USZ2uSKqDkk%4wn<H72p4YpL{Buk-|1jL7EaoCGgmw!lH3{8;?{vCMDU7RsuMHbB zPy}>JsUR+6JWA?Q6F5t%V+mHgv=xP%4fa5zVfwwPk^oI)<=GNRj%+kq2N)& z*7>JlwCKlDF>QNj5GM;(=um-)taeeBVp{#YmtEyWBkOtibSXI_ckW@-EzopQdJC~` zJ+&Cu_~^P-1Y~Maxe-M?>-QM}i#2XU70B*!9oX&jRW{%)HX57WQNN!FpZ^k1?{tlV zlc1s$Sm;>Q2|)Hw#XRDLIU$!C*np%h%g-t*Kta#nAv>Q*ypMEOms)f32-Z#%V6r9| zfp1rz_{M8qLHzfpy$J;kRY_^o?L#kPe*^_i*NbE*C~1){W=C2%q%NvpaF?a?w-Pm& zsU;0q1C02!>f7gs@RX~KTdd!@R+JB<_&rk(QiCgZDxd*#DBp%~HiTb;u6t{Z(WcrT zVh!6HsbPv>fN+o8@8k-Dp9sAhTK`Xj4KU&1<+3m8?*)W)yQ`XKP&?%^?IP)gL8qDb zFgc=jmU3&$*wg$;ARbm!WZfn7VhZ5=8UuPx0@|Mb(9~_rZy6(>ZCS}I2toEau<4WH za$6~7Wq`P}qKt$j7u4N$PygA;_8VAso(H|PGruW(9}1>PY2KDZ zjdN`?Jwh%n#R1=eoP%tnvb1+`@smdus}{0jqHdz_5t-L{J$Ce;13$_!S9%XD_zP+S zUuGFi^m)-_=-;%s1eT?P=Xo@N6xRBnvIJ2Wz}V}ev6jDR@{Sb)kVo`PDl@U>B;({{ zKb!G947E(V3QoQGpxcY^FKtE}yF64}3jNv>VKF9wMROUKoMjqp-< zVI66g{M9zwkxBH0Ybji{nw7wS_LbnHc(JP))U+w!hNcM0>=uLgUh6U9efGpG>Cx~s zdNI|A<5H-9b&MXOj{}=osyrUhAz0dNaw&=+6dFd$)q@{qIry5%{_suQ8qW@A1)-q> zZ=tR|W6J_y*aD3kwFDAgQlBDm;CNNi4n*rKTus5bmtC=*+U^={nm;8+TYWMI1I{WI zVrrSAeClLLt7p4CoLgHQ6f39*XliO5USCGpJ0os@^e&EMp)d(XP)OXU^uU5GZP`x< zZgRR(nMKZe=nv}8uyK%j>@$4MgtWgcdk!jV_rZU*^TUFs$ZwqF=C2>m!f5S>vJ5!6{j4XcVgnhneOqr~xGXA%PH=QTL8Zr~*>fjGb6 z^^kYC2ts8i^TEjq=~(jA*QW8nzl#}E(d%$7ZsK3YFR$tL9XmF3X24UL>&ofhwZ@G) zHnrY$fu}G=bf>&phAcS?UpV4pBR1N`qA14n#O5aXu5EAk*58-MlP`Y9X+*n1a`jT# z$stpN59=(|{)qv!eZ=r$Z1(f{xSK1wt_hcsAU6Y7n3c%H^fPTQwvxlOu73Wi2--+I zA(zNQY9==>EaCUR(dyuCD0Xb<(95UpBdA%WtD`y5qUMy({6pJXpD9qe{0FcBH)Tg* zW>@9vmYI1O;KFXI+$A4Ma%qov5pAAnB5=M{kFjbM`_coT;@?Cx8F5{`WM~%o|^u8OBvzLLQQna_@05QEh?l+8BbaVTMRVM9WkU zrbnA4!IX>4x@_F9w$ch5(aN{Z&^sX0LDe!}GXyuXAL=(0rm2&z^XZ5QZz5Tpd(Pn$e83}S31NldJ7JXA$nk&srQN`W_M*7o^&*V4xpPJzlML z3_dl0MFqoOD4e|n3oM=650e8jpt~hNqjP7)uVJKFf)KKG4zl7(d1-121^>mhsgC<9 zx=N}ekN`u|6*r22kT6wbXBPHXX3bKPmEl4j_mG7pe@6F18nQj!QwnWM%j6xVk$p|t zFsj`gkVy*pQC!55NtL`N*HJLR+HGk?jqN9(mD=8lIM85Et5cDZc&-~A!fOV(=c7`o z#H`hp$z6t;bWvG;#-5aUwpdyo>c~o8VKwF=gDyy2jd@N3wL*?v6JY-<#4neYm)6|nUBl(CWDVe=08VG65r3u^XC9)U}!%SLIs2? zVX8xbP8IgMB~p7k@!1oQV+5<~F*gs{jjH4a=r9?-5A)brvzQ;aZM%l_Yxy#<9Mqc3 z*~1r=w~}jpX(}TqQ+InVfppP^#V0I zJ(oK@T#!Yrg7ouA<5nz1zxWGx>KtGla~8!t7bT%UT@r`!PRUN1Ap@K?(VldUnjHY9 zbb{v9Y*)$Xyp5@)KJt9D?=wOT`?rz=c`-XB3W7H?Kg$m__zf&sDakoLi7D$8F^Oj)D?rn|Rf9l7#1+tdi0q*d zfLv!#>TTqS?yq{d=3xWLr6L&1XhIdupUFMwLm7#AAeASm1k_pQ{zCTvi&flzNAn(s z9~+=d49-zMb|em2daP+~g5Kt%j6z!pe82w^cDeIU`^1jguc$0(N7#IRip?+BnC+ki z&zIxJ8mt@_yv(`Dj88m%PzB(O{>|hub>blB+AHc!EJl$ssFkejLb1=s#*cgU>O{cG zp!Y$zt?5KhRQG;!@&n#r)pqEy$7gI$C6py&jIUk9W`dC9{X4wf=`!6tMl053eT81W zc~tYL)l%?a547A+@IOC170Umf+LgnK zrRQL>WX!Iu_yd;!6y2)Wv2lXMq-L?~n~>TuPSLc(v|Pv#l+CUUa8(z5S2x|Vq2iuL zN`cqq+zO@jDtW$Lzd62w%7tc{`7;4)A=w&zwCSp&(vLzk~1o@)`(iB-3rb zLLb#dj+habYO#*)h|cqttxh7?Rx4~d632>TrL&_`6fzY7BHCV#J?W0Gs#i{Ios8rQ zZ$cv~k)E82zlSf>dO%U$Efx{kJ|@d$?$_fD*!J_Q5kJ5Uz@@{;d?Csxu>H zliI#Y#;4NY=(2e9njY43q$4dq$=*mWIq7M zwfd1h!(ZnZH7=j!5tj>gPoKx-9jB3QH*!5^@7MdLKAKs%Iak+TzMfC+E&QKt9oyC& z0N;jdk{yyv2XR8adbMxtWPtp#})KXC`bIv!*F-#R+`UbJ{{Jerraw19e)ZiXwhh>S1cZwYtE;(!nTsuW|RXA%YHv>#RBMP zI_hAcHb{;d8OTx4I7Tvr%ZrV{QB6R1u2yRFbw3$cpkP~7KvRuT?aTJq{Hl$qaVE$= zd;wQEU%9Q$4*6;=ly*zyfuW%Mc#e@L$knywz&ydqx+O!sgmQx+M)k&h<1+wtfxi7^ zQwP^%EBDp?fhMn}&`=OU--#(IBUVc_8iMIl#&`YN^!jqFn#h)3(&->Nw1Zof)08hE z{?E4#!$^31_4GX&Yq35+Ok!Eh<82eN-<>LagxbAk?BI&6H>r#zjYPHj{^QOEd>VO~ zcxrzY49AvnVSNnJ3QWEwHWgr$3SZ*S1mk_&UU~#fHdT|r`Rn73(}Lycw9Wns>W6_?j-Kvu zu{Ei(BgB)XaL;ACCOU3#;L9TGw${|Qk1HPrehqy(l=`Dmg!z$%tTAAfMs(jshOkl8 zi1{?|7@HQKHC2w-85HD$&c{Hp!2-oIHbubXAA+NUNo=#z^7I23DeAfpf#8d0o~L$mA>sHp3L5<6;yJ3&TV^v{?lA`3&W#gwoq4 zn&LZobW^UiX?UQiq89-CGH#sk#`_VG(wg(OmRW6e{t)q)m{WRElvzPCF0UXceL6#g zQIQnl7Cc%mi${}mxIi4vyWE)AMNdW`N~a`BJZ(k#}0P5sr{{<+JTy)ZF_ zC+35Mrb?IfI>Z)1#(#vI&q#V)YMX?K8eTs|6*IY7&`yqc${kcxuhGttUiv_FSAeBh zQIGyLt_O&DVK=}8S!%%3zKnj_A!G4~_dVkr&>0tg_j3^GIo(LpOy=L7I(oKJjrMzo z({OI!FH6+CZO&JDtz0cR*5%d}LlGy~tL^_=|els|`xjJX&K)4|5 zl=>%WC4m_Rt%%hN0tYG4v;@Q4;?B3(2)ojD8NL2Ab+KwdN=8VmJvMRYI*j^J%afx!eR$8 zOZ@`m$+zsFeiDYEt3PXp-Qf&0`*Yo5ravAbq=4-ZB9I=z=|)a9@8DOk0n2J(Za&pE z*?LK$tX?rH8%~s?>|^zqDfPpj{>w!0TKmy#^H>&}gOw0y=Tf@kJXp}rz6~JZ|Wl>i4_E$Y*67`tRtD@EJ$+Lxse4_6sUGb6bQkGOde~g&GfRvB(HehyEWOx9+k8LTjVafIBV z|2z?ss)-EQ?6uD;6aQ~tof2U15kcBh-xX{(7meIgbc9}_L0)5F2sLF08mvMQCXm0> zAe})2G&0=1V!eStJpLGj3BRo0G6R+u&>_@nB6%%$t~!XGw+=j?gZ#~C0HGSTMZ_z%RsE;-$%8^D)>7q=5&ctYRVxvUK9_x-Fxl*y7{? z*3fE`M$s)8u0V(#@?7-S)r8HO^LoCQkyClACAGMxLdv1E#LJhq0?K?Lgm8-O15A5( z|9T(RC*LT-7yp#IvMi0flbr)lknlij5i@xI423uUBEHIe9Mux-1&_cRJs1%hH&1^C zeFjAcTpT$6flJCf2n<_S&tj}GSr_)(gudUrqwWQ$CAme6-8!{w?Y>_Dc4;P^J z-M%)k^8v$%O-Rkf{H+};tVz~@f)T60)5t!m-#J>r2F1fz^C-~jjSmL6(S)$lb>4^Y zh_^nJ6&l1nBbX?7&H={Z34*ba?A7`3e6Z`46gw5w&3SWb56mG_r^UeoUwY50aG-B9 zz0&^TXlv71Lom5<(fUG#BfyhC->KdfDv_@!n&Er=JZNeIrkhk>qZ1S)mp~c@@1IY? zRYl*5eu~6VLJFuxyMVW$o#EYZggxlcR$>UbAduI_W{}pwK4FJ2&vK>aW^=yRc@=vRDG-hdeXLx)d`2&N(2L+aP|VKX_wWCMTz76{A?A{c9g zSY4oZ;8*wNKA|JF@w%J#1I_BbmlQQM2qy^b^L)3Ai56JJI6%Clh0P31KkTOr&0C@g0h{3%RTwYr@7;<3nep zK!R68O%tfl&%^;fhEoBaZ@dNRL(BCm6PZgN!ui;J>?So|*D^nUCT^bsI%~ZIQ^s4P zfdlFLN){Fb1*rNn<0Wr6Xc!vS1Ow$Xmfda4b|*8z2a9K^|EUXKDspq>a;3_-NB|GT z>$q}Var-6prdUlHV)4P8L*YdTMSed)m#*8&eUJhCye?++C&Lk6*loCN9W+(Jpp z3x|r_Ipg6-We%2FTEvi=mfU@QZAaY{0UU~T0B=Ry32;Af`W;~JC0~07)IEa%VlE}+ zurR_rW&Zcvz&rz;{`qOn*;r0u`Q_ZvKZpyZMPnom-JUSLW}`WrHP?x)G3Hg+Bz*?U zRBS$qSKp?22t2-kQ*j3ZqlX>0@0Z=v%X7{)@~5>Wo?ECLoB}|3l?k;288U34c=o}; zN7Fhg1AsyeFGqMaH_7wm2$=?8imU6y4i)VD^Y!H2LFABr4S3soS2u7V>AT7}@=x@^zQqf>jc!1XgtHudrGD`|iCW zl2g429@uNh9DN*_`?mQ5{N29nJVze~*L~{V1fW-APP@Eq6D#F+D54TUS-_PZp>;gw~KbSxszGimRj+rme?hS$0n(525e^+{8cQ=D%#&0|p z97KUM1`PDgkhS5!0b2=Wz}0R`zF|Vy19!w`&eZ*YK}D_lY;Zm)PK`0ajH{8t=3j~Q zKK53^`il)ZE%%0`?pX0OW8{lpbW$a~&YJFMV>u#rb2QF?>8ryGURcSV9NFRmH zx1j$q;{`vd`28bj*4qF^Y-{)T?Da|&p&R_azh~wLP?f0Tz<RkLvzrFTBtO`Sn{?nzP6Gk~-G~P- zg$aZ(fzYmfN7z!H7dq>PI64_+FUOe{Bk!s$$6Nty`G$vVvI2Pb0eJne8NJ>9YbQnXK}n zYEP~SY%(VJzne2`TVTmHZDLs19qwG5mrkW)CMbx^x>iq^=pNtd&j8sugItG>NJ1zX ze>-i#FYg5f8Fhtod-~KuVq&Sy``1%|rds2S9^*CE7Hvb>>%HaF)>TBG%IS$l{{TQU(xtqYu(C#=<7K}5j{QJh@7=)(5-z@cd!oab2pIC$!`M3t zkI&%Z2BCALDT6x7{DEE6`06e+^cL`YR~R6ATAJkDoBj6_Xu!tka*ly;qs)F6JM8uf zS`Of_aW8NLn$moD!1ygkXQkH&^_NDMsmgC~?PpNXQNegE^TlX`8kzh>gwwKRIR<%XVDrHwd4meMYvJ3 z9{vq#N<{1F*lnvpBuP@&Fx7qUGI;H54c)hj{_to?xC@u1K#5RZ)?|tpJDKC<-cpR4 zj)njBjNrTZs8n_XA&gRGXg_EoH*;RJ)Z$knWd#A#p*oB3Qo=Xx0)+QUbj@R^EUhAB z0&yXdv;IP$R*baUZYwca^OysM1TAh_8;lYraOAz(Dy;Z#_Zj3ugfD)0?09p^P;d|n0q_ioEhLzVdzZNQvitr7 z0b~dq?eo}S0akKP`)P^tA|2s2;m!Q+P_}Vmefb&No^fy~+WUXZ2dL7ZSAd+8h`P~5 zTcbyD?Il2ZP~tYu1hwW%+0?qEXfFSDj>M%`AUZ=5*(^fy&=Cd;Cz zrV>K6VTv}Cpf2tpiqCVYVkW^HhHC}lxZrVbPhKqyMA4cXYPN)!C961eT-5w#e*$rz zSsJfZ+3@mi2Y7Q9(&OwTSx(L+n2q~I&NI+Mcl6FpH89N3iibjFnjfOlygLS&%MVSivQO=l)FXa1cxB>}+b#*3aOyOglCA zx3|WEXKts9E8ApovTpT_wml{OIpZdaKagai?t`bW0!T;cPu0M5u^(U>Vvo{7CcX7xBkyhZ<8=yS3c@-vWEN9F38i{8Qc$H(A5~GMN4t~DNv5QCHX zA5IH1*LM!&+qA>TM$h^k2l=L~d?!)=OePlAf6^;V?5y_wBf9J z{|lyZNCKq9l=Z0T$CJ&LVPDX%c--IbCwK4Yb%13z)YP@ zeUe#@==yDU_a?aDcV~f$BhUT_v0H6V7s12oy56!rdjVbNVvIc1&Y+u`#OZU+87T^D~0o}xvi zM(^=-3z7WsDl~Rs_4TS2rm=HQ()4#3}HIh|9ipm)U|NVbw2;8mS^_A`3u|q^Hm_Do(eJ+ zCo7pyTW$}Z?sJW+`wKk0zs$8ow665!o(H3KQ>&6YjtSg_2hwhyZZzBsh{k((!5*)dq_; z49v!XCsqiDiGC$Kw$bB4xE%_AGO(#AqQsn9WQ>DoGITqe8Ph1-1mS+z4}?@o6kTbfVcx)-t|-P6W&Cp-*^!A-~gCKCtb2VgWA1ev!13Vt8gH3&FXe zq7IMd&IJ63E~>7)b5cIRZh4<89~YaxwO!74J^yQ-ty7F*;&%BIZU?oqOYhLg*KmzA z;&7!>tRCR8gdcT+c%u$%p6z&mMrrhWx1Tl?NPAigDCGgNCy{%j&ppV6#KiHt(!2Ju zdRKFaf^yoEl>;zkGUM((87=zrrOlb%yqV%ge=ze)?Wsx1h~Zd9TPyGuM2bdYVumT%%#&WZy`m%K{_A^{Wd<>UYhc96~c3r?KA2v;kM1(`U3w3TI?|>1l zFafT|R)L7BL8U(HXspbUE0!VdJJ|0Lv^CY;^#vmMRrBLcn)+J|Q4NE(&7GwsNnCB0 znOMBj3AnJG%pI6uS+K;(h)&iY2pI>{J0r6Chje6LETP=76?O1}7Fq&I6{`!2i>YnB zubVjT4z+*~2KuOaQVXv*WxX>0*->ALeHJ>`YBpV3QGvsTJ!odw!j??r%fh`oNiQ1} zrAe;xuS6>EW-<#hgg`3PKkZR)jL6cY(jx^QdPf^#3OI#e@yfRrksPHw1l7iSBSmCi!g}|LCDg*&n)bOhmJC#&J*==i(ExizEo*Zgm zibzj+9U%#N>3w>G4nceYgv>o3o|Zn<`aTE*Tf8#Pc>OvmHBZLrT1Y}uo>@V#)5q8*Otiwr zte619zgt;81g#*p^05rJs5iUlfOlt00bb=ZdErtFfxXZnp-OL}+=`Dk(lRC*k{;wh z6DfSoYRpa$v=QUzOmp$}EaguGSRf$A>N=HJrl}cuM);h%x?+ICA>b?7)-iA1Rh+v3 zCVC0v%l(8rJMk06gdn6ux?J}bQ};D&QwE?0OE)z^QS?PBBnC$RQMg^fsvw-P+%J~% ziLY%S)&dLoHATaPBov-jWKsk}D>xBZ!*Jbv5KIYcWsl%gp0}hC$A=x8@j8~m6FGZ6 zh%Wk$0M0jtDyP0~|M1GQXpYf)goHvXXt8&jkb$bI{AhaapvqqV9&D zGy8M{EqRYnS$W90WFNPvL28Tq90;DK3AeZ(E2E|)S{sJb(*I;Wwq`G@UAiQt-rQ8e zU6q`(bh@aXr>f63olXtx1iu}k83>>ykB$b0If@i$YR7=8J!4pfbZK`Tj;|u+S!W95 z&X)2^+k_UsGAf0cL2BBKLp9_a89HpYRIZs26uJ1PgjA}G{|~ynHb?XPW=zCE_`f>K z70G`VYgIo?yBuVwZKYuKN`i5S3&RC8+#EE)7oUrx_Iz`ideojEEJMv`-;jEdVQ8QXacEVAJ~XD)vRQ>BCrZo&hw{fHpfs)Ob5`$&^TVR^u<;>L== zaNEp3S7Sy9Q89h=gyj_v)%encDO-HC;8znf?~IKgdS?01nU97{>5yoYqm-cMMraz$ z>d2W9x(bUogpVpYB^}I6aRdPd!RrIiq)Z@MLV*~9T_sj%H-V^E@PC{2moOjlf1Bp& z+Lz(iY8MC=!lH;&C>C3CcgVA`P{xum7PB{pRn~XzH&aFqg~Uz79c)#(>lqwze4wa$ z&L^DtF8OY+uUYu!b%;IIB*)0Uf}^Rl*;s$NCZ}a%nTQcgTe{yNwJZV*UV0lQn}V3m z@)GXo$2*WewMy2se(Ll!PH#e#<^b@;Y}S<<3`yA8}}Wpx&Y<&TD>1zn1Ab`($WYv#EulI zId1S7QnrxbDm3n)2;yc~0%Ho1ntd02l=aqo{N(4Gw)19qGZj@z zjkt{~ZXZVN0<-3eaYX!+u0AFQjdLTMbee^rrA&UtnO|KS!CMjCU!E3>s|Bmh+s-Vp z7~#B-AfR{Ek-y;;e(1`y}N$e?%@I^T)!$z@tj%v>Md;Y?=Dr(1kJc7QGGYfMdFge-dU z*w?V4MVe}Zptm%n@`CediF`eD``u$Ib7>aQs!q)`fW^(802K&z!2@Y6Ac7tM;p%Mf z7LvI)K#JDv`@WPtUoeS+=oQaaJij*IO5mjNerDtw2jEL5{UGM@CV~I8d+%giN}(Hx z4kL>ZeObw0lo5^$;$H_16lMF^CdYS4zSL`D?Uk;Wv_jd$T&JC!{fA?Ac?GXz??7S< z17Yo@j5Eh-wf9QnGN=NdR0IS56zvy0aHeHG#9q~=a6U% z710JxEp3{0>$?T%FBB4c-RX94tyx8p8n+po7(#(1zD4rjA>X1xQK)iNVoIq@GU_~t~1wUE@+2x*V5+Trn8iQ2v;c0_2)ipH` z3@tEXcSFt)A8eJWNslzPw5gMg$fX@WRG3LrO|5;uZ5P-kbvfn`{AgA-g4WD80i=ip zNC1GXGYi8Bu(L+;eajFUSU>S#%_AsR87O2WXc|Kv;0dHr$F#M)T((6&z}+tx;!8OU6tK)(H=F!t4IWld{9eM z4UD;s)B|bp=9$WdBz-t*PT7(Ld=hY(+<=#wrQhA%OA#A#I%R*{_aJGUsl?QmmX5OA^A7A0B{M z_VJbUkuHKEv%2fhp-X91VANM|Jp5E$TBbV%o2g0X`jy4myPMzBM@s5{Ji(c9kYK87nXzZGCTMzAg@y4d z<*dYtKe3vfz=2e~-NaH8xXEd=6i~JyBV0n6P z)h#LL62yBPJ85eaFYEvK{%m`!JEP&i_%TtT@l(9>^`dr9L2FF zqb0e4jM?1zZt_;@iLBBn?yRF6X|$NI71P=oPu{^TMt_J-_-Y`F2z(@^ zMIv~sf*}JHlOWcSWpDn*p?Dq}`{irZj1Yyi`qby0kq?k5%ZY5U&O$HlTjpjEl?2>@ zlZsu(f?4bBmGh;TkRx~GVPyasal*Qr83IU6R2;D5OSBv*v1;ior*%Ch8GXawsvNPm1bjuRQMB4|2EDqyxa+g$L4TS?I3y{}};uLA`X9~q9 zr!>HOD$SpJhDJ54{IebZToc=wQ@GIAoCdZ{{rk_3UHZGHD5s?}QvNKCpS$H{Uh`ZL zokb^9^Wxy@qv?A&092IWCmw`Hwj~~f^>Gt$8Y#+7(3%GHz+NDCbp7w(w|yV-#-hG* z2gxdLf~C$m6f8*gxKXL4t9nfhXx{Y}Lo`{9&YH_#sH~yABAA^U8Mtn#@4O|5$6?|q z^M^nbKA1I}_&YHAPPb&|BsC`Fg=vLQmIS-bdQ{%GTM<>&0MV#4Y3kS7`i@WW)7ow5 zuYsU$msI%k{Unt%Xw93E5AP`kDy^;W249@w1($lz?F-42Z3oNZdZA$v+62xr{NSeP z2U9|vGKnAYd|1Cr2qO`eLh@|u$by2_xPN836gXXZH^Jg&#u}uIywpgLF$3?kAK0RK zXxdjQu8nIFlqwwPKGUKG ztR`#C*$`ON7tS4Q%NK~HW2=z#*VhOz5)w9TybgWQ0cP>_afsy9Aygi6{=hy4?&=~+ z)O-5IuGm-^6$yxFF_yg5pR{6?n*C_xT3w%$l>#~{O4eRUL-QLaIlnm_?wGz#wu<`N z+t>k7WS}2RDw3*(7u#zu9hzxaZVq~&>3SSqJmcbww#)4_PEwmwUAvbbiwOM=D4V3` zqz>A8fL9AQ6T01=mO*@9qQRG*&+9}mwvkKU?J!(pQ))c^e(+4rv#%A*blg*-T%ETL zUZ{1DvOUqTK*XI4+H8cu@deV@p&C}f)NJg0%L2noqZB?`3lIBm{r~1=NHHIpVSdq7 z(gICpUbg%Z09>s{^)CSB{~GAb>{5DEen6%iGeE+n=;?x?V6!rQqmlnnt=RvOuvouE zrSIe!%Qq;Q`9Fwc*8eJEeS=a`X4!#JQWWF=QNdUeh|&nKSvkK!#Vp@K)OQQkH=&r3 z^WVFF_{aaYU?Flb{WnF5DJ5Xxd&1K9gp^vjZzYWNTYF<-BV_uf$#61#(_}d4*;omg zz72rAm$-=k`^Re~d@tsZ|0b*W`ha2o!#n<;;Wu1s`;Bi+%l{p6m;VyImX=>s$`YGU zj^G5?SMQsw!a=Y!hmMB?mbBs8kBBMxOi44 zx7ESryWCVUe*QRo@cwY|bk%>l+Q0ewkg`~8r*7-J-U0B<@cEd0J2q+h5a&jpuz|7g3uwKc%VEcu&OMlG(C*Q|(?G@f=63{;h28bex(g}Wb9=AZg3 zNf6MsLBJ6$T@t=S!yn3d-PhN-xrBKGhgpHHuiXq%XGuMIDLu3F1uZj4-%s-K@Vlyr zo>TWZ7WHD!)95V2t4)LCB*qG!o8!YU-G=4!BJB(Q#c`A&^tZ=4%?|0a3M$1zU}#be zlHBHTAIDorp#2CoAN{8KnhMP^EgvlrgE;lzb-=S%BQF)kn<*M*f0}f}Y$~}{_6;~( zN4to0rCZC3d87k^$S71KVze%rCB67PQUC(SIEq-}s%5xANGdl+`rrX6(59o{)xkn2#}q5n zjV&huSAno)Vln|X=H;L+%_0Y9IEJNdV(1mu%MjN{bwXfTL=KPey4oy;ffwPh8%kYV zu|1nV4~)VOr5b@;aX_bqKA?8L8~%XhmjJVj18Zi~(A!o}&FzoTOK-82^p2qPMpf3P ze?PWtB3FfSYdeDlUxC~)xTFJFOcasBk;!`X5<|H%!!%~L$hC2mtiXQ2xo$7tbP~-4 zP6q0S>LHNB8OB=RmcSeH)MD5acPiF2>{%Z5VZTyZ8^yfo4)uln#nnO5nIBPI(F0g$ zLwk>)zzyPp&B~WZc)t)VB)qg4tk*ww%`L>c0%moi9NJ{$#1 zH^ZA{JGplTIi}iU_#blSG}4dOHBfItb*dZ91U8BFYoah)#_EqWZ2cmixg z6&V{MJ>+ILv;-&fQ0%9f`*FiyzfJ2pzV^}h4}r7WtzfO4qJMq}T{!}tq&gMs9Px&* zT~tCe74~?iT#VT1eivk+P1cG1PGwK}8BLmAz_~xdY$gtfofLKkU(YY%G6j@ldH`+U z;WeuIR2L!Rf>cnXQ(Ir`+a&Sb)ML@$oS-CP(-7Iv?nTsHV!xVPC5}YW2l4kV9=1xG z9R|9YR;Xy^R@%*K%m;qV=PeV6!#&zY1H5IMe~C#&vcD(s32?R)Dpt0P2I7Iin2PT2 z1QsoZmy$F2fGKB4ph+FWsPU3speHW60MH6Jivm=6KRapmhXTh!$1=LupYGY93 zybU#3v-m)e{}wVW0xtU9|P8`Cp&4&jbJy?`UirteRP_~qp5y3^|aKjgEqWNDkdXTkU2G^ zA3WN!FwP)~f>vWwP3ljcL9A1m%60W0YIWgYF$aq8)m)kcEfaOBma8(kLn(cZ^L&EF z;Q5S9j$?=c!@`R0?BIrpQa|veO3J)!+I`#&E@I#lj?LO}Q39~FxWkJNz7KO~lLBYv zy0>j7mb)n}d=V;i<4y)0=y{n{lCW*PL*zIy?1E_cb~MQet!i=u>VP)z5u15P^r3uw z%=kZ1GV<@_h@2mIvbbz`zd$bLX-#+)2N&W?xl3)g;4k}>7YzQUPO@GCITwf=GLzh48NksL;xNmzP{8JR`RI{r-3K+a zg6A$;DzR(Lt4(|fms(WILQO~a;_xk2zp~EsEqIJWhXN6H^z>cBNY2PD(j=!pA4PDB z$ZyPm&D5ABpN;cy=&|0>TCC1+<+wmc^*t8+Dt6qPeL)+Xh(urRzM9qF#`q|Av=Fm6 z72+9InBN_4XGVxxiI$d_zxvHX{|3FWY77(9A)g38R}6xiwHDr80Jur=Vn zbE;>)@PFIPXxvBf9^a$7Ut=+VyCtZDQ>W`#H%jilEuFAY>&|+3SM#A+fA(dW=9hQ% zeId)oC8&Is23FpZYoYD@ z?%Z5Xj9bFytx^gK2cG z@a*N;QWjDFlBPMLr>!1RC2Z;mQU?4OeL<(*(;exHOLLG{Lq%I+%RaZ1%xS#fg|i4x z%MN*16Tf4nbvTZQfoNay>0q~d^9hsxxx8?Uf&IR+6QfZ~@>&E*0)-*oJ^vdafs_1< zyvxleJj+8jeoyC;P?>b@cU8eD__n zT(CkR+cc@~o#nhfPPAymY%J$mpj0w{F3q@Du*@NU4y2^sdm81Rcf@(A6=}IeIF+z+ zCrrSoDnsJ6@c1+t@}PyoJg!Tu zUCw6wU|Pw&+?#P0%c$+-GCw-7xuf2x0u-;0&4PjXzz$2hZ#64(y&>BbS)(kLG%?Gl z`2KR@iY%*0aRX*yyA8R-)oYmIpsk6_%^5k-dscp}Zi^v3WCPO(3FCPTC#Mm>VNTY0 z$GX-2(E@}AY7A2q33h1PXur)-EoH)oi278?vi;AaLceK zC(0Y#bqp{%$SV~dNUSQp;pr;9a$mT!lEa`Mj?W#Bx%!2&3~uxrZkf;?xNGiAVO$po zzMCZ@Bk=Pm@~0pTpps;pcD?gq@lgc9g|^0 zfD%LxQUh*SuxOpuX3~u5gMtwjHFsirx!o_Gga1mWyfnYf*p8p5e!i+gc&%lf*VpE4 zwFx?){CuqS-%(9W&$BNdu@s;WPvkQgRPFL#aq#CGl!Y(tV5&Lt2i`zJQ}IN2I3=zG zC5sN%SpVnZP%ag68=ps9-LsKsP+$qSiQ(=IfaJfmqDWPDhAw*PR|vYsl)A;JNU-Js z#@E@Whko+TqqrBS;|Y$j>4+qLq!l=h2A!!;;;jwcPG%}l{O|5W_XPa5Yx@AMi0Cu% zxKxkZPu#9)w%mWTAu@gf4hA{%HY#|%m;v&48y}d>zv^S6XWIo&C>>zU zp~*DM?_TM_WFsd!EXg!{Oh*L4l!wBATRWH`!Xd1|1da2WBi zdu8{gm_ReWiBqblzgz7)<1W8qT)IfNb^@?^PqPC+ zkr?`{l74PJ>SmzM7~zN_z_bYBK&Coh&vb5D##??^Lp)`Ta+iWMW@P~enO_tk6O4Xw zi$h)d!JCVX%wA118gMP)@~#v3!2QUarL7~4fk=BB19{ml^T-Fm3gMRrXzt^e@mI#h z%;F=74v+Ppd38e9V(Lqc?}K5sfkbffHNr5iJO5b3V4fpH-&oAzcjUw^weIr*krAag zg18nXa3H}roLOIBEL8>=70*B{^5N&#rk%F@5ISZ(j#U-R858?_9@Nii17-7EeIq~t z{(A|((JmzJGYSP94dEOBvyqp$J6-t}8J^9cLqz>sVDrN%(0X~nv=oE7ZTV^f(XX_q4|DQNrj<_U$sW*a9HW)%*63GJmn*^Bj~gi0K*QopGqY`f_=BGL9A_x1H8_$9Z8 zuAxsiZ$Uj7E2fqR5-nAZTPwQWZ$uhc#NOx5XmxxL7 zUJ{2QM`T?I%ogCt_Q35tj0Za0(E*ID&!=&~O9cxJ782vg4eds}oqoFBT!7QvKGr$* z7ynp8Oa;z)g^RN*4TF2%doHB zcGL5HtJw~VS>{kE0T^ua<~%Kbm0o9P%3pax4T7m4NFld9|;A&q>#3RydDcljlSd%sy+eZHTcYY=c4zu7z9_n&J30;mQJ z{Cp^?vD~`6&)Q0c$)df;>saMviDa`!lu=NK<>q8TDw+v6if`0mL!{D9Mj5e*Qi1L2 z0j;vqCXgMH8A(#rCJha)jvojc4>8wWU-gopN-5u*kuo$_?Z^Dj7rAuw!)7ATrXm&2qLR>2foDi8)>-@lIe_;w}i@FPUhq05y5g zwJdB79{A5ku(yC)TNnVVLd!YHGE*ZY9=;!V}CY^y*eo~g1h73tW}yM)|?w7K#JxP zGWxce#crmhfZQ&&YF$Y~dv*f}(7p*eYNm)Z2f-aM9?--~J%#5!Wfs0hz&La!3Z)^V zzzz&)d%;a=y@G`OmLlIpnb6lxEniXDqhrKiL-85rMEI1UCv3gZV~nuXX{cT%n_pp= zbcLnP31@ZoohY2M3u@hMlT^i@2o2Y^TN?*%9N$_VNn;#~H4lSbB~h0Lyg5ge{{}IA z9Ptl=4XLa6nG2Sd1c=0m)^fO!ykw@8x9zj^@tcc*>E2)>kMy zd-ZApW4s50#sNaA+@xjLKgEGNlYFPy-&YO$1*H zQbB*%^(}oa)yx#KuI09C!vV$!cY-tC<<=iOeJUpzo;JOu>}@UYua%56f{_tGwNW-g z;dIMfE0?S2CSO=DS9aUbt06O{n?Bm~%)pSZIwXPkSS2HOI4tRfZT(c9+i^Fz7-&I2Trjcba2hiykAr?&C^H8o z;SU8xVVVO@1Mqhl09LiK*-!F2WRu9P(wsIm9+@OOZbnQ=K-Z|QD#~o3l+rI0&ecB& zw1&5Tv;>GvgWK>;cIkw$6gmul;6Ja=jXv2^oXoc*n1DL@U_xwpS>_E6|$DTgu zUZ3c-7Balxl#nxQ@_mpnJ(kD}a~7ix@+XB+*Wd8Ha?1(CrEy{U0qJm_YfFx@w!_Oz zqT#*O?dSSDJVHv&SnZIjQbdg=7h6G0RX>~MOUmOagoV4CvQ8!*F~TIpdES@v7(AIg z%O$PqVvoF_0Wk3zZ(}t;%TO>@#gIL|!MI>v#eR$MHvsX?-mhe3Z=FK1eZl)eFj7kw zK4GXvG?0oUD-7HgRhs>}f&F@va1`zP94O**{M~41_x?xVB-kGM3#Wo?znQBhtzw1q zGsBOr!ri>w`9tvNJm>v`bBnNs-WTrZQDf|PrFRziJ3te?Th5|rFUc+QiL57!?&l?E zL`mZ|?KB39hrIR2X|Z-Ys~LU<^Eec0<#uV974L~7*3{jlLlFB@bCFbmTfZdOnd2$h z=$(Fncp;+{70I2>5uKHQ;Po8!#!X$3qLPdfx>QrHdH1-oKSYYw!;^Ry)w?~X3=_dH zfTdDx6<{CO&IcRe`&UKQ%gKy3qzvmvWff&NuOjv+jO|j-fvRydTj~fliX5;izGgx& zE~9ySzoiEu2$Klb96LS#uND{)iIkJSk1qIqq8ZoDqrB|Eg~$ni4)Q^o$wagnSXhq` z-wczPtuc8gQ0o1}sgR|SW%mH-T7@e#DO9mc0xF9VOa54YMGf$yO%Z^IdCY{@8UtE5Ss!L;eJ~YL zh(lZ>Rk>$TiUF$)e8^W~Qvo_^#;8Np2lUUOC?no2+e`$N%!XVr6l01&Qt|?e`JGYU zB5_i`kUR%FoTm7mkN5<+_&tc8jGztylYP)2iX9>+l3H+3^gIf?`jJZ?ommpbT;}30 zaQ3WJnGS6Ryf})<;1?O|;GfqO($=Xq%L#eeag$4{nvp{DqqIJKdd6L(xtH@jrm#NN zjmHsI*hqSeFe%u{ga@=c^0^4p$t?Z9y#VD7h;SbLb1F#2S+J44KDvT99BU42Qj|HL z_1kTgW)yA5Dw<*E_%`YKhJ(uM)34YhXmKHi>GL8#Pz!a3eTtpHq;T)&h4+K2@zbc; zOXOVxTq8`n$Pg^cx)u}<5uQ99gJbhtRvYrsFAq^}Z`;f1Klp+?lpiUXl6CE(4*+pc z_Zy2M(y27-d46LKOSSr8ge1zb>Fp!u&tkL*5XaiToDFm#u!9|mAv;kH2C_tm{BXR( z$B@I#dA&EyCT?ZB}3>AYX-dTg`=-#(CnjUtd7+S1(H==B63DZK`h zzKh1G8lxHDfW6d08ZtGOu#N9VI{*r_wn>$!Q4lfVso&34+tPdE@3y5&;WT~?Zlzu~ z#xp53Gm);>iKuZ^W`bgxj7d{lPe7HRH!2xzP5{7TQYe{H!wl!3wn9aI-5bxzI`d-em*y9$D68ef3 z8}_}0y))a9QbAh!J%zwkwr3~a?x^zt!O={iFN=?gMREAl?A!$_c4z=-xpG)bCU_Ue z7uD~2fZs!v>Wntpp^1R2Rc-qI#RbzJBsN7biS_-TTW7N}d#>!itzOM*)SE(NntrcI|bpxQY| zT60QVx!7Z|{=QY{%gYZw8);L^A+(X1B92)K#Z@TtFj*?s3yq2^3xg*L`Mt)NUk@t9pZ(|VAhIcf|SC>1|6W2X#s8SrPBySUR z|LSThL7d{fITEqROV6jps~%`TE7yF}WW2b}X`b@KqXa;y>xh(c2+U^*Qa-xmddnR} zT|wl$$*W`*dF3d$?cI#d14JiBujmZph>5~pMP3~vk;?#*K_kOljR zS5r!Dw*Wv^L-`NCuM1}2WO}(6EpnWpVtMb)ui?NrE<~!Ya^YFt7w{#X z!^^2Z*Ig<4IXuXI8FhRVws&+9#xr#VzjMrci=MTK|^7!EAB z)6hOBYigLN?_)^EyiSmZhV;Sw^jc0*&6eDNwo`yQz8(Z~s`B-WMEAkV(I3(lo8}=K z_Zq?N-R(G!{_;N)6rL9zzHV}_EDB}EKNs^1-++L2)I#HBg8w%8KSe|};)og|Fly5Xr%>=(EV+wE;5OHEWDlhNz5O6w}TQu!&2A! zeq|W?)I&b0^K=WZJ0u;_@g7hVENCpe4i!lYX>cf!a15cB0&Q_6bKgFv4dId`jg`PY5$x*t?ZZl9|;^_ zEIRsi4A5%M^#&220m{`kSqbE5JxadI0Unw`0q znjhLGU@%VAgnNM?bMixFY^GEMy}A@+Ca=g>Ajkm;)FHj?UKa5UKt6ri#y ztPLz-nkBTxWN|aNux5T9w=?T|^+aIoiEhz}ZhYnaf-_u*?%x$2gEC z*H?i5lHk=F-u0`p{c@9~sqg|&8XuTPm7aT_mGp2K+vQ0@d%(wk0adnwjXfmIV~x5A zrBy_ribG>(eim8zf#V#Nh~qjR8!H~ml`aI>7RhMp^P)Im0m7NEpGRSk#e?;osSO&t z8yE+E{L<{n!*bA^S4uwAx+wMFleDEJ*V*ZSeH_#^%V!7);d`(lk}wC{SI8ATAaO39 zH{bst{$z$TR#?EXmtHzg0xye_kd6*#x0we@KwXLNGw1IAWVYLF-G|D7)VK(ev3ZR3 zVr-$=fIk~>+2QUkc(mDhA)RVE`bMpZh1=f-*3yPhmr~-)Y%%<*2f_r^4i6s2h7#ME zpGZ9~J11ekZf$U=9&-akUY_O2gi>}#e$j$_#XuHfYS-Om<+#2uY8Bs(;f3SZr-F`A z*0WK9!tuA=IG&8nH-&)!HZ({L2ZB1^O=5Z7?7C)LKaH*EKnsn+{p&fZk6cVYyp2Yj znUzy>!t}k#&DcIs#0|VDKUe;6CmH6t(=Od;>vp7miOCJyMDa1!NfjT-%=7&?E|oV? z={gaAW`P55&Ay{w5@E%9i>G&FXB#d73dbPEJNp6_qngI~SAR;GQ1~`#O?rT#Vtq?b z-#l^F@2V^o*6+qF)_?CfzRgxCw=FPODKqL&|F&kavH$DP0%v9ZCa0wcm_X8C{}T~p z`c5@|8??TAx|q5C4Ggk;2OpVI;*f!{|34n9mD>M^SGz(G-{KYf{}8XLbT_{ZR>%N^ z*slQlW(XTCR4FOiKp;ymIw!%|owMdb1Z(eQ^r^UK^}E*A?oacOS3)YKaW#ZcYqw?G z@XYCL*wD652b+qIr)sn7Ej_@`^~=rut8CxaE>HeM`lT`MWjZ|>~;?q@^ROmc#-G%Ms9|1RB_hz zdG|D#0@wZ$wE4b&nbF;!cyZnBXSy74`2ModG`*dyzQ7<{Xc><|s{zG8Mi*ElMa@b3 zcr{MWP({IQnn^K7LIRCWc*0)c0Z={)**VZuBA1?uDyphKpKdud5b%2qD}t|hOkCt0 zHZvq;gHaaHOfH>)6#A zbWP-TQzt8kkXe>~CTxRmm5Y{P3v=IrdwNgLD3N?BdUogwYhpB=_S{h(063nVYqrt6 zLC-d@yQ=Wk1or8<1Up`!R@%r;&mERygEGN4 z6f)qDv!^fQqP#o9`cj_0*?;bD!q<$S^th>|eA?Wm!p)&zsD)BBIVGsX+0PqA^ir)~|!OXE^`YTP> zrlp12B4SZM=Y6KW`V^Q)amh2uNTX|>N!zO&(&G-V5!HZu@$e-4mZ;_Aj<(>CkVTV@-EFk6kxsLc2oVQz<(m|hG2i>63RE5SlDk%379Y^G?5g@l)_jn{;h_ib_7JN zQ5GfUmAtm%(s_<+dZPUlxqKB>wFsMuR2|DrE`-?<~zh3vfEaO}86{*d*-sZOTdVuBGngB5>15lt8qV>NQN22J)b z2S1+^46u^KkfiYv1dDUMf!%bbql6{+X?lzfR68)>2%f6jq6UUyRQx*xDIQCC~a@N5;?-6k#j`9H9*1yhO|VWV6Moo$|XKT*jOo9AY5u0 zT+s1zDsIaWF3*5^qb!&I!`3?nNfNbdyKURnv~AnAZB5&*wr$(C&1u`#wC!nq{l5F0 zANxD!XJy2SjLN8ttbEpeU)MUqNYsWmP|ql`xRn@#?n0?oCi;s4+g_=4IH# zfjKrF06UJN*4_-^T1Xu)s6=?LM3`F{`Z2KGG|+d2fp4(=hIt?L#F*|f)h@M!{ICo{ z+v?Yn&x#RimwshxKo|ollHSe#VJ#35yD>@3OFGMdIBSSUVjmK6L-Zi#HBf zR36{mth7D+4plzb#6Y!SP=OV!8f; zAY0#ChVOpwo4*&v^~~|HC#;1Ex83h;b!$Z!0=h!Wrq$Gg6DdGf0ea)HF($VV`Kbzt z5klP}y)eL8X|nhX;#9cc%%U`7Sh!lhNlZbMRFDxWxWh>ECx#o*yV8QjWQM!bR&SjN zpgi?A#0WEkT(|RG-z|Z6LCmsUHrE*a@*9uSbO4%LzTgpBvqZ9{bYWC4qPzT;Qhgf!FQ^As@%tvwdS+`In!&JO% zMoL&aBD`hkx_MHYOM~!69<^jnYUSb?pxKH|T(4O^nO@!7d8%^uoUsqr_DL+ww>)Dk z&eJeey`5r%c-ssLtXUmSqVjLSNL~OOHZwz2YJ7XWo>s_tFP0l{N(eoJgD?tuEr$^c zsill@z4k}9zh7Jc9;soD@SMO#rYr~q$C{^oQz$K2)jbCU9@DCD*op}f^Y?&P$^nO zEE?ZNPZ7rQ#o`{y8!WFCuHFp-)Gk3lNNnieSs7Hf6Zb&OF#c|;MpLUtm-MgryBarJ z&Y~8{o#rN0nsLsS^c$}pB#kwA7Iv$Jb^>8}8Bur^YyguP=@~J*Y=PEh5ReuC>nbi$2JT5?JAUVC8#&1sU8@3?gM-zmJ$h#c=oxyYB$gwp zxotm0W9*n?pD-IGea&KFmXo*i;h9E@%sxT{P+7Ed-V+c@UJ{Fci_$@WPkK#94 z7`%9~YNB={h1V>`sgN0Dkp%uM+%#?%9YjPtJ`D+yX#D_>>|?tSs=)Tuc;g&q62?#g zR!p8d@EZ$;-f=>YVBLX1Im8U>fT4BWefp_S^?TjOUQPs1P*_-)&Cb?wONAXe=-3JF z3W*djV2>v=P#2Fju`@#Dnw!|W?u_&{4duDdh+XoUFfPbe0c@c)gjUB|S%0v-PhNZx8 zqMZRGMbygL#lf|hskF2rE}K|ula&R}`$?**6Hk)tCtyjZ3SQf0#!95xV}Rf6x#V*M zSxxr(JneqbVpYM(Omid=ptW`P^$Q}#a>WUxAKIP6CVY)Vo%a9a-&d&YGGb<_LP^4I z6OFDg(;7=I;CMaQvANkqX#Vb08}%t2WF!IDR%r4^&I*C@m0&Dz4mnFxQnkhk=I71) zbye{ad7F9(qG@G)G%{_%q8@ha*NmN>CtrN)5~#I8Gmp}tzc@I<%`H&+q_i?{>5fHw?aO7m^H z6V9*#b)cVBWbtSIdi^?%)iq#AmV=&JkFCGZU}anOc6MKRdVmn|p~O`6 z9+&WMc`sx4!j?VpU(*3cLbZP{7hOoeQCso4GBLQUSNEmkBAhW5FH_t;*gkltBM^cV zq(OS|9%!llX#~!Dvyp4*6QPLQUn&ElVTZ{a$I0P#TZ#|0EG|FO6*395-A{h$Zfod` z-QW5l5T1?RG8*NP=(yaf$y$Spfc5r7j4_EiR1$KU;C6qnDt`kko9eu7kx#@MEXlgx z3b)D?QD}$|jQ+$O&_wyn(7w-~Wf^bPa}ecRpNG3AU1U#)*@JsHtl=JTty9f{^#TS8 z;=qc@#00Y#Z6MK_FAJ7+b*?^O%pzl^5L~lMCX5F&gFnSf7rOod)63QQ)kshivx?e! z{On!t1_k{yK4S(nrV^dD2C+!&1^YdROBnVrN}Gb{40cd7u>c{cd$s5nXpo$E1dS2H zX`9Q}fw+u*fd>b*4L;CL!J-4K`TLig2>;L;nD1ERRM~I&edJ+ZuIf zwH}1ilHq4(``E(Anx(sF42Efi6=zRK;<|rfTU5trZQTNRAhlA@G4ylsrf?UAbq39D zG;iPjh6LzuuUECxLW0cg7i#QC(5UPzkoA|{>3jOlp5Im5$6Fh^=^fyL=d2G+OY$ac z;s4%=6;6wcL|vUO9{wP?mNKl+Z8sTf^l>+EQ-C=e+iIe2r^5f>jEi_M(>>to5W#Zd z55x__-FUHCdYgKBb|<5ON5R^uc&{)ob^h>kFV0E}%9y;H=up~Db91U`S8;cSvfimX zse=1UOAHNtzU;DM(z9ox?T>YXJ-=_g>&!3xB*-yix!og`jw`u>>tqfiTG!lX7$E5+ z%re7GvGq;3++OqYKZ7q#Q%E8#<{u!|kA{!)r=rO8Q%Yp~kM^D8$FKL_YGT?Y|NkiF ze@cmWKa+s8lSVN3v~5#Jg#R`hv6xty>A8MFuFK6)8@s&{{Put zR!#rKWEG$R|H$pRIO#dq{@>MXKhw9Lj^h8b8V`x>e_P@i|6_?q{;>xBFW)?C+JG|% z1%QK%>wg2cYIJS?6a4z}>;Hr-F!)dM>rPGCtA|7?i3B{bv?jps_Gu`$rxmls%v~d^ zN$IiA-CR<-Sk&569%;Bt@6MI;VTwh>X|`|Yr7LS%&7d0q_;TH~uf1+v9XWm*Ib7_U zVbITQJrS_AbKfrA1@O5M@}up3oNXRtMYY+_^jV1Mw05?)d%lOFqkoJ=X8x%8#OTzh zJRI+CpXJoH4)O&0e4RU}SH7v~|1&^ySL}Jc9}sfO`~2iQzIvjUQcA1`JDU@U1R$KUP*Uf6SbSg+?P-(3sU3X?(Y1ce^ms4rHdcgNY zs>OW@45WbodZXJ$g^1g=Qx`PVQ_*23?Vj7__;v6JS1d9+um6cu_L`GbvAi$LrDZ<1 z=&g$9YA`lPWE)HL5W4+t=nR#R7x8yO5o6T5^y*y`u5ZkJbZ&-^TAuz1Wp#&U=$(|u z&bf{=mr${)=1D%VOq;LnqG#3CF9rbf_5v)O7o_C3AAI{Sh`rz2^`Ii4q3i&)28_ZI761}{FQPbUy{rI4qyA455wn2LR<9m zh%5=Ll8Zi2V2C>mr}k zyG&(7Dss_XX!a#MhInK|GBRk~67qO5@Cx5TWi5h8;q#PO7CY+c)Wf#PKmGFK_%`bXb&#$2z>BuVkexJgC)BfDc%Qj)oLG z(Q@o-1AsSx#jQ44qQgTZ{BIkbLowM9pbwqzoD7o6xF#@ddC-1&&3GF}=c8Soy17~! zd1_hv(ELU*1WZc1y@Mdw_aXek2P~PCW~yaRe7J5@S$Crtdy{#L+>P>=n`MzUypjI)nmE0o*>xzo_r_r-Ry_4?{Y9qGawkv1gH#)d%rkEBJDdM1{VC zMA)&Bmq|Y_rtURaQeYHEH5AwNrA4-hc`_rv*NWn{V(i1;Xzg)Q%hgXo{SB!?BeH`VmC9j!+JtY|MK@>0I8!}+fDfDT5+mGM zjTth&C!Qv+usUU!*%-Aq72RQy6l~V2(6o<~ai+d&Oz>%;5dg{87JNjSaeuBB-lSe{ zX}dOT*$wG=3_LJhAhyQOtg}JHJsn!NlTHmkmJYFU`FWQDx$kx5(-Oc=kQ5%<=q2Hkqk%PbOe^y0=w6Fr7vay!`lY=b9G#C07jo{_Lke zA&W?ME#)ZU%rM=ve%S{#Y9*SSriD_5Yb`Sk6o^69l>Rn@ih17wpnNLlNt|OW_9zmT z3m#dxmqNN`a0R2LpZ0i9h$MGcM-=wkP|M9x5je41*CArSg)ud*%5>jL{k7h;0UM#P z0mp}$yVArl+Wa&tXoW09lbZ>~`& zJ3IRT$VssW-H0amN(KH2#6HN5ULvIV2S44k;HG|S$oLyTX-COsO8)X@=MKJnosAD? ziFp&b=io5Qn4qBJM0k`bXHWr;sWxvMgG%Ec2P;+k&D|meDD-dE;I1}16>9|XfW)3) zAp6axSL^RXdx02TW!pzOi}lB?uZLdN<*Xym%6fxd$6_(}kAR;3cuA8%g3jO(#74aU zaMJro$VVU;D*25z27B_1&SI{WB8E~?QTQ%W&*6^tx}_(1OZYm~kgAu&Ka_I0Ko&vn7pjB0lxLmu;QRvwe|A)WiiNYb8gFZWxF%ApP>D_ z7y@_s>yR7L{{<4{cTWduJLY^*28T4cBmjDAK^~%morQ%F8DocTsX%#wfeP{b-;g*O3LxAn%@> zefC)t2)*EUi{6z;!|qNrVOj4C_*L?V$pU>Kz$g$`B?N-sDl;+9D+ThraHB{6xu8C|a5XvP%JC;<<_gNKPr$FZ}3=}pet zLZ!Z@`>GwomFn!!vwD9Q4Y4Q#X@zsSLTUkFaOrxm- zP`r}o9DuCa9_=^kt8>{+x{}i{s-vsjC2$$o2XyWjjVI_q zq>n{p@9TDufP?DF|1u;mgP>;#Mj!+W;2syoU12RjG8##)#&(dH9&BXM%7VXvkF=x~ z*&1r?h}QI@PAxW4Bdr+Ji9`!@oO-TbJ|Jemm|S+?UfO5l*&dd++cxUu#ZqJvsNg0P zwE^td$^MaUZ%3S+pk7w=HYlT139?`yU&ff7IOx?vSFMK@UddkEgggg1W1Sn zLMXpON2`QVQ+Cnfxc>plS8Vg(#$HPve&|eRhm`ugMG9_d*FXF7zw@C>6PFnZ75%i= zW-td20SDWLD&yq zR}wgWpp$rVJN~EH>6eZRz?IicKMEE|TsRU=lIve4JJ=S z0eS9IyzSa}9R$W`|Kn17b^*Emm@K*iF{jG0&$!4PRw|E33Oow;tm1bYW&KY-s>MWY zZmEuvkwp$)em;Wc-@Sc}f)Wdx7C);C&-MiIdLJgvnJdjso|eZ3o?Y%lZfNl8+<9fO_Z zdcyE}dz4)7KycqKe&P{|E&Xo2K3KSU(n#l-V`9_?H3_$J3O&Qg7}Xae1Q2^)7jami zH%!$Wq&<~tG>F!6f^PbtXJ(S2H(XiUBJ+GPfNnZMG51sfXtF-<(mo@JQP(g*6HJ|Z zZ$JeZecKF{m#`lqiA^9kckninp+(Xe@P|&2aZaFCg;a{2Qx)~Avb77OC<^Y)S^R-_ zc2F2a8rs)46kczC+1|MS=uufRgN?#ws*A`o*IZ*5td6`M93`3gll8Mz7-@I%v|u0F zYyChj+Et(rc(jd%ti1Jd{kOtxPYG$&wi?8GK0R~&`DkM7x^;Fzm6a*GAl)5>#+o}7 zc+k>BPAh{+Rsq_y==sx306HMPowz73$fu@!pCJf*bP0cai8f#3hpRvI#Y+0|&dQjTWfCQK%`0fCKDNf1jFS@qTK{;p>$rUx5| z07Ga1Jj?IleC3}PztSZz4o82hzb#R#NUEizQv?c%D?7$`GnQvu#@Cnf+>xgOW81UA zHjgv8jUuvglnouv$#~m%-&!Py{$Jhr_dr15+|w24h}n|dhqFvk?XvZ0qc}y;{ns1h zmg}&o98t8wBd3MOX9JRug=q~P#f6s%e>ztIe=*6ib{L+qwlf%YKa2ZqhdFbtn0U}9 zoucMtWa1B<9-!{Sj{8N#I!cWG_-#f7j5)=MijDvBPc^;U&oh4F?$oeOoLD!}pNT%z zg!&UQ{0k+5Deq78sU`VVaT2IWX2l1C(QIoFR8dS%#gDt`8L#5U-SqF^@96KH|NI;P zI3wNq|EA|Oe(waIa{n05VjMl_oVa-VkzR|i!UQ-|nR6rB*&&ZVe`Qm&^WG1UUy_}P z4~VdF)8fW^?uRCGqbMc)o<6U#O;`Xo+sz=HA+Y6lFNKIU)j=q}*-U64JD5rR>c zD|$L3DIbb`=hKepJja{4XBDqRlLS=*LmW;MadX$9^NA->o2t*U z)ykJA?<#Dpis+a9e5ix`8+eS_`23)&?3!n`)M+=qow*N7-Cu==svGgi;6;aWsE?+V~~_zHi6c| zNCtT7$!+Y}E5AWqqyy3ZXEays{WF?lVPvOgWhY{1el z0XR5Xn%^!MLK>6L5AutJjf zW#&w)_JPDnvrPm;!{B21&k9y1R(kfInI1C>J=f1Cmb82(V0@(ieR4L|wEvzwdJhZ% zgq=0Xh>HBDiplwZ@xpreHe-)k8*X4P1)w~+7RO`NyTcP#olYgK-{g_Cm$Hs-PybRV zsb3|~VrXe9qQqBA5=Yk4R_iJcaK0b<>I~=U;rGd0hCX-6<&EfP>3zv#kPh&{#h5PCO+Q~Hy46?Cm zwpzdKXz6-9-cjlQjS+r*r4^oIssnTJ6l*LdbH-_A_rv1k$ngC1^ z*i&I-?}B?NM*}UWa;Dt!xwH4O`TOO}pjk!(*7?4klZ^uR)ghMf`PL|g@EYUQ)|f1D zorKs`t8Kp*{b2{@X49H5=h!zDWh|#i~buS~s`OCK`UTCLqF z&*vMsFjbArR4*IkP_n?qC^%R_Y;pcO-t+5o%s2=XzY2QN8e|kOC=lCYY``(Jno5Hh zXC42hP0)k96@tKOUm_9xTk_gtfyrW=l6ymF3MXT3PA%{z z6XW$r%7#KT`-ZoiNe#d;?iRRwo_ZtP?7Sv_E4_Wc4P+O=%>f>w65nH$uKmO?15vCo zZ3PYdQ81m9I&B@+DSUmG)B-QS=p!d+nc`T%I}^#$bYbh^90?hgow zAeIdyzQ~UiGvBwByKh;Nv`}EpU0;lXjWGQ!r;o>Ln(P8foNL z+i$tVD3u(#d`0kl{dirspWsem5yty%9^Q^EsVabVA$j5GjW|)IJvO#dc=n_txAMS6 zZ}qwOw)77?7%Kk^@K&O*`rvicO)~t_xLA3XDO>5z0v!x%tsK;fz%Y* zuD^iv?y8_fxqzc?A}V5%niIv;C#Qa+nqd~IDlV<0N*dSC#N_2{DCwF>@etG3yL{rQ zaT63$3LBK_6l504Dz1P;IW_iaQZoUvn99GV(m%G(fy9iWA&U%{stFT6-0$S3YQ_Tx zlEMjkBNUf&Nl{j_Pn)QGt~Ym#fh^)hB1-`Ka|48te`|44q>Ov2=T&w;?hd1mBWwp@ z_h$?&dLLNqx`Q+pkmrr=x}JEkaZxDidqZRy=xik{#+z}p2DbOPql@eqpVbFN!jRzK zo>x?kG&3C*W33m0@8pM+<~m1}Hgs1V!oi#A<>Nwe0o^~SAI)3_+3b&28oJwb@=t(q zcDHN9X7RFB$QOb60{DMlUvo`sigGkFft6IH4`Jet%kTsw?;;vmQKyzBhME{Kp}Jat z)7gdsxfpdWSnA-h{&_7}&?h)@wk;JTr2_e9jx=@MV`$s+bGHHoyC}XZYq(rh7o>!s zl3@Q@gs?>Ej<}e*E?p4GU(V3}&(470TWjwQONV`7ooITDGWyVwuAxFn4$+6G7~dDB&%QQIbV#AWy{prvYs$0#G?F|Hrm^xCh#2cV!K1*)5(t1grYknEjI;eo z%W7sT$@$TMOEP#4J0n_+>W%5yH=bR_M?N+-l8@#P!$IJEup8I^@=~m%>|NJysFoo~ zxitD~hPTO`g3;M#Rc$*}+zc>dXh;zvfbj|HfOebdhi4qju;Ouc+Gn}FEm)f%_6vxW z(~Lyr+y$Im=%hwc!w}U}R^OO`O3hqZmPR$-(=sS#?$> zU$>Xkh_y<44k0F!$p^b!dfo^if+7b5K`LwhUCDg6bFxe7o=ESa9SQ)+i1%X==+|qM zhV9E$8gDx67kvkBA4kWW%^n)L35VzK$v2DTLV>fQ8A|!a1BlOAN83wRyPHd)@iNa z*wMo=m!|w4h!Udm+`DS=Ssw|F9#R;x9znc32c(R5QzO5I_Fq+v)}UFZy%|L#1N}#N zCZ-oNUio_Ml`!ll+Dj%Y#?{I9YS10&{Mz%1r`sZo+`*Zhp@l| z;Nrn7K=voM>E=wH+*J+!#+4A$ZlEQQ?to1-G|wcR-c%}6ai3b}57|W@S1s*7ftx`6 zSBuIa$~6gEV{m0DmH379w{4{IS73w1vufFiT_N)tgl)yY`fW`WcDF6wuw{)S zB(fMb&zQ*U+;~7GNlb6=kVO`MZm@fy%`q5i5?-f2;pJwYNH#sh6e1I9BeYh2F1)Qx z2r-W@EKYG-Sm#S3@-J^-lu?Z`C|K3`b7O}CDr*$@X=JbNvQc->B54rR#dw;JrxCsF z$o4_PcjOj5@B7*{tzGz4Q2tlmHM>~REpl3+#5mSIDO^j?pNW>^h`h4v$A1~Ch z1g@o8C&g+;K)`h+Q#EB|PN7L*yr#h}x@aK_w>aLPoo&wSk`ph znMDouFueRhhW=|7&iF6qa7z3Z1jIV`%AXBcVM65m2BVt5Cibj1T1kTOL4UUiabJ*h zm~Xz;DuMt57~Ns?sOaH(7v%PRq7+O*^oVw4OtutQIv5rlhMU&>GdYgp=BJHRu!zt* zhCDb~{A3rR70j4aLi*?Q_Jn2@lz*Scv`4qm%f-J%c%SRP%v`-AqING6V3^!B6Qm-i zy|V*wWZqU{gvUDjn&-_-P^_vusCIF{d2*1`oI?OA&a1AU=<X;A~z0!hTcFFfgnC%5O$e|3@l9F?DP|Uuo5m&`3v^p-D`K@BNqb@Iw zGJAwD>8wk-pKP{Txb-r9-MZ5L(mmJ8xSz&KcwBrw(&YdMIgV6&Ul?wr(`NCE>d%^c zGrIt58b~XY$c=Y0dW&bRVq{~wIgScA-%>}Jv7QWH!_#Iss;U|PIRF=R_;R4IrK_%& znNaC+bEnWTDXe0qk72#NM?AehVFPGK=G3*nB$)H<+pe1@>}#DLt1i0VF@rMCa=;F3 zXoE!bbMEPj$W0E?)yPv=kvQ4m7!8Gr*m-<|OHy?`qyeL; zaoShF)!lbxmD3%CuvgNMh1i#Kxg5EvmI<^k2Bgxke1{fa5 z#*NnZ`qxO`?$IguIj8zjYQ7^Kr9@AzMq6CA>;K62gi zDGIAB+Y=5}|08-IK>+A7jyP3g`}s9w?`IQl&%G%MK4Y>BqzFpnu}DrOjRH_u{KjrZ z@*bU^4$Os>E({I{nXQZ~fe$I~0nB0WS?t@e)TxXvke(T8Tw@rSilj*XzFwEcoD9<| zj4{Zw$d93u9WIfFK=x=|!3h)b6kJEaDdSY@XqH)fxUyWu4Zd=LCa5{K{B}UsM4u|X z_xW`MDnSnqyEydxs%k1LB%*gE!=0ERl7G#Ps3?>}Wv$dlWQQ_{D3p;>0O|_WFgBVh zreYJ2?=A_}YteQz%D;x2L?fq9FU8J*ZoVrBT8s{rbmDOgAB?*#Jjs<6P(3H^a!Zr% zL2ok99>}PLRN;}sJ#Zdcs=b=0PJ&|IoEO2LSs)Jj?-Lcx<@ zXK7??-;|lDWqcPVwD^qd0Zu_Fvy`&7TGNKGD!zDm`WYMdC3P;R7zM)3tghLmpD`xR zkD(Plj|#B6-g3*QDKjMihgo}wxL2P9mo`K3=e91ZUcr*m1F4zO1qqEHYyma*Jm>gZUo@oQyw%0r!isYIdz3F5S_1 z*f*M2=93D19`ZF0l_s#cc*&ZZl}-WD$u#73+!sRiLNSek&;RI5|ZKvfBE!Mv)e8_3Epcg%Ke z0$j+9cX$sluu~EX4~DxKg!xDu^^q&f*I)&7Lb$^^FRyaxM11L8*W<@m3VJDB*QK>} z!f_Ny`jFJ>Ydrr+FJUj4>D)b*l&dVsr4_=oLMs?Vod?hZ^jk4nRxcXLlK~UyTG02K z6;td|HevZYf|C91(h^Es5W@AJL0+)PQwf_pVfL7!|oWekLc6vUha~!r1#~@V1F2|^?3VVHr435^<{oDZrJVQ4= z^+SB5F&+FkEV}6*?xR1%Pj9fZ2}3J0!AZJ)L~WfKPymbQPn8QII9t&F=_ z3{xkZ5JS%lgQC!^YW(SlR*couZQ!5I_4~8-IJ+&>w5< zl^B|UNo?8&TKG_bNV{88bBKml@hE%@V@N~t)1iMt;>HJFK%?qtda{BhdW5$-)7>o% zTieuAiE#ZN*v=^Pv}>`=`CqTtSPxOvO}%VmB;g} zs8QzLAj@ppsX$Zqn)r>q3ZN#4Fx9DfL8#sUb|9m&OLJQ=Z}z$J#!3m=KKM?0xF^xF z+Ja$46{N>xNrf3HD2%)x7p^U>eWBBa9J83VB|8h|nr;M_X~kP_4$O@|DB~eWWYyCO zMlojV?X!mTTXuSM5>?HnQ*)B0%qRFjNXSwbht+9z`LY@tGbynch=icqbNg0)4v+*u zu!I+wePCBe8Rbc|_Kt$TGczCmcW5$Yioj+v|yObJ?wKFTgLa(|8IoX`RKSF(#iBW3^G_p8D!fEApX?Y%o z0&0XnFet=6cW}#QG{0&3?Y9XF_&oasa(c7N1pUF*MBm0K(^By$ylyE9ALA=w?S&e*n6JER-5C0;+I7NA}GvFEdb5D~C;D z78)D*;#7a=v}sbIkihTJuX=2Njb>wz_!1;bGl@_oVvdg_GvDk}RnlfJF7z_XyxaEU zebXR0I4WlYba&-I@CQ;^!impPrKy6k-Tz^;AYUTO~-+yBh}&ikhN4E?Tem&t@rX@ws*B9#Aw*4c?RZP$~GMY0SjG z=TvINd18_dIfd!moO}y`%zttXt-i%>*M>9PhTfa56n}yJ>DPUD*L`){+r)E8@Gq~f z3#E(I9-CwYl{-;Yxu1$iZIqXRBK}!X%o0EU9-hu+~$H za^z4&0Jd&NtN?ZG(_0;zAgbOAd8{mjj7V&R)J? z76JC9ogu+1i(fXY6pJ8QMihn`UF7b*C zbrd+;m0FOlSF?c2lX%>+gpZ5@XGUHQ*~$tV0Z^M()|#CF5cJt#H1)r1+Y1{xMFO3F zzTP56s|ynM0tRcv>#st6nkCr{)l**i>?Rp@Ivao0L#ZZ;OH+$v7M4Ly#NETp>4%Ml zPcM_@O;0ZhO$w>Sobs@z#yHNq=UEg2-!vnJ#MjH%==z&%(gc&bqK(LVLZ2h@EST8q z;8AgYOBD|Q^!q}T^IQ_cASsg6A!5_A3pAq<;#x5$Boqy+us0*4Jz$2ln&hAZ>1jM5 zG^D4&WNU=8lewZRr(S?~v53D#$woZ)(t1I0s53Qe<@S&uY*DW#LyD^>=BoWSvTUZh zn2k08`?*~w5KOCt>KcARxdey2k^69553rAh4JA8(kc}r`pj|^>Wp6iXI&#NBe!Pn^ zZv9s60w>Eufr^Cv-OgXt;}cYtzW%-G5M zwY+(>{}&L;0F4c$wO$8M^s3@LtKr0C1oUgD9zGW`OX}qJ6uO=!xFG^OrGO^8Dkv_0 zuQT$`^T!w2;jC|Au?d)hQ&o?{0^Q~y6(mlYojAQf<5-n-_^(67#>5cZu%=NR?!CSb zW42A9GM)_V4~kGIk05I5xK%O=It#c|Cq^y68DmsjovuYUkC@!%KFzKI*BglZ;psp%jB>A0Yw<71lh`6y>07xk@S945An>Ac78)vC+7ht z{m(u|{L_yPm!0YV(&5(dZrUBSH{5_u37pbxk4Mw$lTFLRd9ZhN07WHbKMi=^UW#nm zZN{uwm+26ULEqn0P$ya|ldRug8YV<&lSGNFd<>d5r-_HMbaqhNQ^KZJ92f#0-6gGQz`H$4yVIwQ4 zUG*&08pRg^e|7)@fweU-qcS~dAQrJ`jxBMfDN#@_N6~0-ZOQTQX)=|^0c)BYUXJ$~ zTaOC6-*1RwW*q7Rj;$X0u6okE;%j)nVJfl`(Pfk2yEkigdpq82!JuF*i~QLep)D63 zKom6^(PB#Adv~`x%f88|eYMUBg@HF&tR z+opyS@?P#2^oQ+sg#qa904%(FdvP6NW;RMSGE6_(u6E&@dO;U%pZ4jRGUJODS7_0= zTTSYlmmZvs3xGjZ#Tr| z>xr7K&@jZmD(2hdt#*?WojD?Gq&Qbo%u;QPWhh z4dv;z^;O0AhP6Pt@`9tCd)#m;@cHw^mIADA$T=RdM}CIJTVrjZz;in@sM)b|LjT`d zYSC2(eB}x=f|+cGx2j8YpM;fj-`}?L`+{W-8S}buqk{nX@lyTOq2EPWhNW^{BX$pq?` ze*O5p1ZsdocjO>fd3efv>7s&34glvA#pjieKf9Bu-`E)~mL2DFTgdJ6NuYf-$6FBN ztGgIH_4ZZoS1!qsjS*!J2OUvWB-?AR&=eAcx{3)I--y!Tr2SB^m z9`ohXoCT5OTQ~lv$Gj46i3dak~!g?3D6_ zc@)@2jnUy-i!pb?Z!PM(Oy4n9BFMf*BjRKLCVl~IXK91AA{{@P_h6UA#E;W8!HG!xT+1 z84nt{!y%|ZxZ;9?{bqq{b;SO1M9UKYS|>*c(^?F~G~6ZXHU-JE7$wdYPoj`yC~>Z; zN%0b7K-SM|g|2PHsO14sF6fH7(I_&=OJnNSCF~ZMO?_8j&yK+SgCA(4EKD=33l;A( z1LLLRo{v}C#(sl;GhDCe>W$Re{$Z&MK0G9*GFWS418;+4yQSSB&TJ zI4`eO-3b)hUV$69<4sYN`XLHa_$AEtH-xwn0AUipG;4G`SXSG*da7FZ`yqk`3AL_( z-jn~3d6dQP@&|0+vQa!<6l7;MWP$hHZj3SDvrn6YHZXzGtWG2c|H^+_+HgZeQoj9{$-v*}Yz2ZTb zzgKo<$0(1KFelbwpr=`E6CsO+-#%M4QR{jW*0rNceC*fL18b<4lZgkl?gJhx{EkXjZ)i>BAX1^TUqPvd{?cAe2?M;n_)L zBXrB4Xiq=K7wpRxReuhhHhYJ`6de)0=Ve^ zi_)2NXeV%N%fkG|fxR2vf|7&wXDes6dK_H*Wb^!!_Ipma*v?Bewo5`8M+8Z*5}I)8 zba{u0>QESsHRC*FCcp7)#OGw9~^Q_d0JT0q4D}_PKRVfLi>Z3O>U)0 zBmT-Ggmfn|jf9sE?pdWM;PArJ6q)VV^`jsUj&MLIZ$Vyw!FtY$YE~rKdPllZ*$_3b zz|1jJwFeT|lJ>%##%Z;;`fLa`ebjxVl;bZGx$qc_Azf#}iv5i~g=J8*6abA0so8{i zbdPqP`!%XmK4=+6q|MMqdO~wMIdeLAQ`L+mFl)FCxkP<`%>s4%(R~ENYIh_sRcLJo zebyb9TauUbSGM_AuO@tM5}%-f#QfO~f)a9#F=b=N1ei(sWty>zrNXv9u-Cm5q&n)$ zG}lj-Xjzt9I)H7(;nLR02Ed1%6&#ftnjKMhWX41OOA+bu$dHlT(Nf=zI)!YNce<<3sk5qAukPNp_x|DJCs8tkh^v%4+;!dH zOzN-WNypV|X;SE^`4@mDK6~{MAdK7+dK;&JK??cb1usLpJuBHf58H7Zemn!8KPph2 z_D0u-hfx0f*)YfM{TJ61;*Vuc6bM{Ls5&;YjuF~MptQn4^Qe6d4o|6tkemi@mUMk8!Pj>%;I|3sE z3SpcW9`7Dv!Y(SGl_-N6UNL-sN&{YJU97sNF^P&9`GW-}JRNatNj&C*p`|~R zm@kM@fdQ)xI&BGjnc`I7xr~pNzP9EYmm>ofb;QcejlS60E7A8xy3$~P0W7;aK@sUp z;ah}bYjB?UU&Dvp*GsnxYLk3Fe4N19U#bmYJSukIAb;@R6dOy*dairj`TMO>uf{K7 z9*6EO&cq9mlVNh#5i2K(=(06p2@rwiF-N7FX{)B6syp2#V2KDuahc=bGSe2?>hxg# zV<~R}x1JM$NE`{_&k(}`JVrAyNyHM0kaY5SOj3EGs_XGgmp>sa2w4Xx5D5zGg%YtfWTJ7ZU&`|Ej43O+V}21AxdqB=8_NV9?_9Xh)759Eh%ocdO)eBD_GiK||&cPfz9y2HsK}mAMn`zzr_KYUi?DJaxetG$wXDa9T?4M_xjGx_Vq-iyy z10SM!Qev94^>v7-*#1V5Jz@Xxy#3sapQS#gkmHMtJ#DQxZX(4XIwaxjueRB6u*rgp z4=i8(_CRV(v9>AzjC3IDSknY^`uAYq;7(1=Al~`ea@nS(HtD+tHQJ|VdC*tD>;AMC zO9^0x@dhngDCdd!G-6;&pEQPPv}4{|UY$dXlFhWCQi3v8PZgP@w}wqKGZ##UZ(#Pj ze^@IbDzN-9*r6vNDIVMY0~vVS6D$AmjW$bP{5PVo7{!h-plf}|l?frBn3cI^pc-9X z_^oeh3NjHCPKANBJ?ghXUSR&X2(pI9*SnFtY9M9g>VU5!T3q3ITG8^G2iKYzN2CJG zRL09#ca;Y1Pa|SWQw)5DqzLXy&^Qrvz0gI_hnS(`wkN5t=6m@5p1IGTUnTe!7s+=V zYIkvr-lGnQK(K^SYsJ2%ken;J^zZxN!&NYr(psha^e>63N;y)6l0MY5ig@CA+gl*^ zigo=%&Nl-j&Iii3YpqeR^#ZL-ggQvZsE5vE5hpYh4Wez_$1+bCkn-gXii*y`Ji0=rODDW+mk7mK&bDB2!Sz!53Xn`1Cw^Ga z4{62*9!MwZ=40!BwkI%09u^d!xHdyBQlPfR!D+zpW;nL9f@m$&Th*6Sq$R-b5ItH9 z)Gtch?`A5k8(gM(>6N>ZXM?3X#DWO!1{%yaZA{nUaAIaUpH!|nSlj%|bd@-rVMdC< zQ_Y-P%f=ZErtK>VVoOjtQ(Kb{Zf!@@ny%UDf_=H=}?T$TzzANSN*HPt@zOH?zUEd zv#3`0DYoqz`1kU_UWNOk9}o%fzE-9R!cauT1b+&nRGM}zOfIiI3};;;z%i@o*#F@C zmi~yeX1=!l5p8K$G`Ar#hxoB>bi8L5w)56@9>E$IVVDbJQcj5fVx|h$>X8N%apXo1l^-d*MP(vy1KocYF2T_liM=*bvQw@gt!yp@3W`}&QAFV| zL$0ZS`zOntv1+z2z;zP*)s-QAI2%m^V`yO`8qzw8TR~usB%LIO8x7?RE27)Rdvmj7OzLlMql zouT3)aMOitF;b35W2O2{$T-44%N0$^s8#0t!6iWE=6eXvW+xC4TB#yj>YUOGO%S~# z5PJHpg7=JQ{D{)Fu(I^ky+efsKuuKXdrIMQn&HB>GqjltR;UWVxi=}9bF)ZhkD%&Q zVR^Sg^CIe361Lq;5|DYd)sLHY+9Ij9<}e(;^TSCZt(9C_$KmwkiDer^s5&Leo>sPW zopK$hEYj%;ahTt55i+V^^k=f7&IYZBwOa{KfqG*3ac{xT`l$(`*=yDb%=ZT6m4>o4 zK_lAp5JZ@za^AYi*pY6dB@?}1Eb=u_+0cCvi+SpdkrTS(G)9Xw4LS1l9i?1lGE_+! z<}n30#h^@ zhclL8wYTe=&&TSOsj_weR3NW6jSBl1R#+XbAgInnSYo@pYpK_F&PsyO|VYRm3pafR)ih>`wD`_<)nUXuTl_){yOdgkRVR zq11kWyQsA`BEflGXKB@Zm9dpbi`a}gvk1x}y2h2|!Mg!(>3c4a98UR-+;Vr-T0eKE zx+l1#miy7r9=|WTPW`I9ep+qpr>PZnM(}RQjqYS1=OWQ6T4Zi09}LcI1hM5lnb%W~ z9V0v68tmTC$SixHh^O-}yr)MxOGsnPcUyWX4Nly{1^0Xv-o#b8C64 zo7M=!CG;_MMPrX{Y8idRK&Uo!UQ@p!`V)^rv=!$5Xg>N|@a5w?E6@LjdJi}eg7l+8lCofg5X0~i?l~OlNvnGO0@J+N^R4?LvkXajR zRPI|#J3->UK?~ro`0U|JG6w2kurCnDZVkpj@u{d>B~M#FQB6C_wUQB6rJwI3bKnzcKRLd1)zq*yM;$2N3-F{wV=tCn^e)# zcDKDy)4kFY`296j6h%Mw&}xn;Rgctf8Kz=1UregPW|f~`QELjzv;EVR6j^%2i4ysw zB)H<-qk)%l;^nA8e*s~$2oJ22g_uO7Cd_8$P$DMQQOf<@Si~<$ef%rHY`^Q>?C&{j zl!+as4pdZWa9}^R6_UCjTokiawg=@N8U4drPREs5DpvV4ppfZGA;G>G*`oWbD(&cV z)m1BGEPFdDau-SDu<1m6cp0$L zpInSeUy^St&6j9gU}U-xVjCTY7m-<9SFl{23Y-weY&rfCdU<(~K@J)~Js-0TnC7Py zP{VlvS>Nt+9x4xO0DQD;y?xD*d{YBcE1)eCIjqNT?K1}v@Nwi-O}UlsE`uRzv~&kK?P}OGAt9CB)8x_Td$T4-XXEq z02?+pi4w!$ZZNNM{!H_#6ec+=YMaq;kKWF92M2?^mNI;$Le8Hp5}nouJLvUU2BwU7}!l=$UV{u#j%2uSmefl~SuT z+~)7Z0COP))n%GX4uo3mUt#<9iufSDKyR^Wd^aiV`fPz#o<{_R0y{p1Ie73oyXGI#dGW(U-3w(Lmjcu`@yMG<+q$FGL->k3L zBnQl`($rnPC2?JR$Gj2`=i+mdzz6N)TvTgbfsplJxBh`Cpi3Jld19%foIG*E4k+7b z6wV3Xz5Y@H3tkj&-27OXCYsAaqf3grLphXV5!Y!sBFMs z!!=_ZPKbcu=Fz(|&kr^&f%XY(5=^81K{r5Xuu=Ed|u$)Mcqu$i^UQO041H-(+!ynhrW2n1AgJrIYkMeY?B zx&Z42?aYgdU=D$F@NGgvl%!Gp=F{J;PM#qDjQHcxmFmh9{8tclBCn_#cdNbwYR0+1 z#Qf|^x-V#qOsL!otAoh?9#3w3IF82E$KdKyBp3yLl2}s-JDv|CQcE{{Y{!rXSi##9 zT-5Eo+EmSsdlgnZF1TFD2 zllIh`G7AghZyX>wT|_=|NDPAVmh&h&>>MmRy}n=$6pU2ABamaZ0Hr|zh|pPVpS@Q5 zYd;JuVTgVfh)$wR19oiqF!%)BB~x36{`a0<_uS71^TKooj^U@8-JpO?+$*lY_bRJf z1~i%E@a4aQOZ9tcoVBony0m;h{W+;}Z-br&ANPUHP^a*Jxf}dzmYJ(f24*-Z7lQed{Kj?1$Jiyn|J>{b?b*iqi<@_bI8_ClD|EsqGQOxIBn!A4H(zW+TO1BQBu`c=CiwH{EDBZ-5}nET zh5;f%8jY={jv=GLp21O()WS1wn^Ce{D9lL{*DFKGZ=UksFwJYHEOFp|fKs`qTzS7+ zWYp<4h;ytQU?8c>RVvU~4DVBO)};t{f-GGA*~MI(D$a^qRQa6hXj-<(U91OZRVr9F zYnF}LlGyBpAaiO1yAlL-#pR&2=l= zY3h<&f-~>_1bz+#_lv^}5dj=|o=?jPR2*6R%0_Dcrptcwo0^9e#5>9dp>3r-l2MTr zM^~u>jWh80gJkeCusHS9@D;YaJt?yvVWfY`KPIzo05os#DpaKkhl@psPP`B2PRk! zIla8luQ5BwSVCkKiQ>pTTM5__s>SXu5xKqtmar9!{pX#`Us<-XEPi5^SFkVO9u|K* zq8h>=WRAIA(@Q|n@TE1wX64ndy?p$KSzEDvM;rDEbY?qe_$VewO*?u-T`PdT0ly=P zD2X=vF2qYTB;Axu=katfEt1Z4Kr}TCxcsGMvX>GDS7ZQQramVyFo zqcR7`igm*m(hfRU$T0_%m8BX6efy+fG?fZNkG zh@clnNn0A5giwP!mM66Jwrh49T=$qh00Ux$3XvfIeT+CzG8mP}GEG`Q_Z06m0=6s&S zcgdh=(m0kBo@U}AR&y7IO8<~`3VAx$WY}ubAPM6V9MmFl)-#(~MMF_GEY1u(ol|N; z&n;`PG1>38&@P3IxyV7s{2}Js#0wv&rY@IuMT>SMW?CGwHYY**289=jOLBGEB~moE zUN(^RONf{^BZ=xq$HBH)topc6d&S7$GtKd2gic@H6_kwCjklt2lTiw$K$ufWu;eYX zCbRtqvRfry_1@yXS2rpdNGBJ7pT$5H+BcAHMrL`sb;^iikTdmblz9mV(vQZUz)Y_k#F@#!uG(jT7Sq%0ON~$`NNZ_pQO8i?h2$8aA zpn=Kp3`q2gMU4C;vvQf&C5&>miv)UXlgm^#yDIfu;_Z45;ls?gRVyR__8u?Yor8T6 z=}B@GBPwsx-kSNQmHS;f6IfLwlCD)l^2by+03wH;J`%*$}xii#ubmlMui^8kDV@;^S!RI)}> z>eR4KKWO4l54Ea&pP37QFR#=sExzpYt~Elc1{M!p#XcTWS@q0{{ts{Qh-W_%F+`#U zx~osHA$QemvDFTVilgXSoByT@BP=n*?FP2AD|UW8gJNa+L)ye{o~;y29cEhW`thto zy>Z0`i-YDbZq4^F8h+H=)Rv+skJxQE##NiC^NicK$=9k=i@(0Wub&yAKGQ2b>P{C` z8SA7bN5X*Mp1QMcf6@xm)p?6UZmcD{bbRI!J((&vRj{MedrOJNHS@xu=Ta;BW_jNI zOYkK8d0_pbLQVKe&?Q>*+ed^(C@Y_DKu-B?qwh^@rLO|8o$JLx1CeD1A`WvakEUVF zqY4{8IEEk5(k}(@(vLNDj2icuS*zqbD@d8Fb}SESI(G|r*^ z7UK%NB{?&dM5;~>caN%ZUyYVzuO;e81?;}qQF2hsBu@l4so{0Bwi}D1O?VjJlb>OvikG-yH#aOn8wWs}7nB!&46FF(E;e zI>&J43j^Wnkpv9~;up#?Ra9w&@}^B+xxH7V(8A5O_tkYrXR-H*iMPkKUfG4vq_!DI z6Bm|NlYPZ;h%da5Sl--n{foq<;fT%^_bhu{3Xt zC89^3DtB#L(G1CW@S%s3kK#Z>OhI!!t=MWc#ZryaI@o!4--ndp8mljMO0~M0eo7IA)301tTJWupES(ZVYuZ*KTHpWd??tT`% z<6Iz9%HF8WO8IPCp?0ihLdQ4ig*u+R`5(y7L)#9ToW z^x$VWmENSEw!a`QJV)33EruTp^zwWxq<1}&y;EIcyrq_A3sV|dieNa>*ew+wg7@dj zvQA+o62;#~QLv!51tS;U(>H=iH$g#v)}KHFH;EJT0ud`>n^u=>BL7iWMmo_DHWTNQ zHANSD)&|1p1s}d}J5_|sQ0>SQJ&~u+rf>0B6!aQj`wSV2_n*sG&y~efJv8O#k?TU= zEEqRc4b)RwLU&X3pZid@TiLoeUrb<(0(bcUvm&!AP({B@BLH^*JM5z|B9~Wq) zMuG9TK8U6h@?ZO9CtjZ;tod&AGvm)koeQH6zm6jhHQTsK=!Qf%RIp_Qdz7S&{SU3p z>~0F)I1BW95ylQ)n_`L0d4dW`)?@P^OWEM(rW`+vmM#0yHh~yoYYKpske7@}N;-sY$BD<~r#RMshAgp~MCdTSGa#ivg7?4QaYC z<{%0yTxq0+NiSnRSt)u1TPLBID4Xb=?%sAVl8_UBFsVq^4>sI7ka)EwgfnH8s(|jC z=c%qz{~JK>>e&eazsb?@_v;fQ3K^jK=J9_8#6*&eQ|* zN#e;`qxiQRxo=#^ZG7d&tOZyfWf=s5p1Wu6Q25tOQFqQn@aAJaH`%A(HC3x0s04)5 zSRc`kk@!&?7Kpv6@T={an)mAa@!v($6g+Y3K!m_K+DRzs)Pmvs&B8{lHIH56Zy)uyK zC5mL+EWywv=z1RM6Sxi4Ft<0{SA4HF(2#lSW(+nDs&1#&t+XFoyuBaw)R|=;b4(RN zqmLzsQM*MbEq=JMoROix%;L181ylHGPmI)TdOMGuG`@0om5p}s6l(PMpVY`JCireA zG~X0Ik=Dvs8wDT}l>yIGdB3}vX+!<%J%ZyNuQLp)nJMVQNPu0c=d7cT|_; z-#;wZ1^WlD8R+*HR*91$|4DaP!|bG_AFa=|3_B~%x&3KkBRX{3)9GwdR*$T6UI(d~ ze~?CIO%`BV1OdQ%3#*Ob4TO-UJM+8rPMOs=Q&vbB#~|T8{7A4zIJrsSm}s`V-)_0}NRu>W^bK6Uo>2YMyYvi+|XN@mXgv{0s&eoY5sV`WTbw1i|%>{EwH{D47DrLg*eBgw|f^xtH? zioL3xrLnz<>DM;c{=0$yD3PXiCiX^Fa4`S#s{anPzw-V6J+4dme;;Q~-LQnj`Ty63 zPHlgIl4fUR`R~$V_I55Jrq0GrmJTlVPG8em|NFH1f6nyZ;r~7pODgwYD9O~T#V^VY zk3Kj_;tlkF_6wa@^`jJxiS55@{_h#7@lRmn03+*vt2UiooJx_2J z^q=URKMdUKUqI&mo^;yzF6y|hmFDIE+pg0~TjyMzJiV(n0B0|Ujrz$Bd+SBZ*)ov% z+&J4n-}B1!w!ikGHkSlj!?#7!;&)Sq=sS8|@o^yQUs2qMl56(8y{}!=XZSnUa4y$S*Bf#7r60ywzp}V z4{uqO`)^?B^U%yCnzfX>aoFyPIs+sE?IgT_XtCjOl^W*Kj*u+fGTHzXTjbUHQ!0 z4Gb6EbeBzH$BNsb*jj9Z1O}f*c-XG`drY0?^8+`~{Px7c+jz#QF`E_i+{G=)i~VyD z$|YwEPE64jK7$HWf1VKcw4~P>Xy^}kAU#p#)X0;PzuLI3dRiO9QH=AsUWjjWHj-6Y zr(>+UreE0>h)w6Y7GmcrGyy-=hr`^K1vPF6A%-%s!K5^gk&DN%eP|LpCNxJx^;FmF zp5E7{Ly_=#!gOJbQmX=2AwG17+%IxIO#@fq9*LqdA*okR`Mu`X^p*@t zUffFXe(s+}P3ouytfq&ZIVURGxqdY|wdrgYSXGjqLnH7H3I`$lsR8h)-#zO6Yw1&7 z()t&HP2m`XcJDs+f7!~CqAL3w3{(o^_RH25HhQR0m6ugxSmvO=&2e+ST#SH&#J>;2 z<)8UDfZ1p->Mi@??QHa$jO1CWMkZ$pm4oT9@zW_X`J`4pzGhw}2K@)of_Da!bH0N@ z^#ttdoSL2(WFJ-w4Zy%Lm-2BcW6aJzq$(n$`-HbADZ#SOWi|wn5ixqTz@Z(|@v+3~ z1CG#G!iynq#7wuyg~5c%{T$sp9{3_(7?M$}xfwFl zw8P7A%BUsNnh606E4rh&0vMz?qv!nUm#w^m&pmvUM!F3HY!~4MWiBY=yS0yWl3%DS zNj{x{$8P+_-m=&p{{)sG4p3YbFp|Ob`yN5M0>-ZTTwT+PvME&bDvRh)MUzu$E`@OM znC;wb8lU&jfK&G=72BT9p7CYfmhDzl^D)75E?Ip{Cww-zM74;oJ7kS=xtqn_3|(J2rI$ z?x@r<`bF@Xio9cOBL;|bN?W7gtNO`f>SH>wE`(2L049{U>`o>cs-mD3Za|)pJ3B0{ zCfq`{6-lTTHbYpEPf>3x%dKn%3?onNWSn5`pI#=tx$1s8{4J?*+RX1}90(C{Ym8D` zY@OB*NBF|4+anS$n6-=Vh~`E!gEesKwj(uT4CG(;mz5V@q`xB^^z`7dj983rb|mOM zC3|L50di<*6yQyql9SHUmWx?(K|j+VIXPr)kX6>(vL%}dC3oYPoe&ic8(KWKUW#S! zOlC~@AVp_-t>G&ApK&RTYvwWiz*)8yJ zto}|?S%}D5GhGR!r-@TI*ziG=3&kCQu`CqY0?Ks}-uCFLcx<)^4>NwARX@xj` zudAF1CL%Q<3v>N6+(IqH#3`(<&Fok~P_HzF-jDuZk8={VVa9)T*vY=T#;_d`qQX5e%Xc!Qv7!fIj{EG8;du{9P-U`XQ-mEaN-vQdFu?9Zz_s6uNh#4H#5 z3-k_H+LQn#$2i(T+>uA3dhM(%>u2`9pdte_iCPG@#=II_rln^ z@yzo38~yKtt)~UTli3{SZ?aMF3kZ{h07Uo-g-bNES)L-_gis2_6DHY|M#`}PG@KJy zQ-WbcQq=L708X5Wo5msrfvL6gIG1gD3I`FZ6y}r=kOn3s@TB4aoqzv=KpQZF7Y6+U zc16Db5@k&C%LWerjQ$MZfvkU2Fv$D;1}cpBHj=!FnirOwtCLIFJ6L#`iaach4 z1bNM+({6%=Em_NE{=gHOaurki-5~tmETX|>H)!{pxsOH4DT8^?C}t=pGrlt@{vlTh zd|ESdKHtqWanYK2q^4z2(W5j)EReQbC=IDuOdH-GbT?4OpA>G{eP|~B5<39Z_{aYU zf-3jh1L!(s#tAGFNTGDXdXNjq6?76^UUr|$VU9!ch2lj{(%1Ws%TEY>%HxI7vJ$N6?OK>lxOT(P6R1fv)2FMG^x|O13aN^k)qo~uqT2S6 zDEe8t+bu^?8?nc_Vq^t)ndVv412rORvwc=*F3uAO=fna2xI4SLqR|@?8mzgVEP2Pp zmkiXeo_Jx>Cy6bTGL!I&>pUT3D$AD5AS*?7W^s|R?pW;kk)jYHCe4UAHqT_iRxrj1 zqu;HNW=(bajh%d4lYaa|{{T*(1pyMs!lZf8{7UJ;aHrh-I$Q4p%pyPQz<;6Li#ox-oOgyG_Ed~~FQ{R`R;6CAHyp}zD z?M1!JmP~r`_!X$j?8Px_#eF;Vxtw%jD~9nHZFvH}pe_m$SCHItmbvCW79!cSt1Fd)1w(9(Y~?o|%K6wOi)mPtjiM;B3foSQBuiCmPiR||6(pZ&Ie zgs8WrpW5*NB9^w#DM7_zJ(h;mLr{Zebpxu__-V0!vh-Juf0LW9>@cd1TB)OXTcp~r zCX+Iwx>Za|7WzrYsd@t^_&6i{nnz3yS2oM%w*44*SL z{+SInUG5q!1WR3>dpj14JD1Umi?LqjQtfn!Nv0 zLXM+TWUqNj`UH{86&L-@S_Euhe82RW!*si9BfoBE?Dol#8?VkM*JCYKJFON{JhI;_ zElGF|x(Q{B4mdehp6#%MojKTaDIT4tIf`gFHZy%TlKf==PlS1o-)jb{LvEskd#u&% zin~1SxSDvM#DS~wePs-4lea(XctK*mf&CUxY%R~9v&2V-9Igh)`Gj}A2ku*(`}q9)?}?uIWy5B_!wo7H)0px11gR@p^&T|x?zw1lDn zHc*mMwwr4!8*=Z(f2+*NqgH)Ec+3i2$L@xiE&#Sc#yCrb^M}&JZ$->bCG&Ofl6xM6 zbHRN!-!1K1!o*k5N44$i+KP3O`U#!z8gg?Psf{v|_nN7%Y#Rr-oeEWdho8V`6f5?& z>#ihmV=}e0Z`-Fr{#3F@7PY5K%T|irA`Ol;D0PW3W)W{T$Mu18hR{SwS^qul+nAki zMhXnkE2k?Xh!9NK%}$)UQspyL|KQs5wVh?skWif$2Cq+8peJfEC;snmx%GDZjkZb& z)PK9Jr7Ljqn{cg39(qpeh9)-F+keBlEuLohkbk7ii2ERwe+`nmV{zAX>EO@!n4IBH zO~`ixg25uzI*7lts#7yHy~nILCC?8)4X2P8A5PfdQcc?oc7is_vi_5#PT5r|&) zZ5k+cx%(rFwliPO(^MAy9HipH{4zSEKKP6{WH=`GZEDzBiT8E<_pj|;u1=q!{V>OU zq?$;I_bQbjwBGMHHnr|)R~ z79HqQJ8?$+X;PsG052k(S@~JyE4-iX@Ip;+?vRWj7CHj4Ckl~hdB~ZNK7!`iJV_0 zkXUyrT7uQblqXvlNjxaxYCwr}zxrrqh9%SB;LQLPOC*mWyZ$Vnx47nJNXcHC-2DMF zk0P~u*2+SJ2w5SLi9V5q0&78wYwWjn+^^G({VjYarjyYY{p|=l*hY(qnEy#o#i2ZTq;7FHVv-mj$vq{V&}h!ps<^*Kj{8riRJu56bgF$*+$ zVhkZMAk7~nvYbv9GaP3Xu%u$UKY*=caCm+AW&W_f&Y0geQ-%laVeX82PEoS&ZY}!N zzgaY?@H*0fB?;=8&b z>6%5dl{ttsXYgGACat$mndr}kzi~`P1#PIS622br&x#knlUzmx1~>eH#jv7mw8!UX zRp0r@2Md-M2l!?A&iAsr&EI8^PmS;&1(bPsMn(k8(L1eRUAFQuxOcWxYrAQ;;8COG zrI+0TI2iDcn>3hKuU>uO+b)PGc^Tz~F?H#bts0M^urTyJ(*)N3ST(tuA>lLI8~UBPaIfq%Q(qA$llxnW z#qY@pTgFPS|3G$1S*ia=$C)~Tf=is~K*46@WT#{N;_rT$zL=N@nV7yHx?flj2G%c0 z=57xJE75l02l$uWi#btn4Hb!nnf?C}F9Jls2{2h$nE!(oVPg7{b-n~4wlC1g7nYZW zDUq=qCzSvi1QwKyGu5CR1U;1t5&{8~jWuLjT;gM5?1Kr zM)ev5m6e*cJ-qtY+dJ<*oW2j!mG<5qeR zySI**E!?$<^R+AXG>?XG{X)Q;!Vz&^`(P3kMlS-$f9v7$CA8y=>?Fp{XV*)|1r+O|8Z6eaC8fa0DnB%dHjlspaLpxIvu&9g~`oqA#z@8 z)CbC*9^};%H>$oc6)>pIEGW4k$8t&OL}%3k5pf3Kl8|2)o_ z8z&OybZax+u3THEW@@tI79Le+3jeCpmp;%(^M9r`cU})EoW7pVb`Y7(Z)HW6d#|Y} zq&cRUZr^uaq~4!j?|HR#aO(H|R?n5^*P&O>tsw%Yep*(TEplbOk55tlSLiW}1NP2OtbJVr z^slQR@N*dWgf{$2edq{k^dq*{ZosQ|_yePFZU_KjTMF*>x<~ZMxhLV8Kc#th*=X;d z%nNE00n}m>?WhNxu7I`ouO_Dc;#mlPt&%sRwpR&30^zhCYPFbZ>Kd6kh}QmG1Q zO^n5VYh#|A9<y^&?L5+SbZy{CSpqaH4I$dI#6w|8kKP-l zP}W2GcF}qWeup8I57Qr!(cih{x}ocHmbTs&kHG5crttIKOKR;Bc)GkN@Vi?1x3i*L zFUPjB_&ZO8MpMF*X`Z;bJDx|Otj8zEIr>dpySx23Gj;?&ch^?;dNN5D(VXqjprV9_??Z zLX9`Yc;L5Zcjq>Et5)~Sk64dhe1&^du(JjV{^oWe2CT7g&xT|?LHXD8I4DA=<%z~4 z$g9y`#o?KO7di$puVv?A2(bS?M}Bz2cG=-BXsrtN4j!Tev8} zM-*4Vl7QxM|CZM*Z`HXo@oyD_aSy+AwA1#n_$xTlFGi}Mi; zge3;8q%ZraE-uPjEM6UsLv$#{atq+yV$-j<4Q%J=uj76a0FpfF z6NvvMa-ha<(6}Sh&1rveWDJ*dcHY+zp<;HWfMp5W{--jtQ*^RQ*G;Tg5pQmC1H9?; zAmbLwwC_Dl8tky0<>0E;{bm649$xqL8y!_ssp5|$uPZ@z~1I4nJCNf2rT`} zAL}!*j5wmHV85lm895-wh?luBRx`=NMn6avj9K)DsU)j0x?X}^1TR1Cna*fO@m>Dy znbv^+9L&mW9gF{9#_}@|Z45l7s9(OiYABRHkt_Sk4dR_w5=wX%Zf>NC%l(8V*L5&@ z)VndogbS0`42oC)_C$d)KrUydRUdfz zbibOuQhZ5XmZQJ9<0t796V=;yaNeXT^HMWi8p&cm*|-?z=O3NMmsr&`JARh5GYa|a zU)X&2GDo3RJrc^@6zO=gXgjWJE*FHqWyh2LW2R6##1wqj=vL5L`FDK=>*4Lsj30uV z-3s$t_ES=4=_&}%xaZRe&@UpzYaY)O<(*{BPCim;zPRE2ve%=hbm74*(MWfsQx^m8 zbbic9?21%#meN1pG_BS&erkG^JRLKfLcIIyw2*%-XN|6>v7GmXOvb?a@HW*wOYR3_ zkWx4}jDny$^MbxTPfi6MF4#Ns*sH65L5e_9K3k~dC;_Br@Ag&>fXOMWhX z>Puz^_6%x-{l;eeu3!eK2xc13DS>Hfh*aKc(?G&Tgl2 zs4@^nF%Kb5EnNo`eFfU>&HOD^^5#H*QPRM9E1rYC#sZdV&FH{idSFB&pCk|hRfxZT zw6?y83(>=w?Y2oY+1bhh+*zZNR?V*@Q7Qn3frHaLKY3xH#1^N@LuDJR%Uvtcd~X1O z_H`2h!1~;b7QM$UGAG#{Aqi*37v1laj{p52YGj!gPp)ZckXRR!BZcOZD)eb9ANsj0K%53EC-@r!K_0^mldL zjhFxjiaVR?3C6)YxS1$Ro41tc5=3&LN_KGwXmvE};*@I_-H=_3W3`pzOsHd&k&f5B z|7s7rD2h1)7V<_NSC0T9c@5II>r&BdqdM`KBQ@MV8`JBi3Q(K&wIsRZcuxGZkvx`* z7eYBhk6hIeJeHv=tWM}9EB)SMce_!)h2y!KM)Q-o9f(WtBR36MC)}>{O0lIIbxk#a zm<>}qf6HzPjzG-3vnCqn@FZSIkpNCve`WB@x?zkpj_+wmqN~3i!aEg%xsb9&+3<}=sl_r@N3!BVUyq|_U zdxCgs!q~pG=R*#GO$ZhlBmiVPbP2TvP^y|C)*nW#=u`7qFSfl)~YVTFK%- zxT5->1F2;2S>T6+zhlbDiQHu**@&oPZEo?DBjjZapk06RgxiGSDQgvm8A+%y_7Ww1 zdD)Ipl|ZG+zlTex8QNs4?*ZQVs}BsAr_T0APn;bXQt=**h$Q));F4Fz6yK7VN#tR_ zt&&uIaWg;#NcV=UzDJ9EPs4tRMbz5o$K)>FD~!amPcDW0Z9JKE6{ADyd?I}$iKpJ5 zH!aDovWp85fynSHqjHzFtX*lLa)1R@!TAZQyp_kOD&9<6*oWS&R~lep^IsGCpu56& z8}iW!tpmKrC{viApf4uP(g>k(PKI7Vts4i2XspVnv*Qh6Qx z-rOdQW9yzbTDd>&{fp{+y@%e+RQsM~OMld5U$}JmU-^_;XT2M6=?Ywh(kSJ;ug1)R zG&>(W=zI;4a!*G30fd%9k2$|F8tETR)(4(}+g+|CkH@sbBcc1raP^+jx6p=>O5}ax z$#Bh{(pIPjt{A7BoPDuwXYs32e@-XF+5kVgPTqGG{HJu%kFf}w zq{#mBh@+}MxiY#hL_@4eI|MoD7e~{?w$KGNX*V{Falo>=xIxyAJ>f}9#LLJn5!f`6 zbjQ~pEnbO%5Y>r6$oDg%*AYvwl3DOJuOYGm1Z6H7q>ULRcCXB z&l+Nr`?bTP%pDUg4%r7YwNa9nVG3O%aU*-hrWv6y{TmBeB_?|rqDfaE2hAS~StllA zjqndQL2INCDi5o)kRy7?ONw}jG(j5ymfO+b+3QaX8Rky5CoY^(?UYEiX}~2<=>!*U zodb4dAs{j!A-8Q%*nSGWzfOV4vCigEPzyz1e<(Uh54EQm7))MYzpM&`VgIc+&0y_= z6{Su3Qy+l%iFDhJy?ZtK?hEiYDF46HmAZys?_3ezM1@KSBn7CpGmB)z0udZl2Je{V{He zp?Ku6NGA%-+4$VgC*RQ@!S%YnPc0A3(E;w}9`aO=alM${hlS<+{KIo2Jx~90$@G2d z@kWGajY};39w1zGr``$Ox$pq!?nTLZ=reB<;Y$}}AEOcJG892Y6X7eD1Z>e;k%kCM zw0xBz4VKcl5Cthw8nK3Zox~?jDl^^Sr{zEXWm$)u zWaOGlbJre!q=r-!IEdymb5R$v@9`xhr6s;wN`4dTJkCx+ZAnlVSpNUWI>+ElgDyA7AF=R};LR#}&BP6Kj=Y!banehwwlp?aHV#Pb zo7?A`nF9*S-2>{E*RxO!JPr7yK1DWc^2Idh+xbu_1l=6(+_)6}!Sm}hbmw_Z=T?;7 zWJ@o<{AUqK;gvRF?|BfkV=uAC-(KCOKPx>`Tescc(x zIz29KwrR$lhNseq;fwlOORtP$wwJ=6MqBG*OanNh$GAy7S$rs|eBuZ3y;}+7Y879xLSS5O0b@zVV z?&RNsf-uDaG~4g0A%cTL414>7Pguz$`Nr8xFpNoeBeK&XO=!dZqDI7=txQpIn6sGa zU_Z`|s1765g}g677bToKR|imFvYfh-5OxAvzqO9F1~H3Pnnknb(^JLUq$Aq2(_9 zdB4mA9tii&Qll`+mfMzfWu+DZj&*V^=sfF$9dutJ*q6I!q`kBZ^8zkyRo~qzno9tU z$q;lCULhHP1gV1}CNH$Mh^^E2=VV#%qK|kZEdDIJ>DMMHPHJo$vV0kd3&?P#dUDSE zI{h-UM#}m0;K%Mn_TO497Jd2&2!Ra_4|C+nX&*!dRUk2+ryz0Wkb}&4Sug<4y=rrb zepSUNmveS2b;98*!R66tg&g>vyO&bNcH&CCq1%DvcGa4w9>yYPITDpytoVML>5M@kM>EGfuRaLzj$WTOB@pVa&&WG&<7?%bkblQg>7iIXyS z#)-^i?I=J4?;Yi?jY)q-c=etXa)M4VJnA33Z7xvnuPI^(R+!YL!QT5yX9n-HB)#C! zMs`Oy1GDvY-BdSwWXUsOsNA7z=!R=$=4C`c&YYLKOaK@QD$dMs^Ri!NK&;Rzb$&(( zA#I*nXJuqk?T4A(2S&(kJ$;3;C{>tRY_eJM-wx@8VHA1a7y;yVM{Gi-iQ$QMjm@zf z2#Je+cg>RX`022C3%t{H)(n?I7u}IGh9&fP`l9S7^!VjFSXPIm!kD%owO6XJ%kX#r ziW9jMZT3Gt!x@n|7kKk4k=vm{>k3>N@~V-8^j52R$Px4L8Dqv`8>up^Vh-k-2mRvJ`d@W%XvQq z1^2ZJ51=E6VA**m9#F`6J(5RM*J@{Ab6ZTR({S3)0XrdK{>@a(bS=k9@y~P}JiN7pCQsk&QRQ$D$$Tex6yrvRRE^?ne`i;KkB; zJS=&2)6r`%l=ge|D;em;33Gr=4V00$R?mEVn%`TvNhFoJ80`~J;)AU!&N0D0yGJuA zMN*Be2MmY(P1kzUR-8uLT}ltF8|`*X(v=;KE(%#3b&&eg5w_b~mA_VNc5HXDj8t|& zqqd9LIyT(~`3GoIZ0EnY(w?(!oX4t88ib*O0g`p{^>F9X*Hp{v)s<_g6 z;V5X~x037|3N9$MW#htQT&mM$d5R!X&}x$TG1N&0>Jba+1%q?pR2~jzCs{n2NV33(y_v+Kko!%Q8em` ze}TDBph61n+BImvM&s1KRtfJQh{J_eB=gtL=ZFJ@5NnslSBoKphKr!`D~Tx|K+5aY zF2%6=ngc9u?U{NfYWN_5uuZ{UnQd>crH-~&zM~@oYyjvwKO=BC$|y4Mh5eoI-RK0J zaB-W9w!}v;)D#0+jOc)Xuy{@jhN*_vCnL*$FgAJklgC1C-CY{V3<|x0AE0tX@Av~R z8F9p9CL%Cx7!(gL*#uN34A$N=nasdjEL91F|C)>+*w&--LoVv>DbkwvSCOZ$8t11i zTm)kU0C9~2y+k|)UUEK+VLWd{ER;zDsG#h|DHw@Sr?$+a zAAuB#K}V2jkiF8EtAMyr$yu9)(If#G1*l?b1CCW+{<1&u!a=-kYJ2$ny|PgLKkmO5 z+XO_>id?${Cz$Fq5{jGesMRpXw5R#quO(#!T0%Od_%L`^oEKE0Bzp$qiOoUobP3MO z%IxLpPKWC#`%SBtS$8gQ9049`NAscOrJESrSDGY_LH7o8up`@$tqdfKU4S*?WhC!4 z<$^B|f3ANh<-U!>o$P0N!xQ)!S0?-q9kOTYc}s;jf4P@AGq`pYassUvvNFw^CQ9F1 zEA+GpTL;R4bsF%R=z+#?@BFH;#I`0@4Xul1-I$+OJ!2&K_>V#theJ5r29M)x7qc>d z)lHPYw{B3Mv+Pv1b)|PaKmZ<~uv4{Ruv1WFmTi-(ynLYO$Lt1&tN4F>B=O4Yq^T(8 ziG}Gn9B(!^nk)@f@7@+-hMZL-dm6YNxMDzF7q&PA1%jEmH%GlxLIREv>m_9EkUNoo zonvB(4n!O@?fQi06!D=_-~~685G%^Br1dUdrp3k~Fw7$Uh%Q;DbpmQ^3T-YrSjalk z&zk<(Vs<0!52q8I<1DLRx^HYJdA?|()0_9S=sFzXtL#bL;;ic2AGuaYEr-T-vdt)Q zFZ0q=N9?f7oK@_nRsU+PiCHUdrS9eDz@Y7<>tdNYcVaOz-e&aEhWJa1<>K zC`*-<00Pu`VrZ&p@g=AbU_mw*ue3+peNGfTx|(mu4kV)1|0aBa*;AM{Ajko198B#0 zch0p+cgucL!U@2!`|aNr+BG+nzm`Lq@CdTqwIK|$c|?!Fj@a#msZC-D;z2qS<&7Nh zab0%CP(OBNHgi(z=f-NIrmC*4`dvO+=KJmo*xarZAgH+R0la^?>j1hpbkqrU^!Rwc zE-#nv4~{MYIV&w2TW_sCtDiT*j|bO)a^FtR&$G*!%CmDlb#;y!{kn4hZ;hq9_Pu(m zqH^$>>h9iJ0pHmAcD_#EC6$&Z`NOY|gL8EP^`)Vm@(KXp^9)h2{%s(~w|tv?@bz}j z-TNgzVHB1qy?EKSNOg+aGN?4Y9T`sK^TTne9C-wA!ai)p)i$-MNM`4dpjvs=*k$Ng zd16IYR%dp$v>|X%`2DcZ^Vw|`7VdG$-nDWyvh*G)4W3Bs{^Ux8^khj$fB&?fut(5vlBS zPTEfa#&#h?TjVaGR#tPvZlq;2iY&-6pRu?bOYyR#YZ+rUZY`1scqh6;ZhTjc)7q^~ znm)iq_A%ND(;Nj=va<&)-p^1w(9gR4H@(`6L0={2!iGLRU0Yb>En;J}P#KXE%eCHM zc+B0N)d(Ye65kBaXG+qw>5cT}$s?JEY`dEPzBikVWt2%d&^-K67dCp!tuw10kI%Cs zH!x`YA!u+%Ay>srplDZ#`pdKJ_P|eHz`4L@NjL%r<4j4UG(1L0AI#nWa#Az_KK;$c zBrn+B@2Cka7p9$!KeX5h38Zb^b_JH+I$QY;C!yjWH#FWF2ccd93GiR{E9f7uE3h8` zjlPoaM*^!4g?Gf4sqaG*r63vHRjC4nG1CSqtK>6j=w}a;Q zx!V!~q$jGuGFW@{a(n;x$GUlS;{naGT}TB?bhh$yQH{IaFw)~7)Tiygp&q311uC9U zzv;|QxIby^_sI%9EjC5g$qg6w+l)_uHt;Jb1fSzUTt~{rz3lou2v)Y@Cr6jsjxfEh zdjdO#%)R^{-zmZJFN=i~i^V`$ee43)=Z}WhSXkCY{E=RWB+Q9Gvvo?#=KY-ya_Lyb zui2aS81j?mN5EA4K51DsL`(ReM?_~jMtw1@_YWbS_Sn0MHQh1T>=-65yo^pjPk6i7 zD;jDrl%g436%9U1hD_?<(vbI9g2o< zwxQKj$0&&gRH_u_esN0=RP7UccLRpvR$=_;H%lAd$Eksgy^y+X&(bO?>%L=WFg~IW zPb~rRiwkwlNaR5k2z|E_S^@;{`*(|Jf4JCE7qxOe5TezZNO-G|+2zF>NVb34B|KqA zV#TFw6Q7!PU_L^}5615z5q*54$z?;{q;xsyFjhzr-avz|ZES3mDb}sxov+&0ijGuJ z%Wo6e-x_xJ>F)udKS-FrKJPM`0IU_2qSlgH<$Z)EVCCN#a^5^Pk6B2 zn>{yM7#a>?D1od>WHnuoC#eaZs`G2+&4FnCfQcZwh;thYar89VQZF)9n!3)Qoz1{> z(txSPfKNmZee2(R1VgNsXsq{{rDwVrN)d zkT>smXH;vBWIzgjptQpZ738xCfB%q@!4&@j3Ua1CWDc6)(hd;~tH3mkx#Yt<(pl1pXyp^n>ogZF&D zHEyA1x8vBdm+b-;NqDg&ALimXn1Fs`nt-|i|BDI`Bc`|X*RYnmactl)uy?yGfc>~l zWoGU3*pmAvRgH>iDu9&%rD7-o>W1T_vy;^MtLk zC`>&L)N5y&)*FB7$=qTge=lvTZkhvUQ$C{G5=90VK!^#5?vnZ&%vpU<=k}X{Q3rWuoKpiXML^l(T8nM?x1Flboj7xJbGT z^LNvrhYAUR)7~0F5a!Ws#|A$ib)g%i)M%$zLi%xU7toDC!3-zyOz+F#>p#05Qow|z zTxM+nB^CUWzf8O7!_3>{s=(bO9dwrw4f&VH^-;>27`7QDaE-H-$o~Y8kYqvqu!f$& zu|&G-lzP807W>yE=roa`yBcAvU!1!-V;-5!$Mt&wje*uS!)Q6^Y&sjB3s)YJK(`>k zp7%O?wAQ=$`c4qt^S?MHTnPlWRMjYc+l)SnL zTN{)yH0#;<1^v)v-HUl$_?fRu`7v&q(`cvb3nI)4lPZIPw6y#YXOFC2O%18Qynq)F zT0jE;rwhMUTlwKJ-6bJ>yWv0}nm;|B2)(0_Dl5Fyb}P&X8J<-40{wUE?bemORZD+U zXx>640c9&DO7YWH1^NQdEMHi#WEW$!47Tv))SSsIJ1*b7I}iem4)ZGS^+x?W#A!JJ zjkGfYnz$AGyZ>8HM2I14s@BZ&H72+z_5xf6;AL4~-G;oXVjj*Wkke$+$?vQl%MZhf zzXCHV4J13@$@b!n`)!Ghfl=-NMU22RsC8=tmm5#UjL-^aA_%+iyVc+5WM=l(%SH|t zu9FF?Qz|-w3K=C2QMyiK+{;srk~I)SYFeXSNV1w~PnS@YeO%kGNv`0IQs>7tqWdfj zNbbB^HfsI5SwN&W(ncibkw)a(o<`&hhzr+IaJ8j-3($$h=Zwi#8fweEn2IzY+bCIV z&|w^5n+BhF@1MN*N33Ft3gc?O9v zE3;DiC9!5H42*@LGRhJj#4g#W$b`pI8syNH#Y&n5!5~q|k5Q0t<$)xQ$2(b{S5k-L zCai2371n6e#Z;HX8oP$6O525H*x8M4PO8Fi?RR{Nj>h3ifFbbx{@X6jBpq8oY@icj z{Sg#_l^HNIG#D9K7}4uo6d(}>5DmheaIiC|MM{I_>{RVSh^8QN-TQx{B28e32a_lBVFwSlg6lPzSzTd7M`P1lu zH1s()S~+!o^KS^_S-hfAXL7;wuTvy^Ym34W?dOZb(cD)4rDv~}RYzU~z{+~FWYtb! zq&=8CP+*Enoy-<>#Rryl2y|usX0^Wc$}7IC@t)hFt}LuuK%YT{NX3XK&9oxZPNI1{ zjqG6IUXWb(aB>bh%~mYaF9sw{CW(bXu~$)3iKuKG3Vl~CJ6>MGNeEmcne1?7Su06A zjxMK4%gImw?*mZDiJ{*BAhdu2bfW8yogi`UY z+ngZp3msc5)eB#rAk>Yv1tI=Nc0s%^jBm<724qjsUR6%Oj&i@Yyx)$Ivg7VEZCC8> zFPkR3S#s3?7vXv`z$z`4{v?#iJlQI4R;-ixAap8i>{z0~Jqq|qG8uY&dz1q3?jhAH zFC~RaufL{}uWglTk#ud@xi3@vN>*~{`520gU6``8Sy+yp+0W`rDE)P1EdqT;28p6* z5aHQY-UgM&^a})PHp37bR3W-YD!y~5rC-kdv5G>_o=UzI5R&UQ-0*LyC0nq)$eXN2 zJK)kO&h2M8j)oIoJJ@3_W`?^N#kC~nKqeNQg}vjkQi-&kps)E4&fuh5mbI+X_3|FY z*3YW(7V^sT_*y^kfOe6qn7Ux5v9T_L3&Dqqgwa%YG>-{4#x{a9G zDW}tA{}%ZM=umJcWqIWTvXdH74cctT@HLW$NmeDvNAE~kPLD_H7iDC+cfkt65s4wO{=r@z}ETXw42v{yFRDe$G0;&tVso)d1Fv=3}lWrazecAV`c9 zL@$W1!wv#Y_m)J6$}*aCz!RKe&>bz=Bkx|89b64+e$#jOZ$vDr9!Qm=*w$b7bgr}`A&zii}v zvJ!)LR>Z;*I8KPxjEeE%8O)AGUkdqR$It*QEPsStGmt3^@&w7%Cnu%Q7?qP%B#N1Z zz%7zW{x!s8DgXzVO13q*u!|8+@3l{UXWCkZZBQQe&#cYI!>uIPgnVkye{Rx^ng8J% zGH<079yAN_6Bqus&v0~?;DnKSz>Xci#}3msR>nm##f%g3FBKk`o{!CZgv$<4 zK!jyyS`cO+@n{8a+ao*CC*n?K5slMS+!4B06F&sI9y(V4WLPT@#hEoPK-)gWfuvl_ zw}QdJu@HIgFbEK~roZ?X9*A#O9x86*W~%MPcR`^8da_6N)FCY;@j!`}WN3@H+|5L{ zdAoABiX6o7OAmBmQN-37HXe(9D$<%54wBZ0F|)8WW5-K3-^r{wo0Y9=Y4KDIoK8I*ye^HJ z_|y}BhhA)gP1RNgfv$)X0$;z3*Hi|0eL5jc&~O(Axi$As@qeizeCZrAT4WiZYbGI& zIAzv}eP!!D1Kht9Vj*9c6)>T7?_n*p_m;YlZEDv2 zr{mTco^;*P;x?iv+&i_cqkj#kp8Eb}Cel25%|^|XJvTWj+)yi<#6d5~#k=C&Um*1b zkwz%_MqU|YWgOqIzyqa~D14`8xbsf}ykI-@{Osmo3?lg?H!2U7dJQhlK<=%^thkZQ z>}!KJE%BQfJ>eDW*R7>Faj9e5rSKCNI5`y{IU3yd5QKW(9OwQ`M8ph`7fF8TSKqfo zD5}!T(?EX&Kbz5X3yMhXq}o;yi2`goN5#sh*%}X$sI^99b5e~ zBj=x0QBXI~2O&1@vsQ+ij24%o#FJ7o@(9! zym`a5;5PpBZLV>)o7(pc|&+*{MZ&i1f*YLCZ3@M{3rzK|v!mb&_}|c{zh!BtniXaP8$U z0wPfQW}H>fRjfIHbvX~*7;8kPL8t8Cy?J;qp3lZ3MxjfBI;783h;K_*9eXF7v`*Yy z(*az(fiU=LOEUf0QR9nJ-^w#Lz45UdpqYDA2Q zg@sp)UY`S3lT)Sj7u;`RGLDN$SiGWhSQC+9S{hW}MGXM(cR_(o+)ig#>p9Mm7zuQE zvhj^DY<>6+o+h5D{?RV?G~F1<5dZhejeee3SCB{>gfAZBRKSfMDgmlr3z3sXhgSaQ z7oAwU!VnSZ?Hoz&0*oqmwMH?lDhc~RU{tO3B3!h7ik2cbH0DIYhgZ)%Wo%d57K*}@ofBIk#a-9DF`at0)oNls z*rn~-)4I)0#eR5hhldV+qruRaQ)kd&?&c|#jD6Z#Ir7XwY<19IJwbiq9kKiSjfE3| z+o%yB=)qhl;C2+95H{H#Wy!JZ!ja~vf?4=i%#(HKXd69a$%;~LN?v(fN<kaMkA@RB#Vj(P5raNFsS*{G5cP;2Ho0e)ERhJdm@wP9!$kg?0|4dze zdDM_Yl}S~itZ(_dJEYYF*D9R$6Swj=9O@i^uFUr_@tAQ4X;5Tv-&qDq$V67onitwd z#{4&KJ!XllD{dTDiSM$qUN4UF1+S>sI6UWayr@jbsvbuYpQh6*6QVsON1sZB?5ast zGKa}&6`Or-qI^2X?ZQ75qhZ#Hp;wPI`soP>v64d5gO2^mi;n9H!;>N`O$G&LDk>ZHlIeS&W?!4)&!?|(iB{RMW+#1IE!Vw-sHbn=gUngO4kP!Hr1xwONTvI5) zgvW7JzJ{R2J!Gi`v*Z->`iP=)Kd~!h7kKYepr=lzv9+^r0sNF^vHxjD3V-?GrDSWv zpkXoopk;onL~N||EI&RZCJuTwE<$DwE_(I^%XerZ> zKX@6=S4e~uA8#;h06Pmi=l>hw){fa4jrRSCaOaLV2iP{9wP~0j#fI}GbXkMJ_){Nz28T!)9rUUeO*4gERJ09 z(>bp7dr)M}zbMibo3j?DO5fGSj;2ahYTA#~-*diwKhIK>oxi;9k7jCqJVl$^AEyjE zY%5_W_5}1Pq4J3jgbFUYJW*4#Ek^Tl1`ADDC}LGDJ(x}7QFOtRvH&^VT-0`rQj z;~`Gh0*@sGOBSp=%CLJ4n;e?Izprrk29-r&UU!(b0q-eKpHJII_=$fkI`R; ziu+t=7%7}mQ`kh06i!e23kiA43SFyjky0s@DV}A#<(S6DlT)ASJ0}Lva=iD)S>GWB ziD9eCfj1+yP_u%Om3bdl(_bYu85<%d z%CZf+N}T3PC*BOrh~poI${ud_Kfu@JWmr>a7R0sIkN>_=afjOMkf3y)9XrVYj7Y&IyF@aBy}a)s z{c`#2_r|ye@k6S$&~6jC=OR+|hjlCcf7Pob$QcVAMJqF;dA&)IA}qKXJqgnoC3GvKbR_ zj%{x_qKbX>%_YJC=cVn9PZL%tG@l~YlLBd)N-JobQk{bTR-crK8>+h%)0|Rh^gZs$ zXQKWMl^W^tLEq!8)zDVZ0z{%}2(007tq6}46uIegQny37 z=~e$KkKiF4M>bJw13l>5{vOdP{TisNcDi-tM^8+3;v!rZ!=UNF>8tjZNtO9Tkn z7)5p7LzEZ@5Pqit%P0~DWoRT5u;ATD8_RhM?aHTt+l2t3TLYPxks3)1Y>h;^rwJX; z>T3=sgJX?A%V-OYMWyY=!?+crCX0~1jAfCb$`I%sR7IX{cv5Mp*Dg`Xf|*hg#*WET zAda=jz2D8m90j;Ky^{5AX7V+j;Bf)2c?%LLNT+kl;l52PH?(YA-`;Fgc~w_~jm*o~rc ztu=#&YWE5T6>@VbdT+8{VBz~`dVH@nV`}Z-Du^Yzqiqw|Z3PqEfrG>OSvR6%jURIJ zr*A3Xz>eLzcdJYn_U8vc4$pCkTama|>fI~W%5ay^we-tDK z0Y!5=&=L_uF-A$s`jN2kKMKZ%a6$IPl9Ur8k{9Vf>2gI%m4TLPt+Gj!vpBj`8 zEiW@yXh_TSQWZoehIO-nQtosFxLQK+t?0&MgY|jf7VXk}yt~V9UcJ$aMk<#e2h0$z~#(vj2W>}W~e#k%Gy|Tta;JMv;2~G;ndNPYHy{32Q!zk zJY;hc`-o zQ)?+8(B|!EyH24>xx=LjFb)lOv0Ur@Ph5#0;hyePy=L%5f>tX+RK4gxMZIy*&X`U` ze#lg%O1=6NQoxCQ?TloA6D6PnB)ZIhs$m8dl!+j%7|7K_sUk@ZdT~(C`Mk^Nh>D~j z!}Nfu>sQMjIyQn99)vSnvpL?)6%vUM7ta|dXh_jAsR{j#6O_jc2!uzK&aS#Wrq!ND&kTkQR&Hzm%MPbMFH{HB9VJcH`Q zr=t=*`~X})$1sr~c4p?olXW)DJ-{5-O#_B387#d=gQeh$lZS|0Inl@(-Lf&pex!i|Hm>O}qSy+GhoKhnVrri!o`|42vvBi$L)k96_>m5!Fv zVz?SIvS6hz_uK`IRhiTPK7f>$=6C!sfWZ~2Ge_)w(RB6#N?fdd8xQ2#+z?S3a#qIR zhzh*c`2eW$(g8AfBWtpJ}deuMR88A#mS5agq!EmH0vMX>Px!d=~F2{*nWhw z62l52iw_14NoPWs7zZi-aU%jSASkVdn=}jvr%k9ZnM5%%C2pXWkjqB{NFB*{S)r2Q ztPoa0Z+uO@TtDhFvO^CaZ!$+5PxrX{`6s^y-ufNs@fE%%9(lh_r9>A)Ey7nRBz%al z^3}PWZ-WHDf>6m!iGCN+wqbang>fiJ5cUNJO$PG8fRX-pK9Oo3Ac7u|tRr3QSnG!~ z<_%rZ7O9~Nu#dn`J2zN5@1t+ysjiA$UUza@+T7&*On)8ucEPKbLAaVx|186E>&mO{ zS@Dw0Ki4U$m6FnyGDU-P(e~cRK*Z40+Fi(eJk@_M~tycZ(|Z*K$PeCqVeSL z5Zr4oG(*E-*{|vacyejxw%LO}4WB&p(Rh=|e}mXg$%n=f*yq3{p38Ck65jhdEUTmB z{&=Twe%?CtX3NU1BiCu3ugf(=w>Q^udnRTdt#57vJa6jYS0cGt2FKGJdOhC{Co=J^ zze}fsh+Yk4*BmXZh)-0CzQ<8PcJ6Ojyh|I2{3-sc-g_7dc#ihC=v=gP74{a+c>!ax zU+JLS+<7~k^OWe=nR#l;d+2m<F^;pdq?P2}i zSylU;C8>V~fD<<5T(jv?e2NN|=O7*Yo=a^-WyUtOZq<*b-?q=j9TGy~0z)p8y*n+5 z+SoGq@V=jGpKe3eS;^UEOD-UgKOzX^9{!%;SiW$j-9aIN3DA87_JKL09dZFx7hb~koo#*X;4F|QS~j2DPS(hVC=>gEOzIU_ zd$#3$3P$&~S&Mgd5ZxhKD%u3Ku3&QD=Gbj{f4vq!`%8lwqvmXts6Fu{@waLYp5DBE z(Wg5T>h9hLWC*iQhC#J`+~?H=G)oMLv`e}JCVIWa%-?+LNi0dCo}T?|;4PH59`1d& z$QsyUDP&UQj~qMLa)X!n@|+D_(Kmc!ytjC`!p=Es~4{C`P2!oGTyxrk4Qrr0Unu-!y{gc1t@ z{s7DTzSYMkBQ>NabY^jQK-(}Bs&Oq7G)n9Hm|E|*;3K@5Tkf8%$YKh! z7tuzo76n#ZBWiINaq#I#;?4QQEHV#08>D8~?8R^C#G} z`Ytzk3ganPx4m1)Yc~Bi&HTOWW*!I+fUQhbszfwcq9yc2NL*m(GT3Q45{3!?*M*xq z!f@|=?^2BrGYaSh;_dNW(HzYm$f^lAW}lig0p5=%C9Cv#ET}rm6)l=2dp=WQe-}6* z2@jp-on&qdSm|FY?#5CXb)@;Gz8yB58zYo)8fg2H%VZDm(K|JSYe1=*YZh5ZfWB_9 zA&SYiMDE&Gq&jHnL$7kWk|?p-0R;o}VV)v18YxB2t-LJpq{hm%eAbmmJ0O!if1d@9;2@@8>h+}^5M z9CcX?6hrLxY}PF{dbT@KOi$KDzJ7DuT8B+&# zBDWn?%i8%wS#t)xH8rf>sii>|Hd%D4gG*IGsy*|YCr=hcdy2O`_lzm*o2S2Qzw8@^ zfVPjc+~4=AO)2QlthMmLNezdErM>i4cgnE9xox!uqxn{MUfrTW09oB%Q_F+b*Nbq0 zKsxHs50tZ~G;0@_@#HEUTm{=PQ=U;b+GyI&LzD^JCRykp&1T|S?RCA6aY})@@X}51 zX{_bO+T=yvm=EnQa!$>f?>fVX}IoItK=ZLkQJSM1^Z7 zI^a@7z+3cZ;riYDWpfkFpo6Hj3l0`GGeb<|3T~HqmM%yhea+D$uS_zc?yvkc!RXcm zjAvr(Nu6^^++k4ZbT&6yp%!%(1geLw1_hOf1MSGN!^YW7zjI3571$9eQleNCB&uVIr^)-!NRHxJno5tJ+5Ta zKi=0L;#UurQ*=eXsJXk;9}-YsC$ zI4xKcn6z?!a>pVHVn!sT8Z2D5ll zn_WFk*_vR1`lQv+YB9^xpmi`h2q4H*T=6hb7y^iMjmvyI z^Ud^qv`11S6ZCKGQw=OL%O^1KSC(M2WefX6*0ZYEDkpuZW9D(82T?37kgYW84N@OD zEflQ{FZTu#T`Tl)!{TBPH*BZYD$uBOX>%qsHXUP>NfVlJkP@s`0atK92tdi|w+m^- zt~P-xaL};6(j%Bt_J(hhD*{xCM3k|A5WSOwDlahA2&4jOXla1LZ$Uxm04NdyN|9A+ zNC%g-CnH#^KVzTY@3Rn2JWqni-2x*(NedWe!4T=+sH$+{{4|?O_^K zL#SnPHBduaPYy8USx$McS8qV?ot(<<|G;ts$NkB}#BSS?PikIYb^C0$2u;CYWJyLX z9I16WUs;TZ$VgGxY!E&UKZ$*;e++!xuM4s*ByrlhhqDnUu4jGpt4yZ?`ujp=g?Z$9 zhnsM_`ObZm*8pyEB^?u6cMMl`{QJ7Zwt#&)`}&dE6F1qA7CPIqzXc(9f5Jt0;NR8T zIo1_)bC)`cJ~zfVes?vYR-LoisOs}(Y4|QUYfQEwoJdVKKMsq*wVc*oI3;BB5pP8E z49!&!Jn1Zjw9XQ8@SGWRksZZPTj10Qo6Eo1{`t5&@du=5HDC^?Mtkd*Q#~F|b;0Kr zTG~Cm{-Icxye!~kkai3F46wbkAm_epkeqI?T-#`&(wr$SdKY|rTDvIVGYzrF6ojfU zlvAaE#7>P}*ie5#M6zdTSDcRi%8*x7lUdNOzHR83`8o(W?7qUPbBV-()HRdQ1(c&p3hAW${;i1w;+|R zo`ZbzrjP$3ILRQk`rn3tL=XZ@W=>{$PF6xzE>3!O_Wy$4*f|N=m{?L`C1G&kng4&9 z|0dK=x+UQ4KaE0vcyBDMgiNf=^vs+;H24d;K@{{O+gAu#{{pMtWovZj2zL1L$L z*MMUKSQ**>AN<>p&bd8F3-Y&b?$#t z?(n%M!1bhqo9I8>PlK)6O5{ZG%WmKThipS@r>-9Qafx|G zD1rP;Hhyx+4uhTAxoE>Wpi`bxj2JObzBeF#wrorCA&W$0Y}xWVYl*zu`lrG_6=XvloWTPc$qJ)0=pK{#L{$vIh!lX9d$B3;+3el*o0;ptNhv!^XPgNSz&|mj- zeB-lw%aHGWYb*tUxDObsk5@!cuWuZ7Y&FRo&}*B!(Ox(5LVdj>7}t5fup+Kh18M{>!sM>^80*aYRRT00DQaGHP!D^ za08`Vhhqq0M_;+;2t$j;DtBfDXY=NXzmCYv#_}gS?*Dn?Du8}5urGDqp4jTEn$(Y` zlo7x88%x zU?uI~PvB~-vUFgH6-XD9=!+E{Nt?n1GGt&duEC^cT#{?wK!r3+pM2B*a^Xa8?iTqf z$+toDP*n}RqELpne$U4KypDdaFkWd?Xd`CRFe9&QQ^yk8;q|_d4b;@wz zp`R!_WYcYSW>AQy_JuwC&X*q0Sal05X`qW;GHJ^E)GDF$+t*0u%3%HH_UdB@<2RXT z3Lquvv8a`907LB|ThnS0@~7`d*>DmKs2k-P*YX2kq(HyunukHg#5FZnLcS&PvZ&rF z9w&-WKInlQ-uwJTyH-_A0bR}^DzHx}1DGJ^_ufI+T0`wrb{Dw}v_R1CfeDX8r8r-GCULWUz=SyQX z@9QyOzBnTXWd+r7zG?X%e7#eUq*1%A+hyCfZQHid=(VxB|#haWJ)hl6igjm}KibWAEy3+at3$Q}uA%LR5aD!}8 zn4Nr$Rk*#&=fHxuR8leMbEqITx`nD3I5)`7DOr`m3x9RnY)~%u+wSym@SlA+oRS1M zMWU0mu)W1_I%S(;1e+D3_v>o8Dw*p+A4fZlO$Uiwza$z!z(c&8SUKRtq0a16b4_)u zF6xy01xca|v)lSg=M4c;Zpe?rD@Rq1+$-fqm~*N*m-uOO{FIf59?w22#EsH6*YnQ-6iSDHxQiyJfPm5q08@|n9$c5ZRSux zn}+p?Xgp;Yi6~rHu#YvP>mA#!J^TkK0T{uD(1Hpar@rWb0q#(dl9FZ1M@DVF6+-j(i=R7@>4L5orH2oqX zOa`+Y!*+vXd{A#K#B^Dri3R|^nnc$SDDZb^$hNSkO*F@04^k6{;|v^!3tm%WQcSrp)wG<=rY~1`jtvg<<1*gUqsfNj&MHVd8jpl_RA) z7BvC@uM{JCV4JF1UB#IA(xf+q&dP^RF3tvgnzQ?E)**##$ zYSdgPNXs^%%)GEOTLPf7$E~ZC#ddxi5vdiSHFIRYwSIQ}^}rR1^kvvimUxvwPmhu0 zC=8m4iA|rKcT4+SAqM>hT$#0bpc`2tu+bI(c)--n3BcxALx z2SOsVN{}0)fDH%=_WdSu3r`+u|M`B2WS5piuPG?eAm1+T|2E1e9kMNnF?9Ox*|-ui z({IgB2lp8{=~(uXHAme292G~Z%D1Qz`5bnmxbUGiiLLb9$-1lFoArzPoeDv{qPae6 zkpKJTqzwU}P0^&e?Ixg|{t!6q^VLD@R2nD^qMp7q)iJT3*Dn*d>hiNlW||QR<56x6 zo?g^KY}E}2+~4s+2l%s60(x9`8f@VXEEr%De|%m4@`%Fzr?pSX-0nG@3gf&usLki0Y}$1%yZSIgsg z&Wwhax}35BV)cN}3EA)dBr7C%Su^=)Vwr=NY-;HNag7z4Drz}Y(s#XDDwagr6oWff zyYwx97=aE6>CJ<`L`s7wYXR`tAEL9U^OCR4PEP#gmgw4ynb4$B>dql{?R!XIBjS z9A%U*KtY~cQ!na#Gv;BV9kFKhbT{))6-wIyWDCW|9+9b01(~;yq3#>l!2$48jn+!W zRP;re!FUZN+!lY!H`sjgrVnzBWRZuB3PTfl= z?U|Eic$B~Yp4cm~5mcNg*`bVYI;H0HJf zC}+0`2nl;7KDF4QMeb^t&(G%8(;+ob2NoRARx_V`IDUd(`^yV2I$~DPZ>!ff_W3@y z(Ro_OO@T5F#Sj_oB3?5Ul0Oe*&(cThKIr>YrA*pt2z|qI!%Lh>S@xWzIDE(yA#6Fa zh+?_6grSC751wFd3c%T`dZV#tjQb$~l>r{e8cMIb_!a%m@{E@Y&tG#fwpq3W@0k*@ zl<*tLjm)<&-lAMyjZQ%R=}Loe&6^A-Rj%2}rV8}u2^)_ArLoFPxKo?aJlv(HTt=v5 z>rSB2DUSPu7gPVFAb%0EIVAlPGVCCL{m#6@S~Q-pksB<$badbSCW@~#$%*R(h`fw& z0YKQQ*IJ$`*|WTy@wX4t5GHQMnQ@EhN?0E z_jwVb6r6jkE;B5UZ~k?d5H4!mOz+#Rrx!zG{|^1)qOwVkYyY|j-htilUeOucKv_ds z2WDeGF)JR~_jl=y{I?MiYI2$aVD1R$5(zEBb$|b_B6|PB?838w>Upok*R>GdP~gAS z%%dxAEeuryp--;ZIZZQ0YX}a7jI+-Jyjs~yIEI3eiW2zkw&bw|D)w$6`m4=;D+&*2 z!>OSsgTKgu^#L6Hua{m4has~IV9A2@Pe=Wg5F40F6VpqSq-n zJmZ0zFsDSTj6(J_web?Yc?*5TkY8B zmB4lvA{nQCCfZj*+{rgT&g|VQeH{RQ9Nh(Sk)81)zZS3XoK@lR&gx|1eC@Qy zR5#j$E$v7W=wLpnBIeRNZC;}1%&KtNirB05j>k&@|#k8j%fF zFnoe9A9oAYj7ISNM7s8=X5y(Y%^g1EEpc2V$aQRaW3-ud0|G6q0d-_IBY z89t>Hl4Qg^SibtMXxXLFXUq5MZ2qm1rD64o<-`vIz53E7TlE#TeEjk z^M4wTsTj9yI8%}Ir+L@M)mBoiyvUPL9v*&AxOTdZ&P}lo_k`?-U+A%OH1^Td%qUY) zgPh1!m%Ju4Fv6so{WD~1wP^t2@eV-zrWYKK(Jutk`a16*<2Lp{!@BBDh zu;kG1hq+(Kur$FRH}ri=!=+Av)NhmU#?%{nKBXdo>aR%k&lj(d4Ms&LfM%-s_0Aid zgkDPou{o(OnWkweYY+7iC?ogm&2$v{hVYnH{hz+{KWz%; zpnnnuIa%qs*a_L0xagUGGzn&URwhFBpX|W@FrY|G|Id^_LEax(0ty2XK6Qo`2nCas zgNgn}$oQWMY(Etkf4=-wNR5X8!$x4@`oA$!mQ*2OP}J1n|5VszgCxe_V5H|FWM^cd z=VBsc=KASv&-&j&ss408SpP3!BUPI3XQ&zb&*XZ#peUG3>>Tu*%!F*5Kbp!<+ToA1 z!u+#-MwV0{T~J&^w*M7!$jtcPki*&kR2Wf#B*JE5WT)q1A!PZPmzj-_iTMYF;=ZQ$cB@%L2ASG+O|GDp6)zaJ3N1H)pDqH1Ga5@zWHD8O5Mg|33htg-*99mnpDR} zJ6r8E6Z(5;=Xj^vWSgc``V(Un>~>7X`Mz#$>~?e+5{`1mM}P11ykeD52z-Chx8Ku# z9<*Xr3n?^i?q+*?-;YX3omMMGtWC9mNKvwr>2$F0Sy0Gse6Mdx`9A|OzXzFr zU#6!16KF2W;d?g=D3)HUOiK?PyjP}Q=KS_;>_Uw!U24#r&9x*b4=C1dE81pYcrB>7 zI3iPtT$;BIDf@5{G)30VIx45uOJLXF1K?V4l`a(g;r5_yqE!W>^*+%%5Gh+{%7(j_M%mPBO{st2-cF42FDcv0Vq~#F+rRX>uz>eguzF1574{ zhU&Hbn4KEH^Cl+)2+={QFqn^uper(|}OqRTjRLHLQ98P}w0?u3hr`9rO` zrWP8q`kRS3!Sd2Cpi(}u8oLDfjOm?-7pv7EbEtF1Xz6fGFBpgVSO+r7oVBQ{fap}s z`9Wx=+eGpYN@Imb*-bc6%xS#O0X5K^MswwzVx(199gQ)oZLizDnUU~ z@}!+n=WP9$^Y#d<>*T)4P$GByh_#Y9WdjvZxxc1FpzO<)t4ASXgjpd@sy7>lLA0&x zA^iNh?g+F}>May47*$gc!d-|M^?C|m&c?G5Xfj7=_9`e|ZT!%DtO**#0e^bZK&n&i zvrovhTIS&O&)Yom7jU5(o3btfR5N;SHBW;h%8k4G93pu`ZQ9H|ZAR&cR2T1YYoto1 zrkv_2`zK6P-Y`s$Ni~1nuEIO*Uu6w!f*J8S)?!H#eAQ>!1(G%}CC;=0Mdb%vd&w3b zRORn0pQeRc-)y$-tWN-g0H7OMvK(hz7b(Y$;-yl6RR&CEkz=n2Cyf&da49jKfmejm zzCr*t)`V4PsboT{A;b+UVKWIyzm7o&u=gNV=^=Hu$1EZ`;rcigT#ycJN0GVTu+tH9 ziw=Q7B!;m(>(p(e_#Mij2{HCoZth`U%GY*_^k1;RaAHCY*}E-P0lL(=9+{7tgfT#K z?leF=$jp0jvats9QiOwk<*av|czdn5Up%?Kx)6N49xHC3dgnMCEvjI z*|@|x4JH`1&&U5pn+XccL9c?EiLw~*9%dbt7NnEsU|;Q$txprRj8HNJqSkVXbb1i! z`!bI4x^OwvvE={YkM12GtVw1Tt-rj_e^zicqY8}(@t1le!y^1wNX$~FG1Gk5>^1KF zBl85{LGn8rqpSIIX9S=F6V%K-euKbK=CBCWB_l zGBY+etrAK2#xMIxAg&&*e)n0#>YuIuXq0;(?t4ceuURiEAlQHgF0BPDkzKhItkKOa zgkGd8G5J3~qe*b9r6jYZ3$m<|R!#dEWOjVh>N11uO5Ws?A>yt$3#!YlX+mP0N*$Fc`mwb8kRiHaC|trMu* z#afVLW-pfB58#Y?`L9xf+*07VV0`hfmW`a^ zcVpiGhG4)w_5xTJ9SdFNP1tm@gPPg_RmMTMo8Fc^sSH2x9!5) zg!lm+*baT(MX2PWT!TW1!SF+sNvr}6Gm)n=hvvn9bk_CTIpV?;SRGA??YwG%@nAAq z*O8|oz$;kKJVBtgPy;kexWU?q_p0w+A70r2>$}QmvSRtx(?*FRPl?>6@>*kH8C=9E ztxnO%tvS5#%oa06)^JqNxngWKb6JcsF3y(zb%KHfT6s0|KLs~_zy)e!*xB_LAiK%W z-XKIJLX|&O2Mrl!i7DLAk;*;t@=c5VgFPP<0Z|v+`w%e9Zm+GHGt2qOvLg zY#`EroZef(5D_Mkrh(ywiUuaeR&7*+SbJcUp|{aokNyYE1cuN*h`V-{ISTQShJND1 zcg=&(Ww&jQKKwu0Z5v_!XaRkjYl%Q(MGm-{t(|mlwWFg~7y(jNm0n%`L^ny!nE8+G zN>bEk#xj_knxKnND%e}zh@1(m#3Q+YBY9TMC^9Xx5YnKs4%q&SPTGax7ZK|*s0f2# zn9zMqv;4lrbj(n3@_Jir-FkvbiO5IcFWsw^C5nWHLaQ~7)_6J&+y{kF?<7N$;1Tke zHWt5G)J%R5O*Z4nvEz6$7W66(@2+Mq5xlb8{-A5fZ<6G22WZ3*w0+oDs3-zJ6ORKX z@6LqM5N(bjU+>UYW1g^Zi^gfWfkjc=y3*LZjunb& zIFUAG(Rxf9TYj|cEl|6rO_C!k(~Q;_@EnS6eeDRNU@Xfbw52w}ZY37r*xdoCHHN-! zZ4ry-NKrQ8-rLYI&k(CNwn&pY9dKk|DwxErR?5TEo*rec4}8!56vcz0{DGQWa? z14Zq5NUIFGno}^D@6q473XLgU;M#Sm2PR9RC1qEFk;(OKvcp$0!~x2zUM?AU`oZbl z17&sB$fiX+m%w#8z+ek7*IIS6oQCpbVOaHg2ugU8wJ3!v-?6u&v<~Tb+T{Gom{ZRbDreMbiv`G4w%=62|2Y%B_3Ib9ug7r``h~HYbD1zlm1E<;yH)%>*F^2+#)v!91iiVXP6_3oL zsvz5?3m?e>i8OE)s*PaNjq!<<>GCa@KOLH3(|H*srPUR{ojKYMZ<{;NB61rebg~2M z?I6*w(1;!ol_yNkL8Cs9@9OTzYLhhy8Kfu31*eQOh+}$*AIAWj0Ih{LcDEH^r{T=5 zQQ|`i?K+I`r>z5ueGXgjyMOOsZbU)5bq+{BuN)d!noNlvjD9+gm}}LV^_l84+E%Z^ zf`r75Nrz#uI3b`j8te``+x3NTu#5DC1KSaP5zuP(E~KMR&cZZ zxQ+j5BHNky7>%(^ykCVM>^raK83s}h`DkZFjcNK%%QIc))Q@Q=^}T&org+gsJXk8t z3~@D=?M46swUbzu%f-~Z60=qR%G`7p`NX$g*xFxsS~wfUwl*+@@TR)+>|T;h2=3Bg z_-QTrx9@YBpZDcJWf<=+m4NV@wr4&ek*{u@wU#x~_}cY&zOi$t|wlCn_$dn8uU? zZQXZ_nkc^j)HO$~?^rc56=8L0X+_Z|0Uc@s7dC&DfM|6E+{s_~HbFXqI3vp7s6;!3 zhl8VH2>39tOuE{`HLB?U@=jKQPw^cKIz=aoapNV^vpgrH&3F-0y7reCQP!o2YWYo* z(l7>?jx5d!cQPv9jj*LXg3Z>!iq;ub70<3GVmS*$DLlzjl5vET?W@ohZCkX9}S|dIaHfyno42C z``J`(MHgY3v@>lEt|%bnY|7J8CxTc8%TEnJw#oO!QX?RFpk|Ls0Ls8*Z9me{4pUyY zg!{*{x&nIvE%EoGcO#D92iDi_ffBSxS0QgmYr1dMaT% zRy~Sues>@z_m+`YBFfGqPG<`uRNeL#a zak35CU0j1+sOPcoj}3|<*Peia8`*|S)iT8F*gIPC@J!94kw}^9^-RGdzK#jerX%?q zb{XlAp7g60nyd1zV|~Xj>aulkYOZRrs3z9)RM^9>5-)iFBIxGsi~v0-?e#7IZU(;# z5bOl5BT9TV3s6jc7SxJd?rmQFKNEtvJpNho#ZTH?0$`pbCN~I8kKs|!uX6-7v}~@6 z>1Yo-DBBD7PRm+P$oj*~>xu&sw5Ei=CMg7ajXf(*1G=M;oMgGTab|D_qA{^WL|5GQ zNyY$$V-IS?HU3E3OpDq4D!W|3lORffKkYNpuV?LuTM|Dz4XtuP)Gn00a)uE(KEa}I zcDxTF4BM$HUMozD;<^PP+~-Y{G1HK_rbTG z)PG+A;2BmcAf|LbcR2lP+|G^czsC_Cy*0lef_QM~`cuV2mxpgOY+&Hzey!s5o9+4& zR80H0-EX+Z2lU+oJ1b?)i-Dh0cPmtd2C%q&QY2t4Hne1ydFVl&)LyWEu+jfazq-yXPckdAYP7B!5E1aZf&SgJYF{DnbYH^+*Wh3skY1QKLVEgqi-E=R}lA zj|)o+TkiY!Z?uiVw#17^?kfbgNmRxI#7B#dZgRMWL+N0wpwT%mq68&adr-$J^m7OQ zd!>8f-lHtbkU{jXKUajMFA)7ov4!@nm8BELy5+f`(l^X@gk;=*5E_hB1Y=0p|1ll2 za&r7P8S(#%GVIp1u_I}Z|Kjia2>ohNHfYUckaInGMqkao1b32*lUwfdxrGN_OR?EA z8K-FeGXizLqoQ_+(U2+DjIv|M$fBG`n=tI@6Hy&`gD`z;>#|_7_J;upb z!yVT5(Zz@kv9f}(=xN#XNa+RQ24aRJzv69OI_s-xOjs1+l|q0aE3q+nQzo65J{HGM zUXI#Pam-V3^&bp@gOcxmdj~fS1zVaxv^DWg%g5MSFqtT7C34A;vSnQXe?p($-Q0S^ z5s~^memrU&&@+_@qJ8Mx8fbJfgtgFWlV9J1K9^^|PapXirj43;IU+?Y8JHaxOBR4V{&)U2g50zGe*PIj8IIGA~%chK&5jAr<*HPUy#!ev z!^fGqL#)mBD%9DmYJe8ykqPKSTj34pc2saT&M@nDI~#ygoGbFM1Bpcx?-AE3t=zh% zV;ID)A}C;OY`po8fhAB!&TM)6y2{=9!L)<0m!-NFFg8PDvjl3_8z`x1Ld5P9MP9-p z0TK&iHE=zxG<970`Q{jhdY*dSlw_HZMfqstqMH&)qF9Um(m8t64t9TJv?6E>G_-%02^vl%ZHMDjRK4RB zzO5NR!%!DUCD;ev{lrz&y)3F$u(idOro+oR*}l!NxwJ4jh#Q1H`g7&@nW%1R5wPaod4PI%(~p@ ze>N|p2 zGf94a)GF?1NHjBmR2W9>h~X5QxgwDweNT31f3`G>N!?s)7ett+Jd1111G*n83< zHd-U?JZd{Vh$D(SZ8;Yisajkh45G+G%7n=Nl!@BiNd38DDHfL+)Lvs6ns#}b+SR{b zT#@cDCW6DTHW$CTq~w9Dltg6U2?^(E478mKz%g(uQ$8~0jX?5Slj_zsyYgoRzetUM z#ESYo;bc#l@rK!*AL1y74^jZ;8=7WBQYfD42_@%*QxHUO~`4R_=wD?u_EeY zE_w^$viRJnnt|G}_a%|J&L$b!ohW!E>BPr(U=am^zwx5Fyft$!hPicwx1SATwe}7U zl*fjt-xnGNOc0SrL7;6wUbk|XW#~IqW||x>GK@xtr@C5E*%^`!D02Y%I!|purhEqL zXUg+9lI|~U+Y;+wUyT!|{R?k(0V8IBK093(A-^OlKusk(#t0RB(t#~yw@r-T)X|&> z@D(}sTdiwr5(hz}*^ODS{EC%soc`uq>k|CJNotjc2evEF0rUQwKm5V-D>#djwSZaW z<*b6e_xAoNxfTAYc^F_n?rR~-?TXl9>7oXu_^ndn<20ujh6S-4YvaDq!#`V~x)CkG zFFTs5*1_qMt55#c%MEmKrM_76aFb{;#JfenN;_;ww|fyBwDCjZ(NXtO`n;H9n&yca z^VKlc02+60#Y~GKM@qkCqc|8bd=J-pq2v!iM@AR!Q@6LnDgr=qg-$-Dze-?0%GZZG z&R;NH;%xmA>BPZtXw_f(Nc@&29X~(I0)iD-;;2{A@V#x)cDb%sM1;G2z0b@Q|9Xix zQDH=xvXus?rT{+0zL`@*4lJ23PCTDGVM)lx+?-q0LWJ7qbg{a>=Wi%pdB{SkP^r&_ z{R^xvxX6!J00vM96tveL-{;U5dH@bTRKCtsI8zBSb5R9TbAlC(pqVW3r{8euI0X2d zPI0TpdD*D3lVl|BhKg?pT04A0Gr_-tZ0m@pX^PZnwrR%Mi4>MrwzE0fcm9izmk@oz6 zJ>!6(_ew{H+q+NQG6Py@fU6#@Vy5ljZQ2neQZ4aT!_Cge45@@3;w4> z+04qeqQLl7F|)!wF^joX$s}Ak*>4Q5>a0}{`|BbAcIK9nO^6l45f9^w4n7VR9YHEvkABh0SgvJ)yE8vid=Bj5XcqaTlcpy6^Wgu~9cd0y&nLjJ!7C20 zpuY7U7Z!3&9H^RX=Za=_!PuLzH#KR@PHcBG6vDA!?1wHgqD~8xl<6{baSAr&w$+Vp zzyw5PLMgaxG#t_rCeK^+))KN(4jDYT01MKA{dpGpX=yvoA0+2CnWMVbt2kAV}F$Zacb=q!|d7&{V0Tv(?jbU8vk3FU9h zujR83@%w@KSvBV-D2{ZAZXxkD@FL^;?r>0I3Xy~&hKa(#=~{c=>{e@%jKO@gAc2vt zEXnnBj7swu5Fpev*I?fGiOK-}egnq8bZ6@woQqf!xi&JzSFBtS(fvmQ#kDROrVSfA zPaqe`fFT=QsfFr>+)F{Bc}y@8FXRGGXHW1!9p;Zg*kth$)*MYwsztEIG*nkHPO!~v z7Cdad)#OG55O;6Azjx!v=2L(cwNQ5Z4_`ArY80mG57MqUn}wb2Siu2%|58g`rOi;Q zI^!PPi-?L^Nh~A~jaL`p_KCg&8AqyDekKx9&;I!-~?!yva?@QKiKiOJfE?CaG>Z0B44I{P#qDDnojS5A&Zx-rJ#RWt zoccD3zB3`AvZo%K_n7QnQZt!%ZUNRfch7P>3p8!vNxfBfPVoSUbw6py>s!vIkq35MN)2E= z$wxN-&^S@H3xPrW-T8=|p!(<7e`O%=W<&MoT2@dQxQ3IH%19R^e_bI&8GdGZeUM6A0SG zEjBw=2Bi2Jv2_8#1* zQM>@o^(Nx5URLs2&$!0EvN;!j)qK7*Q3 zqx+uH%CCvJ$yneeqDy;q8*F-EKu-Iz;}c}dUBDXPq%_lC`F4C-$F(q}WOSN`jxSP7 zhp7~hXr4%sXl<;*ndC*)@h%>6-xVgoWa^g%ktR##%`)iul@!_iCYxMRjw_OXnH2yX zz)tmC+~Y=sP#;`ygN>XP)S$Orejjp@-XyNp)ZSzmYT@YRZcpRdf!UQuar`BD%uFQHF1eyD;&_?!XEjxHeU6E zN;KaWb+UGunXp#KltGK&#)t{!-QQ<3xCA;dlC?5?la=d6X4^E<0Sr5gH&2v3^fz$e zzJ~>-N`$RlJ$rnZ>=PldC797xk$`T`-zv_o@B0O;Ju&8F;FtZ58f*U??FIllFv(`~ zv#I*3FmK|ufS-GI=G26iYiOs(wg>!u7eq$LJcw!D0_wYcUhVG=n#r_Ca`qxqxsH8? zds;8jGGvXXIs%ZCKxK7z314)YCbY1^kSfhq4F?KcgUtfcC#>qG$gw}b5Cub%>AO95 zOMXo)DMz;p+_bVgD(?onR z=;-`mK|6J1%2O8=08;fI>)&pB4=c*qhlr`Sd+;~cUDE~fhihc|a0=?|cg3M|js%;< zeBM@ni3x03?&0;$ls38xCb zHASAhxH;pa>H5F4Qyh^+2fT3117HqpM?>OG|Jt6D77tSo6sb_ag!tl>h;B(A<-5Pv z$9PVq!55Ipd}oBFh9gnFHTz7Pbo!jp#2ZG9t<3V46PZiAj=`6Uy#Nc|b(#mU%EoZDi)?zRE4^U0pBl?VXlOXPH4f4HsA54@` zv0YqV0_qEsD`@%%|`9kzEBY*!1X$V;LS! z*q$5orx&#v_sm_{u2bwhH`|(3ZyO1D`q%fM-Q%Z2i@k#VOI~Q47ahl~ z2}#6VuqAise)jl57)WCyFojwO_X?X0f4BcfQcE$0B*0|-fu5K+2$?w9emE>vR<8f} z%9t6M=>G#?VIy)f{V#Zn3>!gu%+fM*rhIWBP%(*a=zL8R?mSENYx= zsX)d+I0&rF|Mys?)VM@2wA8IFjW-)z`ac@pBsGm3y`@~_SVWg1aEhl_V>yi7 zNM0slJHAUHKGp)D-)1?ii{2)5xTRtyI>$;z=Woq-aOT&$g1|Qw4Y2ZxiZVwqnaiAW z5qjISFk8d7hiBIN{21$ zgKVffd2Jz043pbB8YV8tt-T)AchfdZg)K^-njbP>|)NAeZLR6UC87w)q%d29{gm~YYz0^?D8*1E$4SkQCI43#$ zlqcc>)Z5+3jP^TAW*uHgABF$PuS9ldwSM^20D!5ysD)o;HC|9iT`Ie?BT>>eC7`+Wru+jM1FwN!xEb6iE`oXA zh7#^GmfW3cna-DM25$|;2*_qe!Ykxe&KXI^2@E@+e=+7Wl8gK8xQ_dK@o-PIpy0htPc+hnTd7E$=n&)T3b3XOvLPzK-9QmJmn8YH~19+|bn>-7otN#D9jD8}MO znoo(IRz05uLPNaog~<4LIb15Tg@ zfV88k0+{X)yw54ujTuTuYl_CB-5=@!l7@7}(6H$5G()`NSE$5FRSIVIomJ=dsm_wyj;JJgN~vMfjC<;$Yukoi)jvMP8K zH_DXKiqcrmIV;IMrcGrdmyyde%=YBS?3I{c2<{ext4@D~3fY2d1Ydwa7AG0zwl@yN zp>#xL!|yf#q^LEhacv}U-CKC6IQ}Nhn!o*ejx%@?PUu!5KML^Yd^1r>FkoR$^POc* zdjnb#pjQI7c0770Z|5BR~fkCg#e!3}638!EZ;UBjF);|2vGRZgLB!5}suqhDmJG5mq z_hHNY`amLv611{<={1U)F*T1(yuE2hftkT~EBFV2(d|JlB^1MDBe3S~&|u%pjOJ^Ndk!2OI^DHgS!am-0V-8F2}PGRU)q6q`_-KH@I(&@PnVTgMR zsl;~eR2IxP3(D>G*!(o7`3if%;kOg2EeXXGz@T4x48Xm8C3O=#2W)0CI%P2Yt6ue$ z^?5$K*oH`O6dXNmOzIw4uqcANq6HY2rte020I9kfln~?a%~z!< zXcHJiJ!-zXYChwdE+QwzFyBOacU~cM;6w2l|p=0s6^H`cDKc2HlR&oIFq#zsn z13$RDJ{x9exRRCbCQBtya6;jpGF#qqVoc9BQ{Y>mNy%?I@{=Q2{_jh*#cSFYz&L;Y zq5_DlNkhz|*q^^u_}gCjs(T;lIgt~6N7*`_zxTvN2!1m#L2jf=;#ghyPn|t%Q+bz| zBOP`v^EPAoUc}()#)Le|@&#i8^{Ro3KvR9F7vJOLp`%2a*BrJQwk3ZYyLsnn*3k$~ z#DE+RQ$xTEaDC_*M0+u=B3{>#1GsldDhw3rueXFwZdU^+YALXcYs3Ev~4}4D*X15Zk*QR z4~dNCg#=QHc-Q>O-BU3DXxUf@UwotS#DBqXaceGHiL&mdaYKT+xlAXw5tBaEO`nU1 z(Ylev^Nilw0p)4ILJI2sW9+X89$>aXHayU*^cu$eEy-mFTM+@ajJY0w7%Zp6w30ZX zKVVRk=D3kc%+(|5Y+dK7loyw(S%RL-#~Em(&hWRLG)*hQN_Vsg;I<~Q2?qfgRH=zO zqI2*EmDmn;dsDZL3tCnuxkN)W-rQML&lqjFm6?0n{vt|#_73MAOLrLY)CoMTuC1n5 zkf659?ynbPC`+pVn4R3ea<51TJ4RZ)>z zr#vE7n~)1Wdft(p2;EbcZr@>&Yf^8M(#6_qGPm13B#J(7OS1)+0HWaBvHzll+t0E+ z)o)!?MZhuzQB-(B)OoObmwzQ}UepHq4!83Zn8R_vi+bb+l!Wwwk$Zjm!XVjau45@A zWq4)DCuu7(4RpZ#V$a)UDLJd5PBWCKK_Xh*;jXV!f^JbhWL`Yg&B{hqdfW_Y!B$h6 zT}G(&c;Po*snmOQT~C7Jt43aNxQUcI}kyVlzE z+t<}5G96uc!q9TscAy3j*@tMui{iuRa$y-=)? zbAfs)YlSffbx~5)NEBEON%;EJ$6?AEH0=fZ?SCIkASLR4*>mVdn7-?^Z*31xI6(-B zVcX~Gpl@|vF0D@%$Ism&!=~PbZ{gq{;E!#sw;#i{T-v*AQ!oS7t})pSS#!ze-AdgO ziu68NA$asx?U3sn)3?~c8ru4^zI@8Lj50A=6rkOUq@+wPTB(l@q@<34?*9ng^vsNF z?{Rmv%)i`gSJ4q4kAi=*L8XHiq*lCg6&_q`N^{<}r<+UtQn022)-!O(Wm6krH2^ z9~v>9uKIze%GdS`UPIJVr<$0rQsNk|0{mzUupX~fN>f2q>~~^@LqCqqsFlRO z3qLK22wTG~j`jE!u2$Ym+@jNqn}dXw~{M1I}6WC?zbtPCSe`6DB0E zh)w9mBegxms8@9P^nKG#lD=CluOG=IFjzX3%N+nRx^KbZytocj`Og-gNQN%4k$fDR zBdF$cD@24@@Zofvsb9)7(5OYhU^s@uLt=P$ztD_B3Zb!zG+Qacx{w0DY-3Oko5`5e zP&w7u#gA5<)m2v|SN7n1KP#Faw?y`!-PC_n+sj>*jH}&~QR%&=qChyNq>h^(xAFwn ziR%N4>)}Ee#>JiK0f>LU36prnMcL3CS?`U&BD3(XWtDL>EZ6wjSp=gAB|I}3*fgdl zH8P1p!+O}#12n8rxR=&2<>%@i0{Z02^~pavXCsa~D;@tWC}>IIyS1M5j!zr>BQ=>B zv_?$?BV`e^Th~ zQ|(ONAeBRkf9IOQ@p+=I#gAP?3I~sWM*CO&&n^@?Xx>=6{@%+irKVI4nYGd92-_>i zHbPqas$d;CKt9!|Cg*ZksFDfjNRkXziWKn$FgBMyu=nM3n7Yvg#_J4T)1(diGO7S{ ze3i5`7+p`m{$+fRGWcQD1GKI&9J9b2vD%dF(ZUp-h%yIe$an019(5lC0mg0$06Tr5 zUTD5YUI8n;UO^#z_wc~&#F&JJUscQd&_=54Z4!&K-U~Wvi+lHGY1$b%N_6h(+r zZIWCzjhBst34t(`uISBo+xaXUX#^NVVMv{oA3f59sN2(sE72lzcmi-|wY3LZqLy?c z`_pu8BN-Xlww3;T7btv@FxJ%@=P||$^9`vh&n)ZeD%|quJ!Fdy07F{G`1g$ng(a81 z6h~cUb~UIoaDr zCGQZ&qrv+_OBP$`Ww)T5lX(&%s~_h!SE-JJ{oX*LDQ0&OFj!zQ{Ezd`11u|? z|7nxbn13Y?f8K-R0_^`E-N}%?y(=DP(#HkOXZW+n-!yi@PE!|dLvDjt4$al^!)5hH z;Z>v*vDJ+vYIN070m10z<=mpB-9Yam>&xf; z?$M&F7hqt(epD;Cwe@~*KQhvBa3%=Q3sf&hZ=QO*AIjejTyC=q`uRQY-9sY9@=>D3ZgaK zJ8%oCHaK>?4!z0EIIx6RR5_9(y-p}5I3v15Ph1clxp=hb05)};r_Z>A&+tA?4eb03 z#&X*ihn6uj9I{m1oBc?Yx`1C(?!)~{h=3a7w7jkM#`R6Ui3nrcPPK)5!#-HbN~pPV z;}tFS=#Xhm)}npso{f0w-aMh4#oRw3zD@W$LNQfJG*jKpktx5bq(}^VM;dbzcUv*N z2ZxYoIa+^iLDo9td;_k3mG%w!+IHEtUi6lnoGnP}Ipnx=EEp|s`apA)P4Q?vmpw@c zdC=H51VqtB)NeBDc4>@;dY{v;RP<#T7v`1hot&M!`7lO(qQAjA%oBMV!$~iAS14rG zFk_zHUTat%rhaF}Oa+x(OEk-j+&b+iL^=y;>$1j$j+3*6yJJElvv~@{qB`PIA$0|1#MU90SsZ#5LF3GPnV?BOB}tSE80{*3+9I!?CX*vSDF${i@>e;Gs_# zfOcmR!r;Vw-)K$tPpeXWv(bxE*}bTKy2C)-M{#aV+R!~W_>mqhH3S_b(O>wfMIlPo z4JRE0jMvGVyVO+IVy}eoQtFWEK$Dws?nI;R#wz&+Wk-|e7J%49hlj8|{R_VMYY9!e zrn99}6vf^_*;k3>uM#ZTSS81?HIdaz<>ryaW2OyvPN0w00Qkq#-a6vaKB1a&yU5jJ zz(WMEL0@S`O79r!7d$QHdrW4)9)0c%@bl0f9q=qvbnnz6Tw~s>$TjInY&o6&ZX8-o z!Qa6^K}$h~1Kb+gK}6a~lRfb*I>g?|hae@g^4)=MaB?E#V9E@Fvmop!C%PlnNcolu zF;wwF>NvLM_-q^3We6D?IlYG`6Zl|OVxw;+YFgYq*gDNW39-O;IHG^nWAdh24Y8V( zs+2J(_D&b=b0P3PPW_DeX}pwN$6DnD!8=f>*sI{m1dOyCPja|EUIusm*;llZf%qwV zr~1mNK0D@f1z+Nzf!{AivR5Ci^Cxr^hJ>d|7dE^8T>Jopq#hKL=u1*0f@zJ=XUbQK z-VK#6J@HgWs`vD7xlwyN8F&qD6}>Ze=iV8z@n@g^>4<=ma}L+IyRgRmw)t*R5kv+e z^oB>R0=R}9_9wI%l47d$#fKgf&+8GXsh@N~e03)84QQ@(xVuJ_!pljP6Tc(&!w7-9 z22L))9QmU#QA~YPz}O$O2^B3*M{#)ch7IG`g=c#rm_E!l`~%t9VU0h;Pl9jWMQXbm zU$m^#D>kRoA61Kcgw#BR;T`d%FG^T~e4_$a0UC8U*OdpPkDTpMBY&WaRhnsxk)A{h z?-A>y6YG>_fo)e(+>8o0f&@Eg=`|A;nukl{Akq{P7=oF~(xwC=w;~qH)62NVz3r?j z;qsLtDDmWsDd!9Dq$~vbY;TMS5oqwkmJLKn2J+D1g1D0_G^Cxi#v;KGJsOGHx_GB| z0I3s4)NjI*TS(M=(oXVm$o7h8aUCY=vs6qY8tlr`?i1>IX*tU!h~0fzCHh^(#QGgV z1kmqSpu0DmdCdvPSr6_DnDrxrT51oVyXNvRdDRx?wiNoU8~^H^(X{NSP~LtVI+y%h z*+!mJ-K#0}`^x2CNIihH1uV`HG`^Fo0tP`2to-b7Umk(EIG>%n3((OZemCUAO4H_p zr9Y7chbaHbC9!kn&Q?WOJ&NZdFmoquWM#@IxuIe4 zlLt|8qa-i5%aZQzI1d41!w5D!!}hL`Mfl(M_ec{a5eNNyBC)J%!=`y$;R?l8T<{)U zHKv+`l2akQtwPWETrXQ)m7v9Ffn9$!#cUh$%Uf7iRogscDA_rn7S+b{Lh+jD+gi)wLrLfe*Nk1_Q3&=p6&&-5KAvg)I5QQ&-_=cZHM< z?2T)hC>8>?KNm(9?$8KTq=sq@UI73t4c<}C-ub=sG&L5-Xmg$%_XgWd8<8RhB4^Bn zB)A8m%_)>^XMEBzY9Yzu9K@2T328-yuLPGZZtQwan_D6t*bd|e6F?DEK@j)**!ufO zGALxYDObM+xnGD!1&iN8e=J32gVh|`;6=79Az@TidNCq0Nlim5fn^u}JGD&MgjR*{ z)ZC{8{UM9CTnOeNrLqA5vf%x~8Y(W;KISC|0;1&rZG)B!YMyTmT^iV5Szo$Pa90y3LhCvTA)H}+C*GD9y$p=ep$WwQbkW#JB9RY^SQU@lix5t=|Y*mLWJUtt;COIRMV~*}0EF=T6n1R|^A$cC8^EUjhTLNQaYK{3^6) zu%zcANRJs`-p@m(7k!Lw%c@cTDOU?$s&_N0USrJ)E>2hJYHIZIOdB4p)!)G)SJ9wWpQ;P`cpdyNwR*$t6 zAyp2L@^H}Z8EZV#Y{;-zDWHF-1t?&WVV)}*z1)Vp@}J7^1&@BaySe*;(bc=T(Y|`; zhRDpCU9_toDEV}2na9LqeA$hQ(3uK`o5C4~QH7-11Q^Y_w`Q<+P^&kO`o^pVYuG-r zhsp|sVZhSWN;D!~A0N*JM@$g}l`aN>#F=1Tdx3e;5HcB2EalHchay-6!D^ri)6wZ7 z$q_hWP_(7+I%jI4PYPy%WW!OyXHxe6yYLb-bfQY<{)TY|`!@8LAHX)orrGVCL(IW`>2P}Y^kj?kfQT~0 zDHj%KQz!DL!3#)n46blE60(*@^kj!exkW;110g9XP zjYO7k^KW406h9W zl*W%GzdsTufduz|pn9tYIe5lJ3W=FmV_s38CH7YG(|>h5NG&d12wuM~(02@t#k0 zfzX!|_y1OK1m1bVM*#Xb^31ORK(}m8+zDrLTumX>LV34VS@!!I0Gz-76;5v#iajLv zii>0xd@CdOBZU0()pH8>8zS65PQO!-Olh|Nj;fbwKc~XjgCm9${E+JXjbm81(Yvrc z?RLhMyaRgp*N)+CpGOLgoZkjF=ZwEmOxKEUL-95wsF%jn4>)Nca);@Fbs~b14kGQ5 zWy9%DzL&1ES9X$J0mE3yU?h*AvL8&h%}3lL99VCO{nw|51lsfJ%i8Z9WYx>uUcb9A(I4@PO+C3L<# zAX+O7gX0UZhr!OPXzQa2)i76HF$6ex1_iXx`(QIqi!4qB)WeK8??hHzgie_~44k#Y zvW`ZHajya#ZdlgxdZ{s4H{llxlyVp@jm)$oAjnA7Mi&7n_!#iO=+g2}3{i(v@_DzP zd>Jd$B4OA_M#hJ%bs5^_|B{k|6JkBmz&zrq<-taW7Cn|U`V3w%o0wQolcN{4i69Fu)o^< z*}+^{K0H4YGpdFG6r+~Aihj_d%mr3Zry}1mb@hc;V! z%h_f|AZ?z|*twLNTmh81Bu`h?{?puw~79hsQ`CxgjJ}##TYo@zXj)2I%-g% zhW2`WBYnB$>I}Bv4SOxj8B>&FD9yi|7v0zIQ~2hF2xUSH%>M8q%m^fhc^!I>%-)0wYZuClMAt4zFSx||lr z+OU>oPt)-6u%ue;TQ&Rget@tRsNzpo0MRLNo41bA17e!<;@GcKGBat{3!cm~y-wTi zVMTPq5(dm7!i~8D$Kv}1yqIYDve_2vQQR@EK_mdUik7G)8=;lcEzK5`#Ov-d4Jb-{ zw3ak@v1}ms&5R|&5FB9c4v*)SSYEpRLA1oY^Za`jBVzVMhea^GajR`4|08okhG*i( z;FKRF)SLgUwU^7b`{3*FSrA^Fb<-J1wZ}@;J^+@MN{NGt z^7t)_ANp*$;WDnI()@-HqBQ^oiNzey{FU(N+KHtI$BnC5-t(6oc4_ziN4Z)jHO4-3 z=Hwo2@2D2;Ov#i2_?_83w75)*Jetssr7%CQmnB{X!#5J06}L&QcWd>14BZS$|OKrYXEgSZcpoxTd+sBY6%zB#TY@=P;b+TPg8K z_X=&Oj8unW9#rpsE)}}nObYgLTVB@})1OwY{Za||w!p53UnZFPzD(eb?Vx4-)fmegmvG_IoFCy z#y-XvhPmMS)(=8|NRx%^z)|LPHt|ULaT9T85W$L)zO$+I^0zO|Ger10YC(f;?{(X_- z8PPi#_u4}(CO)6v^xQpMadgeQ z(>AR}^MbQ;@g82iEQV1!4yuSMT0cB_$Uyni({x33GNj~6x4urH6tKBv>A?Q$O>=@m zaH%0;^8-+Ay{Y*>9n>H;P$FDrZjS#n(;OUMdDAb{AM+RL?+g6*Wt(P85Aue|e9q=?>m7w79Haus&9nFR~yj1N#@Lkmc(IIEgvfxEQ$p%c|lb z{V&cS2S@sEWH7XJZ2%JK3v_5)14@j`^5szY!u+vwvizq~U}5KE;P`sP^|eXAZvBRn zekK445Ba6KW@SzP?f;ckjZTC_NdMvU1u10Z{tr*c{Y=COWZ z*KvN9cFyeb{52_$POd__YBvHK3~6zIsr~(IUsK&o*|KNN{Ve-HUDNOVezmsU!P~v1 zoq=I`nuzez&*S5zmFIQf2Jq<8_c#kbKbje8>G`O6dU)FpZy?f|OZ$>PI0^(9eaRnw z7ap1qnJdex!x`jk18+(gEwc|JpNSQ%oBMf!0dG#fsT4l+az0l^khZ}K_FlLBHFLx% zuFpkR_%})qjl(h3)lb`JE6iel6+~B5L4?2>=+og|#2mYuR;4660EVfRS5cOUU)cY@bUS1!L zmsZOyc@_l4$br#qlSN5F^B7X9TF5&yJap1b$|9A@HvM!6*dsjVBkrTDM53*vLAts! zNj;+FJs#)l72NJM%sZa}nvi@elVmH+e?=ZqK8;X+RAFg8U7_(+(Lb*np!vR#^ZE6K zD{j?2-O@Jk1(h1Ec>=Q6!asH-BUGsKQ1Vp7+!CZzIr=GY44`Ju;&YD`Y9kU`NcgMF z%b&}_+2hXu=N-fuSV ztq|B&n7)3V`bH}kB$#c?p*w3tPe*gjg?5zo)(ID{mRbF$V)V_Mjysw3Y3pZGW7e`g z=MN}AlwJ!qjCt&IkYvuYy=mp1(fUFrZrFKrC7SV5+xan8&JNbVWGQ)_ljuSKJx|0S z%A5pZZiO&KB6df$Z0?xcT=QSa&E`RglLi!W*ebog$wIr7tn}(hJk8)Hm)sGFauf#& zoo6^!;c2$$dafSbBAE-MzmQq%R@7l2r<&FJ0xeMB6^LZ48I z{xX$E9Xe$p-@>}?%`IJ-F1{e*dlH@WO0bcMw3e(0Ji}O4-?c9y`tIqa;$&UPz!X~7 zYLdIi9+cpCuI9i-ksTCtQ10k~ikcsSRr5A_azcRqOeOtv>+5NP5OI`J(Q)!wtfZ<@7SFgRIO506>MulWItiG-o7~Lm@Su(akEE*7^I;+ zresu%-l7wlNX1x@Bs!@>67Sg(MD&^6d}%f&9JXZEZ7Dd~D^*=GyMbd}v%bq+9|a~| zd-QxpMzdV;bPeHl7s<96>VprUv7xXtLlr3MkCZZ77EZ$}V3>W(OPjyaD@>w0*E3D^ zQ90(Nb)5Ong}@d{5@lp5HHoIAMVBJHZ2$ZnmJyp37lx{%%?XjZ&J`%i5-G!}fL*Yk zS^szHc8%*=cmH?+^k*PQ**&Z{I8U!I%tvQ)GDslEKE*OoXVy5ux8y@$OlyvPv2YR1 z;!fF|FAnlcrcgQ`98^hNOAUIGhMk&dL7Y=HIjj{7iK?YF(dkScj67o+1c6+E*Haxy ztI4a@cM&8qRVFZoIlmBTCeJ5CgL77bJGlM7xJvZ!{6LuJB8uCr`JlMQMDIFpTL!$Ny`rZjP^9Jb2$=DBB@NL_LRT{LH0 ztX0_rYL%FY`{h4?Zi|E~(=%g}uePV>5KG0f406`dqyd$9+>pI*%7Crd>S5fHmD(2>%l>`=X|9+MYe+tKP>FZ`oyHW1TSlnPq`WPQIvE%_WIQgRVktyd`<+@ih9I@2<*sFefoPV^U zn!mPW>UH9G4F$VVT~bN4Gts>~9UOtR%iY&}W;~r7&g|zWTc6S@4D@;OKV(TC*Nye4 z_@BTskc-QvR@CR5tv=W)0!ciy+h44-3$^kkIH(o5bpK0>L2HY_6Nd2LNivaaTd3y= zk2ftS?kdso$vodo$VHtcO>=M%ZHWw34s(8zGd2Fo>pen}BR?)~+E>9`Kmxgic+%vy zE%^m9xWHRo6S-3>n!);)G_)Z#jd0*8340gt@lE7HQ&*&+9y`AMCijTnx(A; z9$3s?Fq?_PJ>uak>evCPRMW5!9MiE2DH7SOw&HHZ9E%L+zviZKUYGL@e~CsLTs+JqQ^ZhL_3e3N)fS*7B98 z9MrtsHQb@u{$fl?{7UImqIHqH9Ia@7RlFHt|Hza(;aL8)mja6&-V32~N+yB0BqzRN zJC0?}gddju4jOLEDT zahT~4J5k`vEyF5lL`JAu(TI8hXjEs!dbmo2V}wr8JQ0b*^ge1^@(^L}KI0s;A){vr z$Y!x4+1wq)JfXW95K*S9zsQ2w27;wvRm=EPE=QThoHB#>^JcTx{Lxko;qIb)aE2?U zvS&Y3p3IMBf~LDvh`oMrdm5^Tfi(E62erA=Gjy51$W7Sd71MHU1>da!Sv*e%4zVrq zb@_w*FD?}%D&pjGMWh+Jx*hw^;Z$=SaKY1~8v!RF{0utiB`tN=P99Vc%%xHVWCAuK z)tuSkSgzP*n6LMdT5gJ_&xx9oFY5n(VKW+4w2B?V9j<6_xI%^`AYjC_*wii6R#rF& z%v6#e`75WtbqAS@1!_D3k^=@K+oYE&?zGruVDP>_+c#BjW^<{7cI{olOm&qIddm4R z2KOcTI69-TUV_Wzc#sb0->1Sp{QG)Xae=2V@+3a8oP+zaB{LgR zDS%>I$CU4|BN@vbMAGECRw$6vm?XpcN0DX@i;+f4g6-i0!*9*gsqIJiO8~ zQfCC-TN2c1WF;z5{3BAy=Es_fF#}xn5O#97lGMUGEM@d+T+^7Fc{o^|ZUdKP-|a;B zH00LN$07I=0PSR$o?Sr7b&S_(tNGgoN13{lacA;TNvzbBj7NG%%`y5or+Y-)&0*wU z#PqqFXjE%KB{WL0{Gd^%{LCgld3DM*hqg5)E&3oSLQH5UIX?W!U%SHVgt!}wQhSG= zgp`49F9dKW-(Q~SE}SDQKw?WaqQyF}=TSmq!q6wQfkb;zgh%_CElb{Y{-**rpSI<3hxm8VM^zQ@mC8Q4?WK=GK95yb#=Hl|E;g4}y664`T zCBM&^m6Lh?a@^`ZVyagYQkQ{W))4+XUUZB-xXpCHCYV@$|1Z`?Uc ziFr*Pvx07IycDRcB1Vx9L36GrHf=u`qHu_LnsEJq=2lIQ?cWrQXORI7gW;>Yc;B+X>VKTG(oK_x{dNM+0;ov8Qaz3#PBX%oyG;x{JA~MqT4*3gs zTW%W37p@}-7R`f)wiFA8FT0o6TEIJ=araN%P0H<)49QW8#CgB5B%2<%x{;aTUZf=P zQhfg1h{y>bwvygv12gO_wtuiopTuo{Ug|JgYQI>nU~Gllb<`fsm$iuP1#dK-D3pFN z(^z=S!_WK2W#U>y{ha!J1qE7hOTitO#oOM`YmENcFY*?EK(op=fo$4$m8|dfvZ(LvA8OCA6KAyM;HRu=?Qy-q{8_~c0IhjsRPtq)mPr1 z*wn=(kL{n=xw6!v@(r%w{!UynpN=%Im5|)eCcaKH-o%pkG`-yLn!c`%t}ayo!(Q)} zI8W|zBZZ|pLsdToKRz+eea4}d?vu~M%MqGiMc`k-Nb^Xmm1iiB8}A{>JuclrU}?Y; zRf;;%+u6-oqJkjU7Kr0nB8lZ?IKC9Fm%g>LGJX`rc7LMrUMjGuCXAeWE*a>=iq$TR z>UnxNx`8k9?;NYmZaV91jocpqp*UD2_n+V$X!r*9yVEQibniFd*&{G{U8n1rRnp~? zeYS*SKhQl@&Fde3d*&dy{rhsc#nWP9ZPDtE2)l6NkY%S62qS&UOixw83PcZ0QWPG{ z^w(fXo3+3q^TMMUxd^R{k{dLSN)O7dD2j%5@+5HPBPZbmuc6#GM0EuW_BAh<`<#3_ z(`!}qjMn~5ksnr~J36f@tY_51%{X9xQ;A|?TQ!G6V;2@7Nq!Bis<`%5_nuumRZ%yX zW_Hb-vnhwG4d;Pi*b{fUQ_sh1`8T#U!tubbjA&Gyswg-!C(~Ye?(Wx?ZQehEf8ja` z+a$@d;7Dphs6DsWn_z-a*8H zxo?=k@iNc!^7qNka{Ap#YkFE&Vhr6Ki)ZwXdS0A7 zZ-09~9-hAs^lW#&KRA5}a||ojr#zarHynYdg6ET3K~BLg|M$}=#zLI6J`Tr~TEoba zkWaMOWP3{Y{YL9lyRCpQW8hP;I(vO&rMCTW`Ew!W^X>Ia^O7NJ0^oG~Ji4#!0UbMZ z{CsQkPBuC!eSQDs!X zhKF$H9+nlg@GD=IkN;@t_}m^EwjKi?Z}B}G1ZeJpSogEu%ANzliBPc6+5%V$}ypg$j{_KTxN`=`wdmS)>?CrqM|bj}%S&xa6+ zoRHjlX2GsuiDbp9UTeq*y?*Gr-0e_gQ_ccRJnWF|5^%aJRn?nm?1pR9E|%B@>JHQ0M_)*4oS zp50f5#PniOt;2u=!Ql@hJ!p9vu_dLt;R`SCIzReRn>!3+4QYYfUaU zv+PdYq|<_Zit$A+SY_Rf#C{T0ZNpt?t(!X$wMlwhbBJ;BcQvoZ;giYFpY77Hh%?{V zwFNV6LvF21+ZTra5^RJ|%%$7EFIO9_S;(RjW}gH6h}YexDE@={P&rfd_HPfYA7FX) zn}UQnCm-E?l1!L;wp>)1XS$pWyP8g+I}qHD%8FK$aZKa~h;ov3mW^Wt?dQ-OY`$xe zqs#(?nagDw_hgAg%J_ZSP74qcY%KAz1Rx?)cQhS!HZ5DN*M zVLS?t?%+5g+0-OX#Jf@x_;U$jo>mI~h?fHzG6Kxj3geBUGb4L_G8-fP3G1cG@&ajX zdQ6%HTCw%0W`x2oB0<+27q=V&Dc9aQ5s`#Y1)bi^WiDbU&^VAG!7vI|)C#7B zx;jCBJsSyjs;Pus^##C>?hv}?0K$_OlP zKX!+)M9LVcYDLK&3+s;2HmcNoDr(@nV}ke5Thr+>$3 z5Gt@Tj*+2&%|L5nE^HRXFcIsSP>Cc6=|@c%D0>UeJ+zMYMjZ0a_8qsaZ!9{}Uuo(p z+hy|E31SgVAW$lIebo*xHyNfDzAnx@QHHazyfZnBu$JLW9I$z1R{mfoB9*5P%iOcrJhaf&un#d`huzGRRTJjr)wN3U<}?zg9O6quj%(uU_uzQ7 zxXozHo(rRAX3EW-+DC&JPv9s%%aC*rmXyCQAGC`3?vF^MYr%%R#ydo5P#iOS2Xoc% zTN=Ef&^?C4?E)7N5ppAa9CHal`&+B9VAEeZC$7()-NZ<)XwSy*0rqS{N;imeqi)mN z9ZH%>O|Q$p8ZFu!n>f1QvCsT&f9z3{wdt&#$G--yeOk2CbCS?UO- zF!}-Sj4jT-{EG{&e=dR&(@ z++F{-i=}wiP`icV#Ry|METbCIL@p))W|RRH(BfEz9P+WVs|D^YM@TS%fZS&h@K{Gy z79ZS2c75qLWaCMtcTt|djoxmw(B?5)kN~G&hl1N2I3@dx0WKNa>}OX`1QLfk#!)?5 zi%m!Tqd@`SR$+B~l77kw>2`~tP*z$$YEt5@qD>)&Xs3;pCec@dXDEx3R&1a(op;)6 zs1zt9I(CAIG+_5MjrCi+Hr@4eGdp8Xb)}wpj3`19w`4fa%q7II>(|XJO^2IMwKJ)w zqm%#UE$6~}_~JaeSjtWmfU0*-*`S|*{yj{O&^S}^fYUxL+9wiL0}n$j6Ohv@|sY5{W8-Ts6HaI~%j zR{DPShxY+pKKqDHf>silygzbMYcg1!!eR_p&svbV)7gG-?}0;>#bUzem^zHclFnkH z1P%Q;r_3xrhkLBdI3BT)wVIV=H2Gk9Sjh?y?t%s__QYB*ovDkzjHh&7hF!x(kL`ml zIV4%)v;94uFzZk+gO1r2tFK|fq0{_(ky)!xwNc5myl}XzlQM0zA)vkQ$s(2BRpUUc|W63o*eeF!nl z2)kZE5i8RQ8{v}X6ni2K7#U{lI>ReKN|a-LIp3x$%6uJVR+2ZwSp)Ho8~g{xw6Osm zGNZlfIeD{leI#|G*d1|3P`tcPOfJv;s@C?6_d$yzLHDrhV%tj<4l}pw^ms8lE8;>1 zi+aiGA8vsPY(AeD0T>E`&23nUu50}{Tcm>d%R{CU?}Sc{B)M{(?|yD=9RR zLvvG-#cmHWy*A3^4dlZ|Hj&g~AuNf0L|et_p6euL{*{92wB72_`ibYNq7#w@Rw@it zIADt;4Q@J2!wbRyC&5RKF-`zmmrRuMEz^KBf@ep`UqzieI#IqZzwVaQyk|T}5^c9? z(tG|}6(NLa^sE9qj9+q~d?h%*-Bb_&7O5ZVU8aw>Klfywu#kqi)l?D|^mRSd$iqAV zOTmvift6SX|8PzlOX04grGvZkZ-0(v{*ifsI0Ui&>rJnv23C8vBw1;)aE6KyhOqd^ z4_&CTLVWbR3^S%c6h z3BJI@Nw5lrtaa3Uojy(c)cYVSDe}#+yduIMwwpo}!)1AqraYPvrZ=VU3S1>;-<;)! z<;mkt!bI?s`M*zi_WXGi+{-xdS(4;^=Z_mJi^j|vkz)*bp@s`lb7o?b3!Rk|fc* zB*-A-uSuTK7l986RJsT?#hWxhltHD?fG&|l&HD(YDo@pO3>s^5YMYbf^N8(gBb8}f zp@*BpDw(VO_nbAtf1pcn7khPdpcQ&1+BD8uX&~wn!z4NQlC^4ujcXP7YM-S7g|O##UJ{UsULTm0wE*XgonoSQ?=4mpf~Bp^*u9oW^)w- zl{TmD^0Xl}jZ(l0TX*ARcy87KRbgRrfZiwCaN9mPPPqhq9dg7gnr`|(xZBzU@j=dD zsfpH+J`AoHUEhWAYx|G|b|%T8ViMFsD_$bkKa#j)f%L^kA)Ox9o%J%i_evTIKUk?F zAklVf&{s9OME;f-SR!%ZdCQw<+GZ$gnw!Jt1Y`v`KSuiWi zQ&LkSYjXK^RsJpJk>T!PmK--P!xP&dKsL080QOa(#ZW`aW#_(0!Xg~9*?Hh9|D&|^ z4SOWOAl}6#Ze-#=s#s&Rp+g!?fg{3%YyN3KSGbVKheA|9G%29iA`uBWH zo@cOZxvBhRK^Acslh}x>(WX}U9>RGvW<%EZYvSHdhkz|M<0-H_ZD7L-n%-hSmspWh&tZBXx>ua)sU zO{rOO=dT2>2Sgn)ir=boIo0)H;6T3S2Lu3Ch$Mn686!HGJ zn-{23V9e2?s#|f3HjSuw37nIjTOl$5k`<%=#O#=eSI*pI|3303`SmsK^d1#2=-(K4 z@X_1vMHwBJm^Hg}9~FYZt})}^8o!0~Fb=M^Ny#`r2rljZ%m4O6h}X0f)e7tX;p&{i z0}Gb5olI;`Y)@=E6Wg|(OpIBvZ6_1kwlQ%sv2ELb_SrY*{5O4B7pwc}UiH;i_3Bd3 zPG-j+dOrin0nm4W?^)I6Cj)M`+2YAufv1Zr`m>w%TY}`=rmv;>~jC!IB z^IUs(pc5%aDS?FD?3dSs%XKlKdLyJE**1CJ#e2Yx7pk}}g2j%k0aLShgitfb#}%fU zu?>C7TDFe2yf9Z3k<0{aihhIx;v7U(#N4XYVvTt#jRh%^UPY+2DFvdqv=7p=NiT(H+k+U7g}M`~5FM)v}Oo0K`0vN!F!qHGZ>v}wF|?W2{E`Ux!$&LQ>F6_vB4pBx3j z=@Z#&*Jv)bdg~(T8;!c%?x%qY5%zd_gnfO&gQydE_NP3sO_Q^SN2Y?iK1DhfJXWB( zyrrtWL2eu5!T(lyC!V6*+*LKB$PzrLk3s<_geS&Yto-Ah0(6rlbr%~L-OR*n3kJQv z8kvc~thbV-lVpV$nfvjxvE#(l6Uq_#qT-h?ELIGj5#`f`k1fmuABn}-KA5l#_y;V^ z93h-%+fLN!(_^DWP0n2^HU^d)Re0bV+gh7=JroOqAz!a9D-<}{X*yV67;v_#CIi5- z*=w8b|HhHF*RHL-oeCY0r_HgiDQ$VGM!KsEBmqa;S=`9_L+oxKlOr4Z*Bwoo7LBSs zZ0#lb(TYzIIZ%4|zMw#BNt*U~VxGpnvFI)j`PhbL%JSF{t-OLgGd0wJ#E>H+8LmCW z=+sw1*On;rX&j_&qzxm8X1flqauqOqRd)sC7)3&sNO84o*3q5nOB)vu#L9wMSYaYC z=FF#V-mZ|T-sQe&HD^Qfy-!3()3OZu3{WXI*Kb8xrq4Q8B+(8O72SD$_g=Oup-D}h zebxN75>ZaynHx0omc?*@IfNeU99fv=QUDm?<#A)U>HFem31WK z-bAj6__>z%oh!-7HGv2eLIJ^on@y71$X%zSg}+-e79JnF{LDIuH2i@={QIe+3>oM)Q4B#Az~kxe zi0!{^htB+3e>}WE%6TvYYAuJi5C1G&jT1!;^G0Rf-9ul?t9)1aOWaIl$PzILK>(z0|~ zn@X!I(1pB?j+KOw+Q zaVnMg_7JGK7Qj1mNH2#IVI(DB1O*$MoC$6ZQ&X<0XTWK+@dH`5CVx1T_riXS$u*>7 z*}&zb3h`o=grf_QU-M9qzvlJ^Q+h>F>|SDZ^Q@B{=qFG+OHFQ*ug**$w=vp;h6m2f=8a`n8}C@OCsPBuoY0TKVTV=y7>sPjVx5z*Fn6 zeGD#d5(4l!T3`YP1w2B8X%XF6q#alH6euqP?m^X5-}+iV zNmcLC5@fb4X0^!lhdhU$?uGNBYg3YrE-}y4r0Q8a+#T!0Um_YjrdnOiiDT)HrM1S-BX8B_`KQ62Ji30HrF-u)Km*$vQQxDTzi428xn}m-r+hScszzWu z=qE7L6*cP6n1S0#+I2)PZzrc}fEoJ@b&NPH=tqh}@R}B%Z!nT=IX_ZEV{3dgJH#qxj1C{9aasNe&w+ z0YUia--`GVNS0ZymRE+>tyjaV+@UBs<>V9rhVFN zqzpg%)<$5B-P&T}Wh-nA7&nL^xfKpx4dpBNLd z(~`u0o@P?0yWuVXs-KK}j1sKHTl*x!(%9os(EMN`!Dw)XU!6&SK6N??zBAMEPgIX&qD4q8~h0ZJk~Y;PhBI0 zIue=^U}IzY|Df)TeAWqjO^%z@Cm&$vNPjC%lcjl~k?WjG6Ko1I!_lZ)rT8n}3?KNa zI+rKL&-gNL0eKDrvK~v{wPnXrvTI1u{Fx&+4tMiQ_V)RS8z*(2$Mxm*bvq9aHy_ok zoKC>~ZEX3KA!gBB;OoB{INi6qulfDj^s-zoV-t*s#jQT5vp10 zap60;LE*b;PE`+=bN!hvgS)j$oj>$h~<4v zu0^`mu~Z}5X@PEy)rlCR;OUL`%&5hn3660io@_l!**JK2ZSvRP7$-D}O$^<2sT1Ay z`;#;CwYwbPZH}-kcu6DI#P}OI_C*Cs@Z;y^no{>iap8SCo|CU?LeGSKfiatUz8fJ2 zWwBB1i$fk}`TB_{J%4s4b88E~CFnS{{#jR#eauzHRd-?T)NiF%o&JIf4Ee=p4||ec zy9!&YnTb_+>z@;VScaype4vQeFCV8BI{wU(FHypN>7Objp1nrp3i?{k!u$oInUmA$ zyNsO`-E3M$@$2u6CM`V>R6)(2QQ8faoC{=;rvR-Ay1Fr|&NZ7eo*cE)RamAb3jw|U z;~KNtHPFm?u&z@x@49~1I5S66%ARQQM#JVlKKPAcp4?WTy4b&}y=o_`45O>0Y~ub@ zouk|9{YMScNQMGNKqXBeQTqo%IZ@)(8of20q0TQ(hB5DLHevR}IG23bI>)Y-K-;DF z%4QySo#pq->?*@mYj?8<-Nx4&iyYeHUmc`uI~a7S%GT7wY%aL+-1=)07Kr|V!;W3D?1J-B;ge0AFanAaaedqgBc!X zzSK3T$Nw~SMmSUVXVNuWcUm^@)_dXi1{ImhL4z%8A>FmAGn1D&{J4(UUFPJ__$b$J zk1Ty@Y1dD9>%S&9op9alZTbFDLAoR<8|Q>NJC(TyGcs4ga(($YE|(%!r>w`W;WaAn zO}kwJ>NNjG_$^qQ+a*{o&BHa1dQ9B)uI{xZ+qTK_TW92zMp4<{o>2Hl4)XhyQyJWlX>B@*ie;mK+-?v=9lC7}J@ zxw~AAOF)qEDq9@ymg12fs>y^aDsGphHwZxn*uiiOUDO>dL`UUCa4q5X6JUgfiA57~ z*;hNVsvrK;X>eUJmYag%WST>z6_7Rn$ICE-VhjgCWI6yzB4S-71(J_&{td&i<$#0; z<5fJ1Qrcd<+9VORRhgls$Ed)3TZ>FYh|WhP8-hwG$|3Rt&k?!?Q}GAC-XqQVGnv@{ zfDh8O@wQqRo+brV{e(!@C$}?qXz%DQT6f>8fxztT1R;nffRO844>0|){iYVnvGux* zV7`S1O>x2$XrOe1+;M&-;oO)=iY!FVgKS0Uuil9$yt<-GN#uWXV|~Pj)RA&Pn=WMY z3-=s?9I01&phl5Rxc;zVO%6=l1KA4-NC!tX__kcZ>3{f3L<%-iOp5*$Fi;3`m7`F6-e17leR=wBzP6@gOdDSNROMgm zDlZHblV6z@nv!G8(mL&8u2f)4P(*!bxCI}XT4Xc{<;LHShGTxpGJXr%OPN9f47%tQ zAY45zPZuaLa{Asq(dA9`w+3?A+e-bb)3ID9+UtzEnHC$x39 z1^33$*%SSDyN{M#mCcL2Hl4j45c|jB3^i!zpxEZbUV9mSG%D-Hu~n0f;lhg`B#hHG zs+7;SdriY(3`q#w4fJTpUoqnT9W!$_h}vx|#^-wlrV+LY7DX=dm}oFf2J@Tm6epar z7G^;5)#=&K4`W#Njti9vOZtx$hCm5>8g!;5iVvql|GUf^R8(5qZ;sl0fY#%N5#Djl z`UwuOypTlxkLRtQ&kU3n76o)CU#AUBQ_~PQOQ>SES*kL)8T3hf8>B|U_}0~ju&(g~ zF|ww@LahdX{9Qut@XRnzP7p6WY*gl^xvo(sQ0WCbScVlhfRDy-!TJE5Nqi_DKW7;C`k5S?# z19Y(s`(Zj?wI0`?MUki119o06Wfw3W?>ZwSq?D(cfDjCR-X#@xz>qSXs9HXc{Pg=@ zZ>E-LaP#Tf=$&5Z$*5q61f9Yx7zlgZbqv6Q(IH`oC6b5mFiB(~Fo{h|Pg}w)(TNg&4w)rZqKC8= ztyHc-2g`%jfeQN#E3BAkA!aE9S>@LM*u*4WpefxOP=d$?9H4*jQ1Zeez+VhVU&=ZP z{iK7g_=C6xQo7sFcjf_p>0O|4rPDnea@qftn@Qa}%Aghu>ohwca#~5we~!kTHVe_2 z-EG=OV8y1(ErWj$JMR`~Dbs!TLu>N^JMux3I0$nOS5eu5=;`+{*!fL3GT~-8v?{sc zB!vKL$yk&F$Z7|Vu~I(STT)BGK$D-!9fm%=lJH7B1=)#}5Gn@nL=}sz(3i-0CeCIe zi0nbC7sU?bvdSrBM)k2;6>xs)kzp3vFnY|9g{kYFRL6iRNkXYH|&KrPK;bruNL9A4X(LDmv4IR{na`F48s6 z|BjiiB9)!ZSK)+SxO5El)%;I)os4g>3B#u)IEs=qBqVYRVUTk!u9l^s!F~Q#M0)W2 zywQ^b@`8T3wl&12=LrnsEn56xzDRWIHx1EcfJwvvA7O{>IyHWtIC+>9yX8N=b?@v2 z50J;fhzD6%0TN8$;tyC~$BO88WW(CPr@E4!*UiBJ1*g9>Tp7=BQWfe%Wp)UhR*ho> zR>ntnodb0T9dDhv|HP+#w{qRR?s{X8ToN-wyGO~Cl#2^!v zCduA#e~Duc#NbSou#MGNhn699YYGO*WQo6Acgyh>$EA_qD=BT`$^34x5+m+Q83Hh) zJk2AJK5c(RQyv-Q>=dc=VZ5Hk<6z(ws1=-kv{CsJ?+O`bJfboZ=7bSoJUolaf@A6e z9Yrqh@SDlUGFD=SUc|<}Rb<_W-q*w$O4@2P^n$_O^n#v{Jh6ruP4k=Je;1J%lctKv z`y|IgA%f|!b(vBEqk1dB z;C@3heKev~p*l$EdH+lME1l+<*a7VTnCxks$q7r9rlQ$Ub6umDCZAf^E?LX!a^Sd& z8kZ3?i)3Hq`s*lVIO;)xw>#6MSq&6FVmO#ZGgZ#7z09(Gu&71To@-Y4Qq2I7c&p8LYpD zBq;n6m}#HkRPzP28I)pz#aq>Q$t^a+-OU*AS&2SSqv5zg6N~*Y;U*Y8_`I z!JybF`mr8+g}+aU=L4cUF;#0eT_r|rV|YuI#`C3_%GH&0s8*@y>G9k4a9ppX)?u<%IELC z?qgfrhS;^u4GHrivRd|w7PqKOGh8$qk&N_aDQx5v!Xlz-3J|9HxwW>{c#-X_;&%|4 zmMWz6SmTU*+)e!#bmk!mn8U#u&g?H)s`qmye`iocu>AB^9N}vzWQ*B=ff??@2o@0M z??fNGDBsln2+9W0|L%~N)#Qy}ZzRP)=1daY03Tg`BNOb?Hdo|v;r)F>nOW*&A}0Q} zw+Z`(-q|uN@9rowE~V<6c!SVz#CWP=Qf%Z{KnnM-iW9Z>_vEp~>cCptP=|3=6mt`d z(?6R#vT|7rHT*WCRelk#GxUIW5W}a@oQ>5{n>EwaUI)QZuf|MQ zInvZ0-UJ9Sj^`y=Gw9mvOEqG4O#T^*42Bs(Est~IG`*Y?pDu3mqar=5uZ2mB8G9{e z?boq#y5st7leKD;gZ~DQ^llca(){QpjHc=P>xvsBhkt1#cL~QrG3LsJ_B{oCjH~JJb4hDgPoi=X#ATz_|5m zMa10n-*$)2u47wMA6FqROB&9_eudx**D^ngCQpKa!uYSfeg*zo@ON&Z=d@#QKm0`y zWan%#zTijfqi`T3_F+=5C5_=<7d84wuWyP)4K5Jf#vHUDOKd}>KCAFR(Qo=!CYm9b zuv(3$oZUOYW~)(w)njeRp4O%o=ZGJ1tElt3!qxPYHale<&UzKP6T5}g>}Q$e!j3Ax zDRZFjRskCm{v>9O_#*rRv20W1LovD^A5pz6Mfuyef8zkwr%~sWf)&c;hcl`3VLb;U zafywc7A;ERUsZSYa@@bFeI#%H($to*4$7S}YC9jXyYWr*`J(aa>AWv7Gepi&@J zr+M3Sz@I%NRwz>vP=7u~w6Ev~bJp|Bz$LYdHbu{;h3r$k$qfFs5RW=?CqolMy}cnd zq$^fCX8Z!pq*K?zEso1bFxBbvQkj@mD-bM%$hiT*tMDq{Qntnxz!k3$ z^Q*x>Me2AX&&YgF# z-FMw3d&xLTsfy`(d%`7tM*{OJKCX1eOpF=^jqV`&kgMGU%q5o5P(Z*VwVvj93~K>c z#@~`tSxY5bPb%ua)Fd;Ac7=|1=VB9&Q3~nN)xWF|A$m>kCw2(htmnHzzERglYe|%A zN6hM9EuAzJb7S{f=jsEJ_42(keMl@p-1!a3Mw87pb&`F#a2{KfryP;^q#WgqZ8(-` zNhKdNp)Ptyp4`Ra&sq?n@EPvEkxBv&#!#eOE0Z0sa|IMPVoo6LT~DhKkz~t-_>m^U z8TmM)-Em@0nY}lqorU$ugSOKi6j8clEF+&J$BsHVEWUSC#C-7DyN5V}bwPX*NE>gw z|3Ko;PxT%V9g5+JmOBaH4d4$nLbk$E6b;i9PmsA^g`PZej0{bbI|aU;M|MEh8y1a> z^!|_aT$llVoJo!8(vP^#g8y8Rqly1Lzv5SG;yh0M|M<)nI4Y4a(`pIqx^H4~aM2K~ z-WswXUoBMJ^U)BCjr`IZ6V}nY?x5Zj6Wr1$yK+>F5@axWn>RVn7V~LxU%Mw;PR5z> zZ|NwILNF*-F0j{`F8P6XLXotdpgZ{5yjMJxBl#?XN3M!_T)8=2{6O>GwcaiMV4zvmjC3iv>W9?>g|&Xz7R4oQdiWUfa6!anxA~(?g++H z=ar~q?o})t(8wOv=T6;OvI{o`<1&7l8|o2IutiTWtjfOg0XKKwBLDMi<{#NY} zfi6>&qe{CI?z+aAkpRi@7qrPiY6WVaHd!k+^sNLKF(Eh;gYXf-u!vlJCC zN9Yxow}QgKvmx01aQB%cEp>0P)Qp5Er}Hx@V5*{&yp;I5x8$3m$G(e1#U*ZSzL{{D zx0JW~2Udn&)(^YB>U$+jA{|@~yzF)qL=-G;5yAON;M`}3tydN!%AlEx>tv-i- z-F}5R=UNB)H^2rT{3Q|y&U#%E2=L6ltym0>8W&z7u~=7;QU&@it?Wj50+mva>3yzI z=B$Hz>cv>=-!8k<_zhfS@C_wCWTbB=SfZ@zO-PEY7ECtE>0_;%pREj zcbeLO-)+ues~WY)q+1b;ioa`Owy>#cMioOr6){w#L}Ke0`1=5w$}#j4$wpp8?!S62 zT+WxC%fiXb_6Lq8-AW&_lr4TvpOb zTZEjeRl)lvPk#(XYx;iGg$mY8rRYU0-sIasK!4_E&3Yw6%BAak^JeyE%_`kyr@pRA z#I5=whyA3!Ppf8Dw}xIN2Qaq&;(7c2IKNvgUp8DlNs##&q)ulodw+6s23l?PG)zOI zL8oGxWTvE2%`e=X^YKT;#l`C(x2oz*9lz_t`N4px{J_3U9pLl2B8{#1{q`*B!q1pB zyx6{eKRg?`LuR7OVoZ~dZJ(GSs#>q*lzP%WSTQpix@?`vGVe9f2`D0TAb&6CvW^4{ z8>($m)l~GG?@rzz=wA*gr?S;tG&B%s?c#ndFb7ox4PF;16&ZHy#Is$ky1G1U-B{zn zzp(Yan^|Y76>`=W`6q3s8+8Ztx;IthJgBlQce#pUBt&KKi)Sy?VXSYSW89x^uG8yJ zPMpoX#iiM9ZR7Kw0b7PqNQ=MT8hc=bY?v^^k14XIpn1q83ryAaMeQ7Ii7SKMv#w@izPAoU3)vwx3;s7oiJ;e<}%^QR0ZArUNa zmfM4oDea?v*UK}bwyL9(vlI*^0l<}sdXwj2S1OP8niIqV0IGiLC9xwA5?r1)*sE{g zt<&?Q3YfixW$>6+D$5J+z1g2{Z7T-DB?fCWSRq|k46`^d%dP@mx@#Pkf&z4i8(2?V zvyYy(FWmT>I2OOL9p)vFI=V7;zuVVm`w%fjnKH`}xGVRC1TU@Dz!dF+SVBnj;3M7a z62db7Q(94y{-P0@U^QY{-U!~)ST5aj`!+vyihRYKS+vOkFlX?^9 z>S7G<{&OE9x`k3x%@zm?A^J&?AprY3YRaJJLzzOth}6b@J^GR!;i=c*gMfp85taX7 z?jgiqX4;_W>C+sLpj8dm^jO@FIVXbYfc?j2{ABc?4-B_IlRfQ|eXP9r9&vt%P1tEA zQiGDE;{iO|vCz};q_E~stF==u$iaS>F3i4&J*J+y7`{%qjUfqtQiew>c0pydf^?1y zm<{{42@)M<*+Go^;}cI#cVr!lsT0BF;1Z%yRj%ZJPKEpTEwq<-NezcavW>InDvcD$ zm|Qe&1Ha*9V%{D5j~70IU-caO6QZGT?KrCp<8{%|o5b}5iDr_$_l@E6iG((_hu%5i z1lzW1^7zPn=K1mxgGpumgZ*x{!$Zj=HWwWZhYM7SB2pA9*fAuESSisNy0=B#g_|D+ z#~#!DDSdBif+gKasOHc;{*dn$-?W39#`(LS1H+@biK7kF{pdT*k({Pe0^-ef+Iaqb zx>X&+ysV$7e6vUp9w5f-e;f6|asGos?OjQ!e~a}@nWVKGJFwBllcvrwjY z1}um94MiIq%N;Mf+h8#}J6jWmc~?^h%i-wkk%>@J)5ffU|5V<=BIEX^vK4^vM-g}s z`Jy*$E_cZ@K~ohalZAP0OrA^14mrvX5Hg9pEaB)6gAZX(*2 zEfO>Tb(xl7rDVO|ctV80cedXA_o}Dtk7y87V65e4hOXnY?Tv#_b}1J*UL%kz?N?o6 zks*(kb|k#jPH4`=10{SIw-Yf-49Hp52rp$I4*5j2mOthHE^w7dXQrUe8{Ty@MiBzt-1ctV4S0Ch^A}!GH z1(L!&{tzlLwKY~7buFS}fPpZf?Rv^C$Bn>NT`Am%u86#Z=y^Tt8sxQ#0)hNVmW+N0 zifM?)BT_T_LGnq%*F22qd^45r?+=|6qVjEQ7v7ybA%q)tBFh6K;pqYKiLUJ}9Ki#I zsY+S#{6^N!t2Rq5t^Niu{Yz-)gE!?ml6=yd;aoj z*Er`I5X!P@}r5$0&ssRt<;lqf zG@2KB;@eu^kx3b~cy-^@keanK{0a&})$!Mz|KO+zbaFk;*c4I5PnW7IuUke@rHnIw zUB=IRN%r4Jr|$!j&}D^Nmg0ZV_vt;~ivk0LWH9%|kO93E&OQ zA?lMEO2vywGmD&1yqkqs6Z>w@f?4byZ?(b{3^zElo;K+qO@Wx$x27*<+DSb}Tn{3Y zF%$@J=4<1`$)Nl8uz9<`-#sZxg2G-q$XdyG`0q89QqI#scDN1Hjz|3!9Jkacw z3JI}*9n*R-a4=vDNwqlrvul~VaL_#V!_~Dtd+aJazh+G*(Nrepht{4o^Rdv+fEWmG z8UhGymNG{*Ci+|AvGUwgX!r#b6BWT-yjjYggQcb$CiP)k3qTS3(QT5qqWT(P3A9_t z@45ztX82Y6$zONtae}b8Hs{7A38locH5I*7VX{g%$Umvln(>(3pre zSJ|0j4f%l-I!G{&`gl_394**KDD6>ORoafPSTnSQ7{ZOhhhEe&Cy?6Bq!PTGc;?zj8pPJRD{ zGv2N%NBKIY-4WaYR_wRXhF`|wj%vSn&v=bes9S_d=>bzYhzX?{5sq@Y@y0ZtQvPq! z{9Ff|~FMq`{Bj@ElRfZ!%f8d80yVnIM2Y(geAQiE&A z58lc?zz&4s4({w>QRSqxqps$FFIfq0d_(;0O2T4b#v^CfOp|Cy5Or4OXcC=y@cFyen|bUM&oyFUm=P=NMZ z-?A`$F6ot=CbC`F=T%`LBP>&NZ^GQqH+WqYPRuoEOePGyWw~QkZ;gRYUY_LlmslI< z@$~gOO8goSi6UdCDqxKkuLwIWwgL zKMlkW!s~EpZq8|sXN#L38}nN9;!V^aiBuTPxg-3NE-Lr2^kO&RzJ4X6z;ItS7!Nfe zo;R9H_8TC(-f)n{8jYlF8j?tX=yf(&?5!|3UEyR>v@QskfyJJ!+!1PTD^e!RPsl&vtqeMn}UqG;|;q;%Wsw% zMP&x`xW_)mfJ$fnOUINt?MfEE>plf7Rov#jT-O1k?6t#=7(J*)Tuxj9i}S3HAU(9n z;IB??`o2)=gFT<-lD#YSC7uet)CHCHgK1KhKyBo5ZPmC%gH=ibM@wGxT9ESI&ng8V$MM7?^JW;j zo*wRjw#p16L!qPX+eFW%uMBOU9^&{sD;Y(#OpsEC^EoL*^&l~oOd_%Xh!J4A_Jsa; zp??kfc)`)#wF8aL`nPBZnjF{AB+ulyvYHz&HlQv*QV$DuK4rN>Zl3|70M~&LN(%-` z8HbIn=U~sY5IVKUG+y3~adb?ww^zm@E7q{h5duhZWG}@0LQJhRu!&}C#*8?;ygOOr zt=fa)2hBzmoUZB)t)z4r6agqixUxcDo_DW8h6Umrd-dR`EMi9{ElcE2fClv~-0J{O zdY^vK`rd_I^5l%1xhTWLY%F}>84HTjpzI8VFpUxW@<%jwPUQHDD?J|}J3VgunjOB# zZ@6VbnZF(jx-pSd!y5la#h5#gV8v`S95vX6czHun-lz`Z?ps#!B!I(lY36jJgSq9? zbD=-q7V9Sl?RKbJuR``ToLHTtCP!)HrQ8{81*ZNTm_X9sDFmLl=$t}dSTsn2P*98ol3Z9_;4+x5Y}Y#0mRHOCOi@b@4?alC$JR)BtHG5$Cw-a zN~5~T;6OnfQ=3P;DL5eIX&b+h#FAMI%Iqf7$;00Y@8ON#BtdpJ>TrF2;hL-55$_*r zj8FV_(d+!4Ekjk*m{!4U_gjNw$zk-}!Xj=lc5w1No$#aB z4+2G}o30d)-MPC5_r54UBCLyt4E1SR>1oUFzAT)uD_u}Z zI)8=lL64j_0_P~L4gXD&#cIBiWL8Fw|F4z1QRmctRSfl$fanvfJIguL@*;y59b&eK zuR!o3eCP`_5i_lKF8+o*1ww6YzNkcsBX@c7xdJps?%^Q+I|+QOpl z!vx3SWqVauSNF0>${}X^@a7alHlh6_P<5H!bdj$63Y<4DyAgIxb+x;{9=wSst9lgH zN31s6YpC@IBx7e|>X?a@>0F)dY@cV4wD+d~T|U2B|1NZ!V}5mf--5|Z{eHUham`+O zY1dsmCpd6@#0}3IX&i0%t4VFyUoisL>sxU;rfTVrpKlqte`A3&F@lPQXB@s?*o3Bs zNAp)_6ez77@O1rPVSYb;jUlWfL8Y1EtRX7iD;r}@k*ng`#dF^;3|7}PeQggz0*G77 zNrk6?L^Q8NUQFf{#_>ji z>>WhqitsZ)FnW`$kw$~Swje1qLdiHWY!24?w*pqLy-GY@%OE9+AOJl3B9wPSp z?D}R8rfXdPONEvTTjWLhy{2SD9|z+R_Qv*(|3coBh4>1RK$~7p+C1Q!S=1R&4T0=l zq?UVo%F_AbjX?T*8u(y1w^5bmYu6#6)`s=(9g%V5@k+KKS0S-{nXH zXc%1=UKsqaz4Oi35k3xxFB+G{4!?Iw(tc1Znu_6*9`>5l3QeAOxI#F)pjz25%g9z9 zGm@rtO-mAAJwI-rm}9${jcB&J2G6elK6PSk5bpXDHL}U67B*h@az&(> z5;7-N1jl0}0XZK!txwl1DTDA2NCGuFVDL?T*93iJ85}XvjarueuSJR_9@dlz$Pjsq z`G;15-Oe%VsgtU{t^M=|2!UW*ATkCl);M{gcV=2<7%LyCPcgSVQwL*NPvkRKT%t@I_wsgxKFXCQMH+yXKy^r%H2xI59l^-U2-MgBw+|ENn_0pZ+yB7frTUP;xRD0Ne*aVPHRxHp zkL;k2^FH-#0w=%k636Ei@3Km`h!;`8xIiwmg$>5yX#LTzdA%&7y!=bKZ%W3mqsGChLPQwhtF`t5`o=9g_u<6Wp{x-BpiYbqNj((1Y9*@kkmjrEX?+2i>+ z{}1#Wg($yYv#;L7nI7y|8u-_0j-`X!!dqiRe0Z-pl6jjrF$J3h7ns5Y^5ok~+LLl0 zVRawqJ{{M!qx}LuD81t8mZy@nvMY#O$tzSByiXM6`=LxW2FeJZTRL9;Wp=G-X9ZJ| zNDGE#i@V}7iC0alw^AG56B#k|2Gz|F6TcEJi&P5`Y=Er2&(485272%;<`iah=?ue+m{N7TqyII8?FHUP#g-1`B2qR&C^+j1_} z@vi}W^a0_cfX$exfk<_FKMDNGGab&Nvd}6dDuY8%7KygrBj6FSkUB1im?L#eSS+kC zkPdc}i~lbfj>a&~JV_{hS%(QR*D+@X3-m8p-lkd)7NlD<^%)`)f4rRw=%kgE-J~cP zXaSwFU8Mr|Z;-b1$4){%liJpuaE6yeT2ldgZOl+K6LG8OQxEe3_kHj>bL!+C48>X~J^1Zd`wr8-zX z(h7}M+4tQPurh^oM4Y9<%=9582YVLT0Sbws>e|Sw?q9YV;YcA8HUJg^4_*3rL1&tZ z2ywmvc1pr@)T*!UKl)z4+As5xY5Y*Cc z4T$}7VbkVXgsNCF=}bSS=sksTM$VYsK-t)TLlR5`_lsl%=>xr6C#h8p?d`XXEw*$u zRYTP)9=ZTGaJe#HE)CvkNih(oC`w?0**DqNKQ5iG{@-M|&Y-|5ev zOt5ce5J1=XKrb(`1&o9MpJB*9C>b8DKFTxEk7E4HHu)vp_=9y4wDKTL9)B;hlpdyi;vXC_BwEURj?}a_AHV>W#u!~OsSi(+;Sv6FVK>yc*(jDOk z!-*JW4Z7*C3eH@;uYH9&L!J8^Sm&>RV+#QXu&YFc&36i*`YAGr`f`f;0t7obdM6Et zsd(u_*W7#&cKA4`)o7Z@C07ehiVy)9(!`hpCPOGarQsbd9Wck5rhU4_bzj8V1d!f= zT)43&w4ZvT4m&iF_ydz39bz_T($I>kRWY2Y-Hv9*IOq($LEQ&-dp;*x=-(ztv=-L^ z&DFCXX@(BJS*hDzG)c4@e0P0PLKBSNX|q%F&=^PtP_hzA*kqMlyq3Q!9jfx8 zms|0p*SbBFs)2`f38b$!?A?d7n^hz%qd$e?@tf4COqcKY>yZ$L;Fn2^lrE&YC-=UV zs$Y|BIgiiic)5u+{!yW0s!g2<-K|~#p5qupzKPmOBPUnd5>mx$dE2(VR^(4zydqtu zGjz&ZW17ruRIvKvGqCE75K=mA6qWmXf=wg%=P;_OBL40R>p?W!Qf|OOfaQZ=fH6zP zz-6STJ!C*!dFgc%U2^)B;qvJCyq_-haYR-zZ50WnrF~p@Qw^_5M0>^Fp4`O`ESW{W ztf*t$7T5`Ml4wdi6`mVl%UL-?$(kO6L57KvD+x7bPnHKXGH|=9r@jcI={AO)*{Pk9 z*Qc^7V63Di4fJA+*v=uH2Yf$sb|%W_cki=}m~d@>wPKivS=ZAC3&9h<(x8YqirEZFMbX^M9O;CFH-8w$V+V8C6UWffCzRvml2I($1tVZNurQWUL) zMET@}5!$nyRe3&N44#(H*{%`_U2+H&f2Y=&j&?~fj8SNGdKdj&=q9-ofR~XGJ1}R! zaDtwX7>}5gqhb?g{yqE;y(o#+UOLkr-Qe3Fc;j*%)$670ALZ@Mkm)Cfz;tRHf%O!e zoou2?O_Xco%RXw8?sR2exjbnUHoWmzXl6O?=0tP8&G16c_8FokP-5&0M}i}8G8l{w z4B+sUgFrh>T8_|o(p60F3yKa5ZX3$q-75y`=&{C>}7RC!A7?(cvJH}YE>ig?as|PHQIgvr#@+&4S48?t9WUZScDzg7VT~ei?!45K`9U|*%_vo18%^y z)@)_c^iO1OOJPJ^o~^ryi`tMv+crwF0X-+)$M-@+rz@IM`QO@w=nAV;9C?0q{8qLk z6}YC#{al^-ZwuGBKOsnHTK z$dB)n4ackVw>u}8!&Q+#61J{k`KwpgmYS-Tv+25NS+HKGj$I9|ms$*kv5FIPLG;Fv z?|bc7(ju8O=);C~CU9(hCGJdc)#}Tsh$^V-@-jNwla;_P0?5J1R$U~_&;yrXf*}pO zLNGm7G%-rMFor*Xa$8c)CjxP4k?+O_#`P{{8A?6@)E)yTnsrENaW6r}?Gzn<#)FL( zHxD{f~ObO+pW7$OoZL1{$ z#~GM}GET5tN`-&+K3%=T<;i{{c`-j;|J8?Pd}XZXb5UMSdFpy>3ED_>Cf^&$C_d~3 z17&!PiPcIDyhR#yVCKc8R8*?F+k~6#K2@vZhMB5-jeg%{(xW^!#7V-9{6M!c3}&1i zO9`$CCkWsqK-Y8`y~)+g%XG;vQGv*@_t|(>^A(YLfVU7;3mK$W2c)Cf+!4M6{o1!AhJ-eu(PTTIBtVR!sH63il8lvlu-Vtyj@l3pZ({odMsEg2|A4y^>@?i*bo_ z`LPZ5GqMDBo35s-n!S4oe(JPEfda!Bz13aQI6<=$A^Kn!M|odtsG|+4ksux+ad0M) z+yL5MB&FA)D#wf=98F{z#{iOCb|<#l0gjazGT<+Z!ZW$*JlkbnmVhDndSP zHR94vRcF+Ef`U`NNY>HOKS#pC(pjkuA${ICax5Kd_EEAlIf|3_q(vyM=uj)s!cRfsJuW86P=iBYbs%`=*`(W3(Sq>S^DD&*pi z5h$NUoUl8ZSp^x1U#^}Vk*m3ZS!UP;zWLzeNfnCcg|>W2Jw<1(XFvZIjxs!W#`yat zD6bkOp?xhomITyUBlK3H3QH5n37r*apuEB9=5APJN261Qv_V_&J2H{Q879wzTZBL= zf2z$#wYb5tJYif)n?mnGrvIRE4D9BeiSldaviZ>3CY*#Oh?)*@r*yd4#y6}jr~!`L z12k-N3s8&_A7W+9_)jo{KX6(9l?dcIpb=6C_(9RI{==c*`VYo}gP!9Hfx*Q2ABYDt zD@%glAub{_Gt2*iS)@$8zK-f6{S0o}9j+B`VFto2=T>mE+R|?ZABn80A$@n$L z2m$t&vy-WzEds22X6F~?g7mAxFR=9y@>7olDM+f+VGXHjI{y50kS%0;Ua3j>~;(V7w*IiEA>E9p2%q!Uf z6j@y~=gTY-=}mRLTYR4LepGEO3%u(d?^s3Xf8N~;E?1;}mOot`rZ9X!2ZjrLT-iFN z9}Tp(cXhW<-1pZftE#3KF}9&sk}UjGRZ|j#nwm1R#dV0(L(5a)sRm|nf9^nVh|>LC zSi(f)r&(2^xzNP%bbKL2d+wQJt};?iCxPH+jg(;cfrmB;)d*+!GLd9-MdOxe~J0qXDf zZw2`Twn~}pZD(y7Vyj;9Q(U3n14+u3_pP`%1n)@^zlo8U3v&K()k?0Ek)&e#T`IdA z+JYI8_X*F}qW_(2VbIfOv7eF&%MP z1{orJVWFKje11hvqFbvcaBcc<9;m5q(7_49QuE3y;E=|TG%BV+qP}nw%IW{ zHagB5+h)hMZQHhOb~yP?P5qdf%YC&`ThFQmMxacfbYQ~WcgJw4h*RP0Hu1rsVOy90 zIh}EfQ78+ImUr|xZK5vRMQ6(=JmfwyaM|oyz@Pfyw)cNVP1ro{%1EAD=&RHl$`|0b zpI0z(Z!p{w*wN*p-Dpms^c(b1z5;p^6_ zsr8WrSY``Jxw+S$K^d7Cy}9^{x-n{5H(&4kyU}htBv;+?fo~bCK;iea;9pgz1>@o{ z0QLcx-6B=uihVF`wq6j@jGSZX&uTK9h1b9E{!BJZcKTx@vq^}~K27;?L{KOi($=;> z8m7HQFs+fzG#3o+XEu#XsEN!PLfSq`yVN>9ku*JDS#ZK)su7D)S(FN0H1gC(iM%P7 z@nAF9k(PB5kxkoe2EE?MA4kAVcA51UfN=lhvD9{zq0SOqrc*I^h2nYgH*8h)-3$oQ z=lXnemtX|@7i__~T#DUru~be|(N@tAUDZGJCZh$GV^Qd$s}K%MVJ9}vpyd+-^08^| z0FwcmxO?9ySjTw~b6{aR9o_9b7*dgnRp7pk4e)08FF#)s{?QC1L0^X^hA{nXK#4i1 zA=p-SwQ_9p3+zSaZu(yG5QWIwdyy+<3lMTe_e-pPC&`LqPhZdBs;_n)Q_>6Vn%tOB zIoYD&vA4}^QYX-0zuj;e1H2|Sa_sZV8=5{2wr#DtR&ND`9m z$df{~kYpXvy)P~4rs&Y-#;uxZ47+D#BSr~09yj^z&KGGh~A)Nx$Q(L}VEVw;*E&tn__CNzSlEk9vQVoBV3 zKlDc8(pC|j4T8o{q+<$yK!U6_8V;RUi6zoP{aalo7ehQ-pt5oRP^f+?Xt>!(7AL`4 zg*%y1d|K|<&eM-qD}qultPeBKWL&S86*QrM)f=YIN7QnUWJ<(^2J@VU@1>}N6}07%Thy&;yu zpVgHHH{K%> zJ%0=IjCoc6r}v~ow7m<_n7ZRzDZgIgI7F}0q$%p1+bI}PQ*H+b zGNHVTLb!VUuWzFSc1VwHGSa2joD9<`qax0+fph01>0hEOyb_1>3HHC?R9x}xaHFP~ z4{)s!%DaRE5-zUY11E#4i6hG((!=#6om$liu>oY>uTy|mwlP~74nJ2ry3^N%D>WxA z@3kD>6{TxtmabMJ>~~x z5tbZuT9@u7zo$*KM>&NN{FqtXSS-9qhr4uh<9*r{b(yM8PU*s|Oa6P~1#@y{vvkJH>SYTS7;(I$ z;@oiB5y5m3kBBjVJ$AOtUK))0!r{p$>H|$W5o)Doj>1q_(P4tncOJ!9_-ZxTm9KMJ15aU3~j&^2Y?ii8GV$mc+ z4ZPMA3LEK4JEof=9X`fL^^bFiomWkTn7e)Bx7zY~`eI8A5`o+tg5~im{iH2Lhl>l} z38P?2%}a^X+CLq6;=5b$%3d%h2lw9FtLl5%*=0lU*V<$&<;lJH&!veUe@3naem*$U zgfAQ;{&R0{ZxNopta$fOE4>8_zW>f-1=ly*n-%O2XX7wid_e;QRTH*wG-$#Ud^0|e z_Am~)?Z9nsU0_{KHCsm9^@K`PtLk31T;fbf)a zua8+xM|)7>)~B7CvRyP*CgP7}D+3xi=tEa3H|n{)R|iT?Abupfxp)G^ft=c&mDWx% zylDLm#4H4>Hd;xhzcOmcgGb;0Ta1b$XfZR~bSyMdGxCz6#f*pUZGm!gXc6`k^DZB? zSj2v|4nym!0+@hVOOJ+Q5mU?{0-SHvluUM9k&d|7REcF3xSSUg4FYMvK^xo| z1gMK_Hfg4AmjeuD$vx9fh65C^OVGrodF^`*K0)VF5HrPh8mg*FQ!P$7HMqUAM9Gyhw9rxvErroYe&5y(ek;d>SE{E;KkqwNzjx3Z7neWNr2Z`iod3b&L1)U&QVV1 zG7l4q;$sz!qWk?1U;a%KJk^KH4g+fNM@x@=m&}YVrxOYLQzA{ra5u~V(TZmwM)IC# zwVUQ%Q5Obgg)Iym6rCCC7dprDU1HO}^^u{WHQh1>9|eabo_iCA4LI~vp3g1&3)TrU zZ$?@LudSP%)Bu4VhGnueNSycE_Z#T_@mb+RX?$h(G7euhkJc$R_e~B@4#Wm|64Dx- zK+Vm{eNl;p%dJ)Dutro>r%oN+BL#Q34wz3Y+k-oumUB0|7HX#hBmB(BbdhURew_(V z4ou?c$7wUcH``JRC8p1r48STDmY-kcJy6oxiZAS$E_r31YN~ z35&(~w(Zmsn~o0W(W_LC9wRu8BS-(X!$dJuqXAsmJCKL@s7(+cQK(+nmPg5jFY*TO zh&}Knyc9Uxxb)lyP!P{9q?qWiS{xYCqu1!DxO^S9VG;a)>|a6)wB0!lYGtxn5W16D z5tfq7_UFq>x#FIFjLyEk=1!(6CTT1NP4Yd$BJ^GxpPA=3c#mbOi7csh3j6OwM;d7V z!~+&B9hf>zqJs43gX54aD9K*OV@aNa5x4OeIvd*I$m<^EA8YwDQ?9T=y|IeR82(0> zv!YaNhX39aqctZ}iO#zKMkFcM#iQD&=M_LeQ)fVe^N?dl`I1RwPl*4^@A>9AA}qJ; z^K6%(6Ub_Q<(qYc2YY5%n(^)4OA!$rYCHb^_C=PBnOO@KZM z`}`FX3j%sAxr^ylR&otT&?F6a`yFU-c}2K(UO!it%!li%y(!J@(VaX{)80QV&y7U7 z3M)p?Z6#9{8^ZYfCoZ%mZba?X*nWrW73XZNq4-_ktBz|}f6%e*m>3!yLy#L9?E@f> zkE#7|?@1R`r|D+J$4^SYUOL7!ynR@PUfL)ZOU<-IJhheG6^JyvGvfG);vfLhzuLi3 zpYO#G-sk8clL8Ja;Tk#OOOg$^RtxQVBIyHFV=?=%p`t>||M@?UHnJJX8rQ{pFmCO8 zXu}=F>fA+dsuYwSpoX%4^xM{lR|7;YB%~uG(OqU+K{X>-HmjN|7a1xPRLc7NmV8|y zibIk1_Cv%U*S$0uO*d4t(;z=&hYkozqfTLZYVKy#fqT9J&-bZcczyc|s=D{Xa7x<( z8?TKzNkI zi5Y$LWlC-8Z-`pLOgVeOe26x6NuT zXlrs27TAE;^yAWM%RX#l2ozu|w86qbsbzL9h;i`Yyjo%GgI3)yzEH>OAUqkDbp)<8_Pga)1f2kZs-C?4q|q3T}W+ z?L~i|AOtm=Mk&OMf<7rPa>SyG3^XRP-e11YX@{jeIxtzL)XShQO7x~&xu+H(nUiL* zm4VIAV-jGdI{=+jBQ7A5%+l+im*)F@&u@r({Vf{)(H|~eOQ~#um(C(2NMEtuHAxRO z%1Gr1kMp*jR_C_4yw6HeyG>LKMPo1;cK^PAh^Tm&?@`Hh)2-P%19fMJYLrm={cXFv zlGmLH8hFkG8<~Z%)UbW4oBp})FRqZ}Qz{A0;}_&59)?YzT^Hafv8mZidPS}Fj}24u zd*|e}cGS8OyfUz3;!A_u%c1z2w2WV}{*&W?xWSIJS?f-XEwkQ1NJtI_r~XlknwMM4 zCEJFqHf^Obp+j0>g?=m=2`q@;w(63wHwtjqfKV$<5kh1NJP8R)IeF7`xpy$KHHy_2 zEYr6z-G9JZYO^X7aw^{x6nvr&GAcF)_x~Vk|2t-vnTd&k`KQJ8|HSOFGyQ*&H5R5s z$1K!T#i9RFavi+Ee)KZzEdN1v|1X+0q-$%B%Zc*!Lj^JtlnG7K?`H6zf+4f59wqLg z{RMD-7p^-JgVf<5D=NEj`2I9AGZ4FGpuXn0ZW1!qK6K#nHao`dKKyvPu5HuS!;i4< z<_7q1RaOgB)kID_M81daOfwP?E}sZi3D`AP00xeI->+JReu5upw{<(c9ltpBxsK%= z9Utz&8D(B`Fp~|7l*EhJ67ySI1I+|K^40DfzwgDhy(yX9KSi!H!XB>|A7zMQ4pG&I`GC=U8a->Pm<75b)UBP4 z*q;Q1bhvLbk7A6>B5j*gb0^2G&&RuxqjarG1jrBHE=@r^6 zORE0{_`#HDE08*g%N&KEQ#QT8g&g<7l_& zd4DvBeBXLu*PWm?vt&wXDP?uctLrPno3Mu%;aM6|9?<#6PUT**F&~yMj0Q0!myQtM zE(yH4WiP4~Dy&VG`Tko?joE$ypcR#Zz&UPsyc_O3XIdQ1;+psmUz~lT^5Lx%;ZA|7 zVeBXI1aXk5u0opRPPGV#{4QytJG(K+K+@F{hur>cL>UIn3!+B`X&DTgWRlS?{j3aj zhA2|0CrJG*edBM57s=@%PC0eZZjZ4;q7awkIJhSIPr9Y4RJkE?h?7D900?0HuobSv z;3Ue;H0DB*6{`D6h8cUa(d`v+?QsbcP`CTn7`2}}?QeZPaX=~Q_f}BOB0E_6SqKD9|07jE|QZ{iF6oZW0Ow?&pGp;}@VB&Y((Fr<4 z{Dw`<-!fpTap1XM2eU6hZXlSb&>|VP3VUe^9VZ!b}3TAy&UkOGj*V7 z1oMP85ZUEmX3IhlPk@%8q5dY&r$uA&NY@S<3l!y$uzZs!@KFjLKx=8*0xEXoZdxBd zc!_(2A9;=OTKU2_Q!Z-t@wCdwIVwC^|F}tQGwLmnE7giLA6vK4e)Sz9UE*0}$5DE) zy)zQX5v|1W!K-Q{j%IwcH}E2Nhtr{I2qEmW(A#1f1U2Hk2Lf5{A=`EMo28#3d$GYx zpq(=NJ%IyW>KT_1ARi3|lF>E$00`=lWWvj|OdB1`KH{af6g>n=3yA;muLk>cR8V~Q zxs(Oza2F(3z#r#;GA9hxqwgt?&bt$CMIyucheJd{x4(H1b9nL`Fq~1vHm$&vz~=55 z(;6&!k}l795g6!zj3adwC^O{=nEp?^nuJ;we|1WC^cWalz(AkRnl_l?ZxlZDF^*-vm1)~&W*{srS%U&-K1JXL|FjdC;*MxZUOTbUMHy^F`FK6% zBHJG?#ykef%LtEsvzrKTmeOw>CeP7z4*G8bp2x5X2R;emz7Tag9Or{%i6B8+eLwps z|3Hr-&Q3rzz@*dekN7r;vN$c0NtX_zttf823e)mkwY~p`Au&zlkW4o=#8O?A)|rIO ztxx0XU(l6c-5HXELsKsn1`<5ZBg!#jfcsAs#r3`8LEU+$H) z9LQf~RJVj)iojL-a@I2D10OiKV!w*b27OA6D{8P_V)u^=22<}&3dp=5n3LcZXEy$U zCY4eT#Kz0}rC~4RHYDb7%lq!5DX~MN*IW2;{Rbn5ZB zm#FK)asAy&_~=h;_#U?98jMw8U_7`7_Ww0;UV_C+1Y$$yrKc0)+u4@Kc}LB!PTP=y zm)7xu6W!`fom{3%*H(YB>M~dpP8h?Vl(GGDpUv%n04dHwoCg;9x-|($bC1AY*eyG1 z0?amwQZZwzEvOXuy~*BEPFJXm_Jlmhq^|HIaBsnq*D_$A3Jk&aX`!fMn|o`eG-Cvp zqa+?Pl{K4@5~G_A-3Ort2wmIOQKQdn{fy?~0zc0)a7sV~9$?D1fn1K(sKasswWR70(E`n5tw@+BBdq;& zh+Gbq&Qr&j=m*Ny!pd*<1#ca*1o{G*1B_^1=S*Y*g(!5>2`aKVAan+k>MoI9Mzb#} zc~xu(Dxu!K3k1S$Dwb`9a$}goN0da~$69h*$}&*dJN2FJb~D@(mxJPnpT4?a2@n}X zUnUL(Szhn743p3W{`-r9%fwVwR;?X;wv}WEnBxS1~|ZKvJ2Ml#PcbsjeuzE#x0w877>RH->9d6sJ;6n;e2zs)o0@MX5;pf z$!mhVyV`C1S!=>bug4QT7dEP0I7ISCdsw^;oT!O9+SJ@Tt3ZcmR2`!rqzhpu;jW4Bf?M5Y$ zjd!bU$l_G+D`Kn*`PZ!_IISa9bE9B)`@oJ7sYXk?Uv*A~LcV^-Na))`nb15>bH1kT zI8vk>1WN9f%!r7WpuSY_DnM=swthmMRTi$~@!-ZH4v}5+%2#{C$-w=pdr^GPwF6t% z${9e^>)NAp zHHZEDqIn8S8)X{GF802@J@pGu06mW?hiid+B-y%e}8{kV7J zRmJlN9lwfrut!SGt7}ynB2`+~8U;<~3);8ry8#)C6aSO14iYZ<7*$Zs&=e4JV@GvV zw)abN7wQS71&|lz`J~Z-{#b#ElbnTSjr6-E=j_B9uegXJ%#abiGCmm?qXjHfl=e(L z1y?34P&bt4cU#_}i$F@_VO>@6gLuzXJli7LxzMyKWSkaM@-W#5o}^?b3Ds#WTfsvB zSy*&AXDp`-<4&<2T)e9LSV8|VeBj_R5=mNF#L|B z>2r!gY6*fPgsF0OV)D*ktg+(Lm4~GD(gUuX32;jdkG$qNB^;G-cisRB)JJ8No{@9e zK$$`M;6Cxkbz}3GA08>jxH){2=Y0P?P{NmwbSU}CXX+k@`AdKKmxZ`CXceoMD+EK6 ziCfmNh-aZhy;>2rF9FT6UeOJN@~v@&@p?hK5)N@x#NVS34tBBdYb53MrVLEp2LNrI zy)t^x607gz$3m%43+{LrhGOZ4oVD$Dklp_n0>IDEHU07;;F+$`6Q}*U{8+~|N9jR$ z%idiP-oXCgq1eLSe3)4nii)ck;V8g!N}DzF zkpbwKFK}g#WRfw|$w>1k+TWlvw_bgGhnMb>o{s%tGrF&V;ddax$j~p08?{Ubsd@SMe9MJv5TDgUBk!Dk-oKNhYh2>r zUNhW_!AW8WM+*Lpz?~+D9#Zk4J8eE{jNPl8nHx{)s@~6QLzwan-R(VX3b zyDtwn=ew;py9PbZOu)$1Ne-sL*Ivc`#7m8Vp7&Hld!_5$*YgvthT1J5EgT~)11zaJ zwfo)I!G)%}W2oTQ>)TSOy5qCx-IrpGL09ng(1v{v4FicN;NL1+ETL+F8)!s1O%rt^ zO?on$p>lGvAyZWaVnzGC1YA3_#<())xw05fBVw_ZWz&U2BcQ6bD8bqGY%VhL<~FbA z^E^`!O})1A&(9!^Qku#;e*b<=OD^^JzWK7dt^te$e^-`Aeez{p4y`zu;c3(0MzQ*g zulblK2V;lee|tL@Yfd$G{5_i%*WRdo@2GTaqrZ6ce*dv$_!Vl)I5VBDwUtGE>N>4C z#s8u2(Ic2M23TUSX%Ofw86f?#hoQb zpEegg0Pyi@UPH!sMw4oB_JjI-4k%vm(goy10?d&rwj%nV5-2YII(8WhG#ums z4q};WoL0U9ZCLAJ3qX5WXMi?w3EQt8^$*83qge3^%4tw5aUP!HKkbEN5CRoHOB7(iKj zb~syp0u$H_eP>xwhq20StcpcdweKCAG6&MrAZrkuV{T?GD#wbQz4qQ`>v~hFs)$; zH25>7zL1}gh40eY*ydHw=VK(eFGp44`ntAqKZVr=&@OC+rN%Wf%|HzjT)kF5=JU=4 z0A>eZHl!0?R>a(GX}&rcQ!^c(@CrwM41ExKAZ_czK|o67yLl1LYAPYe$RE?3+OH%? z^8uDEb{Fq>;^?k=89X<6zlUUtB*qW-q8@BW1W?wxH=2tcVhuALLJi%VTBIEHWpHzB z2i;wBg+jF#*V{nKL%yd-6F@pMn+*Hb09G@tjfQZlN`Z=ObFc*Jun<62L6n?!liKj8 zX2J_mN2kYCb1%WwP043RaUk?s2ttv%eh`LDlwhaAn<9SCykF?}%q7F`int=6-vfGGHZ6QV3JQb(DnL+6{8I}RmGY6%UhOnEGyYvyiAEV8(|`HLuC(b0O1@t zl%&>QXDa7xQ8O7=m6KY`)>-byH+n>u&+VNf?l5);`m(jR5ixLjM*E1m=E)(dp+C{3 zOCdyhx*;i=+yk;CcAT$`D`+jPJvJj0drqPPkmBNKx4RZ{@B?{Iv1JqzImzJymh14~ zFSsE1cEUk2?|GF=+XqY~PU@(101CzaP2(**G6uEjyn+W7tG#=poz3B-5a`AL-;sab zS}d1$CmmGR()_1fw|5)csvN~cGqAdSPj)NESh`Spmr4hoHHnSMAIVgQFgjKkF>}RE z{SOV~jK#6b4_PfTDftM&=J>vSc;dTh=!EI1iQEshFNlLB%w2u? z&0s)lu}pSx%-<6&3MxewD1kNA*EN-Mb&Z!b)5kPvMb%@}YT4J9017kNjF96DLMzg? zh`6ubp}5h19xMTg4jWvpK$EWnj8g2hT-Ui&ueh?IXfoE1InHq_ha@%gKtv^C+xojA zhfiK&`aWUCmwImqNM0E8>?^#&U$!f_lWEbb{1 z%;3CnlzHX%fwoxkWS-y_3d{|uTpU#(uK6!_KOHz6)BlpjB5<*wya7*n>d#Iv>q503 z9|2*TIRyINrM2`s<1~`@M5;^-K&VQ0osE-Jh2%LQw^l~V_G8n4Hi4VZCP)vpt>Q&k zs~CNBVV;nj17d4S)vU@onRz--Ds=9H2ne#)0X&1{Q6NearLPM!H zqnHmiAk>V9YhWy2Cw#b;^b#eYGZdb1{uwv$6s$+nZ+D`{=cIqgEk z{Q9&ceuWNU#Mqg?17+KX_jZLzX>DBU+AF9nm6fL4t%QJN#ba@s^@a} z@#xrBO0bHebsnb!(*``Wm?dkybo;0ZEWov!fPOsM@RC45XrugWc3oCF+_8%Ua{75# zOOC(01$>#gwj6U3P9<;na};$XhAJ);WG5`PWT>ZU*>DMvjQSFyqE}8_Wsn$ot{?TPGqeK{H;p5MNnlyqlxHUMj2Wbpxw^MJ zpOU?9MsE^$36Z}knWTb}l=j4$r|j~6q)y9MGH7b^S?kPk~ z%M#JyWn1*dA)v1yu)c&faVQayZs`P!oO4&wMzn~LLVSn&piKi`miCv~b=&HA9)Jn1 z1)3tK&lugrA3kAxm3u&C<5U;-I6o9WN^Yj$L4Dx>Cc{tzJ5y%A>2OuE#*M9G6m>A> z8=g2*C34c6THiZ%Qk$t!nCfdmi)0tjOe*B~A?^3oRA5BX)=R>n>a?KlQ7X;j2R9Gz zu?Qn1RtfUv?3F2AF*}F>$J6cT1^9R7OND)?2*#v6iYX^1EH&-AtxzhX__*zS?~r~o z!m4mkzwFKkCW@P_5D3#bKolb(c-5zdXOfKeF>L7!DtuQ~vo5A3AK%`P7MIel#CoEe zj)QM`gUpiXnC7`lcZua%Rz=}{w{d*XL!z0JUeIRkk4X=ay52*{!w$6e1*m1>dQrvk z6W$jA-F4$b-yuV44{}KGj*4?cVSD1Xo?3`WdL!0G2z!SN#pa=QzOvDm+3SEURv^$8!3WTItv%3}NWh z-%V3LM^rZcn=c)x6+-`p+A4R1}!aBR25hJ`ar(iWfx_pScB77KN2-c$zM znNyjqiKskYFI9y7})V7Q#LTfoPA3T^{@;JxJ3II{(W6t z92%z)UOPB(mi3PWm?xxmpwl%TOwSdi8v~E8#)l*+k$aG<{FhC+`g6%NoM7u5)@K&e$1NEHtYAP)35*~}o@{^Yp-Ir5l}De;Q{@8A*L+T+4>qxrZ%<4Gy!6H=Za^0-r7dy+cEVs;BxM>1 z3dfh$SQ?zR&ayhDI8RHAE>m{sIZ3M0c;8x?qUY0KV(Ts28@?jcWgS))X(9#Io9qx?oRNs7o3m?3A+42!y?j_UWZ9j77}o-owUmyEK#y%gVe(Y< ziHPyO$oTqJzpO>E;Wap{^e=l#3}}fl%y#iLK6{F?e}MD|_ue3w_`E4wB3c>4xDdQn z0|&v4U`xTGR;ecSXrp0%?Eh!&O{>GGfMR{dHd50Fz2wimPB> zs-u?Ia!-pfn2hSWHx)lS zw8`BipxIvfO_OQ91&Vx7+RIIx;JKQZepxxCc8GrhC!ID#J2tlp6iKD^eQL`GF^oBY zdU(v0>77)&Jg;DwXz=C~MKx%x5nhwwH{AHPz+;u$OJE!}BJk8J<+pdVTm-MhRB;jJ z0s#10)w3Zrv3X;}3~C?3IoZRm_5%vSK;{UF_pTMR>|B46#$q(#>A7K`-ochwzz>@yXNKOiTjNMQ$8*&fL=2&Uptse7ca{efm#sa19V}`1ws>jn{YF&IB5W zoyt5fM+lb`Gvu^w=({`j(_MO^ zS*M$-L^BrO{l8S^Xky(jm6Ut!5~-XP7fS4EikkPAB$K6}T!jP_ zV-3q`P1ucENkj==am!-fLo_P+Sb*(5X)9xK?i;$=^xFyel-=J(@lK@FenSBwmMYwA zu2G&gch6m7f(Gg=RZq2lt(`Je)l~D$nd+O_obBUCC!LJUJeu;^^5Ot({L8tw)Rqm4 zjv52fKd!O|R{T#z#rwzl6|>#iEOCIV+QGW19v_AHmACB^odJo?*mM+U z_|gk){FLHTPMPY#-~p+0nOO~gPb_K>6x*nnXiAXYoLntC(h%ohbL$D)6^EJ;Oai`{1 z^$jN|qYDDKj)yRB?j}LyI3`i3AyKQygYKFsv&}fz%HY6=i|x#|FV@h5i4QCq_|XtA zi^x-t_8_?IjL_y^><*fa&1yQ9giy3pUFn3lV-_fqG-?*k}klk&yaWpiw^t+jh zzoP@-<@xLmaDAJ&-?9R9*=V|5)bvbue_p#jU#%@rmI#Jbj^QR|>k0ah)PsD5S0;E6 zt7}kar?T+A-#$vmcMT8%yxvTiCywnK8gl*${38f4-}(OF;f=2Sdaky;5h!fs4f(Bn zSUeszEnXF7q;V)tZTJf_Qk#@7rjLo(i5*LVw0_j@y03B6+5{31^-O=EOIyvz@A>Bq zR^V}_2Jpc^n+EAjtIcLd4lbar%;EIn^$_#^oYS~man%V{P3hF!mQk@*GG*mUGFWN5 zcTw>#JiUsv0khuE{1JO3M{SgabN(hXyO#}&0h!Ls3lmp!95^=q2(yTQ3FMqp)7ga3 zk@rVgRe|_m^#>84s6B1xMvo}#c{yd}u?_Hm-jUV<=kM?4yy$TOF_t+u{SmQ(P9;y0g(3BhxNd+(p9-n^ z!Es0xlsg5p8K%@Wk1ujp>*$Y2j|ye6hc%RgI#wHHhM58qF)4uihc1DaQ!pG7K|IHR zy2?5%Z``A#B8|hs@`HZETYMawCG~}-UJvko_z79u4dA{ygc1r&Mkhz~9K<@mUUXf! z|G;yIJ=3=fHO{ZEeC&c#lZyQkRLB4+Uv0MugCmhXeT=qhdalisFN9ZrU=b@cK46>N zj<{Ru3LL;&F#q>cs!cRLzEY6hUAsi>o}eVdoXS6X3|*fJ2%j2qPKND$ckR{;q;fl~ zjn`QJ*;R!`hWxv?E9sE<)|hNlDFFTp#~f4UY4bpuZn4^ZKwJvQ_M`xB z0OJVMGM;c55;yQrw)^4jo^yopfO62MGDTq;8VsOsjVsS+K~3s+yBbzt8W1c;JjapgoR zFR^)4qoq!zMqq;Y)ayCATvasgp{N*fV$cYW1gH|MAdsvj;P`hkWQ}v)`1`Oz@`&U| zg?s=>MHU8?gPpQ0o_0ReftjB@rIO8o(%;fVRLYv2zg)=>nhqI!j=!ep!E8#TJ9rns zW$GhlVAN(t&JP~=-HtdvYO^xgsK`t3@cw#J^iY=7<|F#CuoNZ)6`2MbTy#Q*%Y~9> z6#&hn`|YJo#}3KBrT)w+t$78_RA#M1o)jR!UGlQ2G74kpOr~4EKD+NUV#fSVDjldE zlAZq&R!G@TGoUc%B?cl+C^J5xZ>kcd6>JISc_>f-StwQ#fIizLmtg8cx>}W=-VH=v zL3~aFsrxP#@iR+sKeW?(zw}z1+%l&FK?ITM)z@)OOQ$TFI3Pr2h{LeOrUjRlSAdc1 zNgbN4f}ClYlgH?IgJcs*OyAyk57Z*_Uxe=rvWf6uHXcqAo|ZA*v#}*bhP<^y0zb;lpnc-~V7%i%1by1DA3b5Q3mJ6(E`7<5HX9ZR9 zsj}9j9n&&eq%HetJv;9L6<05 zquO2zQ)aof1Fv+u70_k$jszP^ompKv3#M`VzoYyh(y@ zo$Ui-HD|~gk6;^cq!oy=9qojv^dI8R`O$3ygw`9+X z8OH;Y&)?ap6klOu4uy79WVwdvGJF;15ML%H3GK*TsRhn!UfjCgoeV#mxv_T#&1r>=wOhjAh(rvb-s%Smri`GRp!$8UcSlT5-)F}y$($O^i);&BfeDk_%8Aa!yWi3` z&P%%xCfx;tqDj=fT0a?SlMFV*)IO-11zD6wSXMlL3XyI@NS^)xj_gxw$8oh>wTytg z=sp-7I(*h6?KD$yEA&!g>+)PY;Upvy;eO>aVm*SR`Hk8sH*yj}6Q{9Q2+kjJRy=jU z0gGr6?={af436}vfixvhv|hXHAV9BxRl)o3iK@X{P1=c@=WKgcDKSf_A4`<95FnT} zWi>xdAK()>HV$?IGI{r@{H*pLt0H<4MpzMXid73^`4(6ZBOYQq76V62>7I~cW5C5Q z&{X;R#Dv`}JPIp?Pb9vWxlT&B>PIZSEbg>C1=^(kqN3qyfNH`a`~&9Cf8v1S%`yBc zlua^}IE?0}HhL?RP3f%1_5XIe{vainH*+4(%8GKIj&L0X&-d>(Eli9L@a$;7McSIWvukciw+ zaKL=%H=0`1IpX?rmgG4mEm*9rNL~5Vns3WE~4z8;%nLgO2{r=ns3P?gk=8 zlKCw6)j_xW3D3*V+qi6+sqxXcY)EfRDA+Hk^oNX7)9){A^nfR)ps5#l3OLyn4#<;n zqFCYwEIwz%;VP4-r%AW4u%*&ESSxE_4RNE$tm*oTTh5pZ+kIl@CH1HoDW9_UAX&CpRGS-O2&G@djkNmSGFv2vauK)=D_1yR$;4%qR#KUm;JDns#2)fV?( zI`}c&q%2naw@j>JTSNVZ)csq3gQbIj%JPBMgQ^@v}u3xEzSss=L zNr5!=q7_hi19Urok4&s$JTDG#AfOqBTh5!Qq_mV%hJ=o{3sJHc9q7+AMeiIq z{__^^OKO6DPi=6X$GwvOBVR_2Il%5kx4k5jPd; zu@D+evKA2VqiRxv9JG;P@+=-VrDnbcB*LsGNfc0Wkz1$^)q@wQkWDh^C{b3b@w00y zl|!6-ofL4ml4$QTV=ME!@@XR>{cBm^%lX6;z6Y_KI=A&oX3y;Wk(xX)pvVmyliOnALa z1z+&7OR6}hNTRFFV1S#?-zSxiTYH`KpB`uvv}*`2`z;Rlk_`T$?P+Qd5{{j=5F0Mh z!M{n+g&tOL{GTIP7e4vlk#x<)J{9DQvB&=^dGqD0YFkSSC%kZ>_u61Q6HNuJVvlo?A|9UWO7<9)nGzo!Z)~s-QZh#!GIU&?0DG zk`a`BpBA-RMqyV1Lh{`b&>qqyX+?XUADh1DUca2CBJf8%8w@l^-S@qIy6NXx6suu6 z*r$(44W_%XeuxIGns>#SVKTJpE-w}z$`~B_Gs(d*60yZ`mw82y127FCzPYh4#JXel zDer~mk{=--mTJ-r0OgMflkJ!xG@0ba6;K$)IV2SL#1!P)o=55K6Rof_freS1-c| zk{x8_8_oniH)0^+r{h+H*+#JtCGwqzlQ=H(nsV3-R>zeVgR<=4T~*^MuOZUKpvgFU zM&KO{?w7biX5GlZU0JB{NwU*wWRY^WN?j;mWIbdbd04P0i^QF+-Ww>b0Oxkb* z7;Rg|3(V0b&<&y_%)xZtx5y(w5iGg)WjkysW=L82b?9D2?5&UZ0w5{&YEgzxzk|yf zUc=LQx?RIGHmoDcKxfuY!;538{$R7ius>nLo!{5Rk3C}&`xqS2r~*I6UTV@2TyY%(|IfQ*DOOQ1DI~}p zJ=%i6mS38wMWJGO1xwr$(C?T&5Rwr$(agcEDxWTJU< zKll4#t*6!xxVpOP>Z(4EIAy`Sg1YuzaDfTK0 zo7r`cg9(7aM)$%!hiSPZv3iJuncoH|>YLasvp`Tv%G)L>#jXru^NF-&nDS9rQ9QM#e>zDTQWox#` z=PHRm=KvQyqN|5gXZ1h`bpYLR_Pif{)X0B8^#ES@TE=!)<4ZKIJU8=~tbS=~9^EWh z?OJ5K-~fBuSJx<%en8E5C=u?AJD{_pDS)BP>v-20~$CCRmnWz6Ek9l?z8g>R_OVq%yyEjAD0CdN2mblN0L?vlD>?(En zv;zFF{aAjdXwRl!`6D;HILF5)qz+B4;TZx2+Pcf4&#Q$8EC*J0B>0NV!ytBZM9L>v zp^ZzN@Z|ob-2Ti#PZ!+R5_|b8OcS?@uJo#DR{7L*cX`tDysbXIx3}j{!oAZUx#x-8 zMP1UOFd~9}JPS-iy%MyckCp&y?a_dV*9EvGnZAq5e*Tu>3?rv$T;~TbY=|zd9@yhV z|3GU>6fB&?hILrsbv;DinMvxYgX3f;O!S2{Jnzk_29 z1PbGG0dxS(Q#5L`^z16@??pV_5U*>j7=w=!rRBNX{mL3Bw=`G#_&Su*s%^WUv;;_a zYqe=o`8SS{W~uv1bi-BbpbpwcO}4Zm%GmwnZ)eTRj62Zlc(a_9U`h(o^qybJDLJ?QkZ~$+a zlO~d3Tdf(xW5f4qYj>h$aC0%8cSiOibx}I4IdGI(1GY*gq?;tuGCyy3wA(g`)A-N# zE@c8&(g*FofP*yO8QA$h7I=>MY=hzqw!SSY=cN#~atv`tbhy@y|3K7ZW$pfp)6seO z!Rh2ZgW>>Kxw-#W*Je&n+YyfwC4lqbpU|;5YtX6QfRHj|vMu3f%Cn(8+2P8mo3~et^fLx8stIj_88A z1sWRekXI6PV_cDrP*%5!c0KBJ@7qdE6^5-&p^qx#!V`!mJR3kGhMo$e-!$yBTv*-o zi@rwJB5j8QpDz_wr~Pz)GyJ%O(L^uGK%ny zQ?Rx!P0)%&y$WB9wh%R9w#P=~Kr)NpIk6&ufGh;sA_qA5&RK zZ?EY^)YPIE!0_l3IW!vy{Wb#}fJ7U_VHmVCt5U&^>RX;LU@%julugkL*vz`pDz&Z$ z>~1jKO#ykQPC4?7U3s7eL^ry}s$(IG4lbgbY@J$VJUMNMqVz^a;iAHw156TTN@j)NESXBdQ3 zUPoJ^zgEAGXXU=M>6Z}*z5;XDnBg%I^K`eWQvu>6D82KcQ`%w3gH*zmP6mHRbrC4S z7_}Cxp2(vVoIm~w{}-XK@YBJ8MBbT4pf{I3$g$#;1Hvg@Wis24tffFzWnTu@KJpf3)r;C*~0Lx+bIJO05A zb^x?0{A2B9lpo}rEJGEy()37OPb9X>q~6|hpM-13scz$LWw4>1!Y5I<7=LCS$pQN*^kXTS6 z9#~dM|KBdBQb=TXa>`_Dnm|=6DeoxTssKr5bdxbWGMl*LmlUIFV3H&0+?c8Zd71(I zqpJ8GrwNG{egPNu-&QF^=t-}o6;N?;1oCV?bVOdUK360&WrAvhTBRU6Qw9okL%+1B zDs|}qd~I4rbt&VHXPti+?dm`yxoyM1=(?+svG7}U3sKX9r6iV{18=9a@2#0PngKBJ zLH8A{wbDl`bTjs6S{lczR5%gd8k{m+t-n^rVNBIfoE8nFg5wLiJrf%*zNVQ|1b`}+ z4s2qQ*EeDIHzl$p>Fbk?V3x)daP^W%fvWiy%+ffx%oi=^4kLW($E4#T=n9sPD54Zw zxH@)`>3D}>JHxd|1QJ_0N~dYYVgd7FI+%fo;fl3F-Uq#}>|hO7qu_2-_DOUymi;c z+Gl$MviACzQv<-vGQxPzC(ZEv0N!$lln-xjbZ)4E%R>{<>>*i3_2Sa@H~CA!P_cRI zRs*<46-Xe=)d%ms10Z9bOgJL|XHqunmTlZ?vt4t@MuA0CzCN3uw_&Q&(pQnWc<4YI zey=A^Uf6Z0#fZTO;!}*99Uf;*R4lM-&uXsNS6Vse5j&FOS&84Slvx9haXapcz`Jw4 z)VO?Hy9>Oa*$qZim&rEWJjHc5ih6ECFmr~w}A| zT1js8@o*$)o}vnc4dI?PqCs^1Ni|UoI(lNpJR+4|?dK&!@x!&oWWf0!GMguIh0Db1 zqTr4h_jpY$W`v3ML57L;I9(7(r-4glkV>;xu_8}d0-DvJZ`DhQ*Y5Y8ElmGTW*%s9 zqPEp;FqcoN$CsbDc`zR<#_Q#RoJl>~1&6sL&v$vSMZgCTzK$9LbUoPj`Y(TsvPsEj zyf~qA67Lu7)P#S2?z3qb$dch3{!oQLq=AIIOh{({N6H?upd=J_WbHELr&sAZ;F2AB&kNiOgo3&MymltVi9d-e?fJ8LU2vBe2 zV;-(+&Y8^LRCg3Pk%*^A0jqXKXI_4fkb(LF(3=$o`7qZGGlca0%I8EF*XkW~_j?H8 z>z=e?kLi3qsal{MgYV*yuAQ-Ca%gAh%FX_0{~(!TMzi)-wv0bZo;HX+4M8*h~Fi=RZz>Hy2mSr#gon;oiCA=f6#x z{^I#J)}Q_bVK$3Sbcp%EJtY}CJ~l|4%|qqPuX+ml9M31)i2bz)0B3z3AIwSRqqpv* zoG|`Qoh`S@lwA1hUQI-x^WUei1QVu07N1S%n~Ldj=#vLUyazy?I+7Uo8NYz;B{1

kuK8=fTYxXnQSR+>|t2g||`-7!|?H8_GbZnR&Dig6t16g#>#smcYkteamz=&aRtAdCx2w5=?Vp_}C0u=;5jh9m|__@jm6h$Zx3R0K0wQSx#6C^HMtn+}NzGgyj(x+4DQ-(pzKj6}@Sd#w^_lFNqL|Du}m|PalAD}HW z0}~e!3p2}qXt~T>92td{z<3#PUcj(m9Na`48Nj}fXc+}q5QrI;k5E+qNm?-f-${$Q z9}CYfj{o1nv+IC7b0nM4V-Qq&gU(&p*$%yks317Gr?0!ww!UVQf)nwv?`ZKeJCT#y zGe8|oqHyCOoZaUTUtDdttKLTUg!_LzKVOwo-x9Rrdboal-#zU-f1Fj^JS&d*Yop71 z11kIfhWGuw)qOern!()ocR-i$5Zbrj=QpGc_m4|f91V6%rHqt%^Fz|=WrVkE^XvX3 zCUZB(uqA>vRm)X@)3RW|#|tk8 zZ?VE~ar~pkDrZeX$N2h{D#WVU@jcJR<;yK5&F}t#sn!FohLcRm;i3LJgnbLBtU8C zl3rt=JK>g?WK3&7IyLmy#q$;YZj5$p+Yq0l=R`Pt$QP)Q}QGubvWUfNbh7C<0 zb^aF6Z^IGVHXDL=BGUKw`YP*qb9Y5lk*Y~`=|4(|=Bgl533-)%BfTc#ZP>2YYtU&^ zRD|?DLD{82yA-JQ39r2Vp8f7~!jnY_qXM7>It_s$2Bq+?N z)ogQ^kagBr=NIRasJN|`Xf#NF2-wdbVUHHLYoz{Gm@m!c5i;Z`f_zPyhyU(UNunt5 z*zYdh1?ikK0?Tz6+Nt7JcRWX0jnL4XiQ~B37XWly8nR|ddk^TmQ!TYU01<&UAF5+Q zz0scF!frENKZx+OiL60KqbPt6KhF5e$qFYo1f_>BtaKzSGI`YAHnr_M16vKK4J%{4 zGh_TbMZFJ_Wl!Ozc91}n06bIHEwhJ}97zM(glQH})B=V9nq6pG3aUI1X;xHR8v^0y z*R!ihfU^uufD@}{9-m|hAeoM|z?h2dWchRT@p6F~Jo+jz|IP1cXbtr)M z9C6$lfoCP3icqy%D^Ob=NoGKTjWzLED|i$e^E_Ltx(_9i^s`N>Wo7KbYa7pcnV=@= zN{C!N5YZ!9aiDrpR%U*G$KE1dlu35|5Fi{myXuUedhlOwRL_+qkO@`BCbT;9OOIQU;MFqCGiqZsm;;$1Z51udt7Wt6083R8 zJ8pJ~dsVK#dDtKoxIoigD^qUkw7cQ1hR0V9?DTm1d?j$YGfd_~aZ z%m(vCg5`OJK0>$*7=rw*_>q94f=SQU7fiVAEEfIkeVF0)Mm{>?J#d%dL5E77tQ>0f z@ps_+T6fUS7$kWVy1RD<6{+I49LP~CJO$BVW&tBEJX^v+5HI<(z$FUkFues`G2(X) zg7Iw(`!L0)%wM?Eaxe_Rw7HSPRU?#=38NJi>gr3QJL{!FfV=i0Zg3hBTBsfeF|~JU z0>wTbT4*Gv{xY-F7?O|ZFvQyf>4~Ao_UNBI3--k;xM;_$uzg?&H3$aP&R8Oq3T;MN z2e#ugte|i*xpHYbdRYe{4<7AGACA5SZ?ZL|XFCtq9ScYgcTyPRHc(EF_W5a6sdUw%GQwlOysuyPToU5=9-l8t>{R0}dB!3{i+=-^ zwtCo4A;9Y`Tl6bxChWllb4;mFfdo^_h12IzgS?E}0P-_n#w%Ei;!P6xkc&?|rAOEa zVn;}s(rql(quZXH#3yX-dF8bV5_2NAX(=4=zK|(ALd%6f3OkKE3dMY`J0ey<3vl0R z9g8P2IjQx={&Ezz$hh~cBd5oDFjY`e#6qE3{;*#06VvrLt-KGnS zcZ6yiFr)(?&w(nm0cbI@cTz+mmAXtZ9tth(lXRIeF8Cp=s{+R<#UPGyy(n|*Ifx1% z3t^`i$JLr8dXCsi+k3QZ$6h54JXCxv4?!~&z}FP(9+5=7$sBcTPHL_^yt@VPp?X!d zAVG=O^2-`UiK?2koCSkL!JGp_vf#^}a%++b>`;=`6j(XNi?IK|!UW=MifsNFl(ed! zoEB1uK2TDb@!g@)eUcT_-ZN!C}ww$^~k-l7@SP6V5Xr_83eC!mUmK z(Cd`=I*9m@%vR)DmTDp-WLji?;Eg=^ZEeaSwx}E;?LY^FBCEs3C_?Tf#=+N=-fSxP zG8D0@JHqosUfACC@Z4VN6}?0C;9#ELdllDteeoR(PwSDi5;sTzcW|?^K9wI zvc_G@$5f0HCsX8|eoWJ0gTF5RLX2sm;xGc`{+r)p&#dRznYiKM)Z&MmAodaBgLQFX z5N$$Apap_%`V_o-3mjzO6F3LjY;ZtbIeI-Y1MD; zQNf|gCq<)#lv>=n2I7R2m}&$COyRcd*FYxb7V-(7FvgEpg>7ABxuT+R>D2Q727u+M zG$uCM5jc@kb-t*M;dW1mp4_&0HZtN~qSvn+7ycxF6F#F(_g9_cEIO{JvG zH88pbUrZZW_X#N1cg)1mvlXD?#}HB!>(0NT4$n1qR9jVRVl+j}h53P2hSy&$Lw+r0dsY zxq29BUI=^l)mMicH$vaMn+H*Ikw=}m^IN4S#n{>yUJisPo|pd~ura7JXO!^}C( z$d6-!!#G`*scRD!@a8g`$1wJb#Y3VC$(5HMu*E^S%F-eZF4%}bV5kBKc?W&SJvrY+ zv?g*uUna32AmDMIj#RF!Wa{V6zsbJ^pJ=j3ac?D(4=a=dm{I(D!pQLd)WGxTm)JJgid0J(Dt+Z#{7X(z&B{+$vNhArEd}#g5tw zH+Zis$ap*9(1@r|VrBUl=P*~po1zAWXchREHqZ5MUes3)Jt50zveq?95g z0B%$KB%N#hpy!{fR+nq{FWSkj2;DlNNiON|AI&`GD*TYmKNS+3oP~^vFMbLHkZc;U zdF`mqUL^W}HCRYFuy^2!8_E=jqa?T(vGdKQT)qZ^+Tjx|VVzOf+Y2F5&#B3U1Fge0 zB<*nMLfY1-R8m>YhmSjPIh9K zDAU85ITB?}YWw7_xg@+F7VoTO%Koi|NtBf9uNph^b@lb}oQ=cF_+zLVd>;3+;Xg4x zEq@L|nq*bCcH&ylCbIo3_2w1!pZxV5kUgkU;@)0omSu^UOfT3bAp#DW8 zESfC=f|?#v;~jYWf``FB<8QkhWwU8qRDZ#i>}D!hA$-i?4<#T=aLYZ{aG~20-CZr& z1&2)HwIrFdYMQV;nwOmu#g?mnB5=1PsCuJ(2$wVSz;O6>B7XU&_ki}9oXqdhx+HBJ z9LGs7RfXcs=OG8R$wheBm_{#+9KKRswg`U!hO5N^?`6#C>jY-LI)VK6d}8Ii0A>8_ z;M|O~X*UTqbM%VOmjn8GmtxE zQcrs)z#|q<>4_^qMTHsRa@-(kXn%ZCRVwHm?9ye(yh-Jd)iT-1W)M$BrM;><_jtyQ zI;4i#O$gN$IVpjc6jIp670qG)GyK{GjK8B=Q^~E}+UpXIr5J17sPB7i1k?DY&c0gy zy3I8;J6S4?`{l5%JyV2>I|rQ;9v9x5uO7cu#wJeXNxfiWlCL`175iYf`tM6yQZbHZ zK|X!MGk1&a0b#*8hsL!MtK{u_IA!sLB9}Fx%Jg0)w@Coj%h*OMNYIi44nqB>w7>`d zixS-#pWe&C7A^#6wPpy!8Rj5yWfL=C>D*QC`5^nqJ;fUi}BfMj{_rz;LU~2C{Yokoe@sw#kWJK-W+I*gXOP4 z_hlH+Gr8bHVX2wq;Ps10bo=#DKusPsiX*3;WRCo4;kN13My~Rw$_n$ao2Cu%*J7q( zw|qt_M5`R;GUOL(){e(G{{xx$AEve&PlLeF))fMyE5?cZJmYbsrSi-MttIKbU!~l8 z#!l3ZymlMptzS*eJxK)eC3qJ-vytusRlC|0p)SX%^wRrf;?(4)!3cFmfITYq?U zKUAhs%B>x^cYS~2AFBFNy*BnV>Fy636*N*dl*(Qu%DP6c;Ck;+8lLv**gCu*pAxN& z{*1u9eKd|w4B+gW?0;Ds0QAXOOS~J1a%QSpOnBRqtEp+prH4kojspck6Pln*tc3I| zeBdVk;S=_2FU(D0He8P_ZE>sD(eP!<+Cu9;=k@p8J|dDVLHPI+PZYm+^Z)h`&U;m&%MsQM$z^NG^gcX@&Ny&P};DS7lB4`|PM{k<^Kh1Ku! zi0N003Bp)B>>%~`)>C%@G*W+i08DHKAZjzK79kER^A9%RXOqLu%D~J)#LCLf z!1lAr;pAdq%LwuY#zEv@`9E>0tSQ1Gpe_~bnAwRF4Dc(-%!R+f#gqd`+3BQIN;j5p1s<-O(v>^b!008(P5m<0^ zBjVG#m6{l9X(H zjnFG=tAf2H+v?_if5&U^J^{%1GZ1w*JjNp%u5CG0QMgrW!Q9xrA#9-Dv(*Q^caYaS zWP<_zZ%4Cc%O7Kvy_ecUN*%=>n9TUYbKBZV|6KnY*Md zi6U#<@JebtNpa?)j(yXo)N?nG;qSEoJPuO~yusn#og`jr9F+}Q4m1EmNW_9J2|`XP z-3Ec%uYb3gIiWZRYt&RWD0E?BJytBrqT=;yERPq5r~A(U1vX>u3&%Rk+Dfenvzh-g zW;$D%56uo)Dyi;%l!Yr1?V5@HXBa2d^fNCrp(s$8GiJRc({#WX{#5Mj@)ELwU?e+h zIXR?eAu48}jx=l1Krmo1woP${B1*zsLUXriRS9BzwHAXTbt6P4Z-`~yOi0EZ<~{eTs4`{BiXzVEHl?%M4+_FirOhs zkO2}^i9I1a)&{7cOENyHaiMfcRyJk5#N}-iQ}&L#et!Yh@&6GS4^j#$ohiOObP6qv z?X}?{JGbp(330E$*~ydLOb)gIwO}K)3jJn3YO~FjMXD8+4OcI3`tqvnEH*{r zX8_tN&*exvCOODEXto@!HVm{-SYa5HVv5(uwoJp~?4I=oendnf? z!SdY-TWvtihG7c{<3^bpHj6_q>s?X5pwx&V4`MgJbED27xVwd&d6S>x$EdbNn`Qpx zV>;>FTquqAvq^7RLVFX{p>aM*;s+_w;?uAI>jBiX3yBZ$G^FovTo8{>ng7<%V*9F? z`6lXil)as$y)JNo!GcOYV)e^=9%XaJQ|R*$32AfoJGCJASHXe{{yPWvZnN2B#f%3K zsBHROyQg%BTF~m)X#eqmbNxJpQzNUH`w~%(!To~Y$l7*Q>^SllL)7|#Q#icC!n*GmJ;-&raneD+?1B!T(%8J1i^B2YHbuyt)iCoU?O z(tH!TM}4Tq6IZe+bwS|a6eoCJbBp3>FGRxORM2NDAmms5I2^D6>3!d8uPzkZXlkq* zS;0^7`Bq|nn(|^WKLe7dT5pJ;o8cfCqy?aWz64?D_R#2G)&YjWDR>2H&NB&gbYs4S zBKmiq(x}P3am>ylK0R^E2(l-F=L-SA|y;{PKcGJ zBqq#F4u>S%ACwVq*(_up`wbVPr0|S9vwu|`s_CJ&Y)q#*M&n{J;B{1rb{J31n*&Jg z&j^m|p)0kvc6ykm09h=+Us`umlg$P#~CJ(@!LLx8WE0)MR89Ct247G&l0tj6=pB(3tmgrg(axGt_DbF2|DiF?%&(dCgjLf;`Dc}KWy8303h6TeSh_` z1M^aRescxi;$^R+gg2H9ZzO)VZlEyq4WdJA&Bk|<#Qw^CKL~TVy1}i#EdVY9fx6pl zkxs^Pc}~PYZ4$SH)!BDquA%C$h+HZvdLvkFUVkkkpQYvvc#{ewo0hW;C z;%k4gdYY?##DwiHb_whmsc}_}4AK#n%#bgDY$#c;8M5!il zEkc(Fs$U<$nr$MrW4CQ7tqI7lCz}%cmY8CCu>M<>z_MA=$0OvHU|0CW|2pnQL9l*_ zT8)cNiZL^W0UDzI&L=>@*jFcGmi#3+RbEb>lTPt8>c_SfPI-n-v7^k#(egwJU2ZfC zb}(<_>@Zm6>jSE67twDMqa&AfPX3BDT2BlF;=t@^SjG z!*~!UOhk?7{B>`|&o-VXEBcFDzQ?nA!ERMe(j&sUi9_yp?ikB7#U9&?Q`O~CJG;~8 zdAFf{WblkA>d*m`ax(xpFe#R-XLni`;XHJ`*?j={I_5&Ab1XOKb}LLkZUX3-g4%>W zUQOV})A6}UawFy6&ioc5`%@Za!`FcE;`a7Ey^NnlGe6x|>Fq%uqVD5EYf4ZThs$8{ z$3iqMHKFP>;`4#3Kv^o`vVxqqRWH_jN~zHAF*Us92Wmyr_bft*fN4rQ$2DeSMvZlE z+s;<#KYrL{os<@xpYRFO>CqX?rzlt%XBf}~Sj_A{>PI3DCN>6U=AYvg>whGZ9L(Gd z|FuDKu>GHhEKZh;B5-iD4C)XFgbZ6uXkyg=BJbI_SsB=Wp8g-?eMVji7y&Z#|C4rK zAM!uvyNn_~C`teuGt>Wl<<_RFoAB$0Q23L;9qgD#GpMIh>EMt;-f=bp6%O{<&*if^ zYo}q$9+GOAFFptS;f_cZlPT7S$46uKu<+vM+xVmB^D$CJ{qncmc;DaiLv-ahCt^3< zzq^k&4=~W@%k#$pFo*b4_ZX{s|Mq=wxqVcXW8iHLH3jUzA6&Vfvbef+3T;Gn&U-x z^2{r*q7a7!PC&xIJSFxa9RIyzvk``g=5RQ?+l5lLINuSv%q~$uKTW@n{JqvL!3SBwlaV z?=LTU`;krBbR}yNaNo{U4lr#1Yj0L))Q|x>l<#2-f%Mv!^5KQbw2qF0ZMf! z<+A=xZeXRAI*>f)eRZ#cr%>Z-pqw)`1Z1rvi_t%XjuGX<%Ur_;QUNr8x7ffDVa9vf zf{`gwnBEIWRv;CNC;czTYk1AS?-cs@!kE8&v86-7(5yfh-$qY;s?Jp(!3yTd1oZyJ zo=nhOrSUXWtEP;oPgQdrYNx#>k;Hb%?cN0V&vatxxr>Ag+%lX*t@7-z3q8|@H$+F? z@>gjE(BIo%$Ic`%Zo!xXkcUwUWTf&fZuLR;_)kyLG9wJv8nogCHFe+RUGoF1q#Rp6 z&yEjO&9cn+?czcg3r^h#C!Fs z3bDzFdYoH3%b;ekJwo+E2Sj>i|_R7K)(VDPK_oU}h_j3#*#$Qn-%l z^v?T8od~8Ty$3}9gb*kvNs`rp5Q0&J8K#wb9VjVQF6HL7vh^^8xLppLF@16>_q?(gk8Pf zh9Oz_sE0!uF{A5Rk3*jc@y$`cU|9nKqK4FcHh=k(O`|5bN`X@0VOBY(&{YkjG(3z# zX8}EcZeHIE*6Z6nl(a`UrewTBXoWVC0|t1&{$p+)gZ9S&Xb%H_>Acz+RV$xv=2GS( zK@dyWpFwSZ??iveT}vdli_!9%C$z@_tfKz48;Dq81<8?SD922WScTz1)jdGU-@|IKS!zYHvELI5ml7CcxR<6{go#Eo;b2Tqm^nlbW#5Iq- zP{o(X>n9v)#T1O0xsU0>i<)`DE0?2w=T#J3Lv?r$;8eOZf6p6-D#_!W=uOb#sA8fK zJFfA(fnEXD3;ahVuSeBreGm;=P)Ssx>Rq8`&bHvRmdyI7{iS>B@HG1*bIgauQD{8K>7sJdn43Iof#=bYK`5xyR zpw~i-p{FHep~lcu4JJ0&9xxWouMR$snHLjSP!*M-{uo`PIIuk3kEHVY?8?`(iMpjo z>afi&VL{!P$L_%0Ih99;bSqjNJ*sztc0C}i6tB*BtKy7Bek z?)uAsR!Q<|SS3;oIsNdNcmtZ1v*8fc)@+%je@#rWYS&Y8 z)I79)hu%D@CEejznWkn*lf{sRZWIQo&q3<<~016H%k{Ifc0nxTVc5IgFa~=0C#)%)^niP=8V09?gbFxZ@U;=u$Zx=WsTW44h|E?ZxF3HpnU5(XC;e%V66 z&|n{NBGj~7pOHOTTi_#-k!n)#9ZvmKc8-Rw3)K9)_sYmnG?AX22KpK)kF)&XX4S^V zW0rd3r^pSs8*IRfqM%J+MU=0QZbcq~X zqRD^ri#`@#_j!j8f%Nv}MlWn9d(_?F^0T?cd)qZP*h+IGcx}r3{#Aww9hOv9$Hf*A z4nyTuy6)q7>8dX{uM8cp&&^1>(rq()2tI@|@e$f{U;UU4xIB0)6~HQXl3Njo*#+Z6 z3MzHcI82L)9^}x+fiZMbW*!7Pi~k#>gf1(#GJm-3zivhhZXs8dz;#)@OSTzX1C6Ij zZRO@!MDSBGz)u13IQ^KH7zmBI^VM-rFBoD_@3c9FA;ZeinHf0x8Zc3LmuMKxLA7yh z;7fsGO^8kpb@>ROQ7a`x2)T6Vg#21-;%{|V&;1HED0;+sOiIPQ2z1ibRjbU}-uetc6**haQ`MLoYumyfCrIG;P>U6WyD=C8y) zkMyrme}GPo3G52Dy+OrVtO6vlqA9N0Q?<<ZF5*V$64V@7}%@}ySxeH$S|=<%om*fsJ6@+8Gmk))~j=(>ql8Wn%}P{??O^dk~L zkE;>me7muAo)CxKPMFswfgE240l3}OW!Hu!!rv4W=BWKz?OL)@hDRW+LMHY+)NcclH0eNG$#9V--~< zDI?Z=xgm~J>>-Odb~@!mjDPu@>$m5qnc?{R)1~CJ@9FN!;i0wF8QQks%N0j@17q{u^;eZ??RCIo}<5Wdu!6N1FfE3CZ2`nO+zD(N}-)i z4LsA`tF;=&TEZz8sg@AF6iLQZxTD3eT+IXuh<{O6&$g{+wCCskht2u*vO_o^%VJ@g zo}z8f?cLumMR5b)RJkz7>7 z2PHQI>}opYK&Bi$sdlCIoD6GV-*Be_kVxlvKu3^nIc5TjnDMqaEE3 zE0uSeCg>>Us^^kTu31sm5eLiX-!curAbh#I3o!N+viE$mgfB4oE$TL(o6|z0nnh^2 zJ5+C)fC%plOHgn6h(7D55*VIFoZe?hva~Tnic8HsEK|{(-+~;G5od1hMu^UdKd3}3 z^6{n`t2dWKE1l3+;;DT{NR(%h6*H{6BF11$6 z#E=aAtBn@dk?9z-I$O*RiJSc4Q~feIV|h1t>vo7}iW}(ky;xTtv}hBD&q`;3!wn9x zf<+fklKGoeC=v;!(TTb+3PVh4#JtE$uLXs1$J5F+-gj0Qc0jZ=48G8&X@NO*1S(K_ zaEL)jkls1PEkwd4)mrWEm!b+F>jaWf2AV6GH+3p8FkBigABs9*kcwHAoD(Rj@BwxsDl zMw+DwP-Lim_0;(D$I?2)%o%nweND2fy_x6dLxRMcyX9hd1`AYW2aW+o@)+9Ht_fw7 zr~xS3CS;8oFIy4{PwGjRCi&O02$FTzS8#KWXUG9l?-_Y_J*W$50SL5pPl!+XCNBZa z_lW!$-KR3k_sY)(|UvBz=T;DYG(r;BRUBI#R#VaJGr z#kIAE2SBeFrKC}7>h4JojD*Y@nF{Dizy>?$HcFxAD0m>R%Af%90h?AgWE^t&_SuU@ z{^-IG4u#&#VW;!)|IFrIbr-CK!~KI04e@^GTJ&Ki=IP;^?t*J4NU~aY5U_bFGyGgp zkwq${J?im|3$3$Wzy;0>)ro(YTEKh1TKb)TpiH0uHSRt_XAL@uPLC7u-4hTrKp=#gerY6P2eNGjOoiiVqYK9y?T{{ zjD(yLa>Uvm>&^GKKYGbd7siZ?AcX=oRLJBXP)hSLG4YW#C#B2I>T=JC`kUQPe(ctS zSI$Fjp}qvvB9bqwt5L?Zq{vMEC12=_X~fD6eK;G#6gQYWA{x=7|HPu`3rPO) z@|P}Wtn_)?k?{vjfZ7#!*)LTu!s3H?9XY*4%c>kt&# z%8k3{QCL=Zwn3y(eXSrAkaU#n0BO=~$!7Rohat)s`MVA&&`lER zyAUbKsYptjb8uY4FZL|NI>G5g8pXIRbFM7%UfQAHVg5*eK?l%OVO`;h<1_M=!iZF8#7n z8$*D%zL`$T;FM|VcXK%c+2#3G@6PvS)w7vj_5X!_D95;UXqW-WyYd?Ga{f@ph!tANWxS23;T>#q>Q%v zI^wSFlAm1!^8jR$G?oYB^a-I#3kDpc+P>cQX`rSYYNZjh3&)V9?slDQRCxIK$iUM_ zw9enxUj4>g-c*e|3;|`Gx6c{6LM(+A!_?zYxw3Yu4;$1KL@qlODj>MTbN7x8p`1>1 z!1~jGYy#lxGMPF4BR-f=o@L&cu^&e@G}AFvi|IT5k78W^A%W~_Hkz@@2%*+-fR9$u zy~~K9cIu|>S3{C~Eq$9(SS|dTGegljY7PBFi$i4A_z1JT=Cjxk&I}K+INvluIq8-^ zV_ieUAbRb+v9)bf7@`S{yB_oD_P)C!2423uzXAYvK=ZjY!jqO$DjvXH<=VhX0dHjw4I=;mryJ+HS8itR0e2?fkEE9T8 z5sfRigX4%_VDSP8wWzEkmLKhH*{X_62@RRt!_y~0yH}8x^*E=QU4lFeUi>G0h6&qH z+Ylgqxrfpm{nO>8Iji#{LVdH&UH&M48!aobG)oaE&_+BnR!Y#4t2D``zyTGbcG**| zPz#reeg7=NR=O$Br2Lbrlf9&=*zBWz3c_jm{e3Mx{bBJg%Ee|NCGOcZ-`%qDB7BdE zwMl14r{Ck(ue5iZR+wJ??Xl4uYN%m^C2fGXbQRBY11L2`S2r7%J}K+cI_-Shodp3) zGjWm5uRJBqsFBR5TkNhoLc00yvrcmD!OOTYH?5kE`8D$DXhR3|L|NTfh%7tptV$~d zN;VZ}mJL3n2w9yy)RdU>2h36#r~y;+EQy%^cFA(GgKs;}QG)D2EW6jFdY=WPr2#gI z)u?j<_use*+L(W>D!rD-;u3p&cflkgj#$>swSTo)?QDphx$M&SJ29ozwUBY~@QGY5 zH*a;vMAb=TpT96X;L$_Nh(I7QO(?3P-Knl>?~9%VLMlY6L}Pk?2AP@VNt4>ASfU2& z6A_av@p_N}{0jiNLHQ!+i0)ir|jEW{l|BMgqsM)gBYRiPHn6l6;3{VF;(Ro@GoXCd|`X zEiktgX=m}fSl8mBaoyQXi?{Ei+tb^wE3~pS_stC_wkQ*yXmxP~h=*8s9EXP`feawo z)b!y2ow~&M7I%ece23hb&?6p_u!ieqST-<4{%4!pi4$zN+s7b#Bbm4|`dDRgu~8=_VX%-YUr)sNh~6%@IYSB^nO zo7>yz_=aVLL!ju40dV^LXRJo77tdWpy{xqjG+XvXN7r$PUsio1;CK8f*>6YrJ$g*2 zg#>jHGlKvxlpLQE?LBKJy=^l#X$0^tGZtLl@8=)L*58aCy}?X|Dt_D0eG#xEj}a!O z-B-3(m-`C~w$Sr$u}5d~8vsN0Ur5jLZ1e0=2`###Q>i~tO69Hn=d@Gp?7*bazT_aK$Hz=Dwi&d z8FTy4c+S>`0R~aUC!Nst9O43X*>DLGudT$VQNFkmZD2vfX}?gWbn@i`>Q@*yOj_vQ zyZUb{6ZF`l#pjePzP?XcRl*ka{a-$K3VeUBi0EBmejZwa4~@uk@;q2v8V+mHz-z3Q zlde7Ei#hkef79M!7$N$oJ9QytRm|?kwu1Zcma+gKY_uL&5}Dm#4kk< z2YynS1LFUI3qmcS6XA!L1c6{gpl*n)rd8(PQiwxdzl0^3z}lDdvbS&=PH(-ZBpeOg z&h)99yi($w^kp+nCvcN2h|~_x%HNnLh@`2F>6>m?LG#U9g~4v*9^)XGpCsCZ{Jcu@ zbG12(*S>Tkpi=wT=zEQDGW4V>UvRZQ7zumj1y~{u@q18si}gs7#v~67st#SBdlCF) zMGHR%vxP3-wN}A$jz*6y87@&25~wKoF}gxY6+B1s5(jVx*iYP?+z5EI*`F%o>(rvl z!T}hj!PP&FIHlnZ6S;P1Z|pgTr*5yoFfFs&U1Zg2Dq;m0ib;~1cR{QKLAm(!QsKfg z0Hp>GP>pOHg(RV9_~?o++9k$3{_0`^Q0eCA)BfiV+@Z)oLWMehYH}FcHz1fzs=-Oy zDe>6cW)z!D)V44MNYK8sL?Rd8(i1@}{nTO|pFaDoOI4CzaP=F2w_kZ+` z%-sJGIeD-hem(CHuT8HZD=;HnNHDo7e#3c>OH2Jh_$}}x& zgAbr)@=Z*(r*pEZ>I$~&6Nz$uzaf4ndw=|sePm^QSbp*a0D$S6vec2J>b%OXjOh`S z6A>M8peww;bsN_*Sgtmklw+|o# z!_5#PtX|a9GE1FWOe52xPKu*-{fTh6C&yNhd~+FOBf<62Ls^ZQJHDB|x8qTTB7cK7E~=jXUWZAX`LUV8wNwE2Fab0}bHXPv@trMS4f^%OS?=qf{79UEr> zx$q^0q6WWPM}4mrdUqRqOC^(l73@D6E7&PTQZ5sY%5U0M^rbN9_eQ^NAYKyJM_uUO zbu&$4cwx@>ZsX!^QwD-_=EO;QS6^U%As}np6CJ_+wa3&`Qz&pY=LivLhYEl!!r9fr zQ>y&2PUwD_)I{s-owCpwq8uW0v{vE;`&b;MMJA|lX}nw``*4vev8rvnwFx0UG)y}VhhfD+QU zl4))XC#Oo`1#*Ahv@gRk^|V5s%YcE%)F)6_#@d%q74f+l@yz=eq$#u`Z--c91h+5f zloYcR4UQlgq&r~a^o;jk$d2>^ZKWE$iiY()^zSqw98m={3J2K1W+wn_@NTN|U(_VB zDtU@fRk<8ucpE(ZyiZ`1Be#u}e=sTW!=F9Yag|-vtcH~#eeSMtiPTbJCEE;Bx!MEb z$=vp1Faj7hXii>%_xPAkXgTA0uQM2D8-c=$N-`-#4!>SU|_ zqiyMHHq<7*lM?nRUPa+`FPW&Gc|!TalC<=w8uo|ElJ|XUzp3+KAyVLDMV%lq zp&Q2VdhKD<7?bLD9p?BvuBKD`b+>@loQHM*as8JCmnhh zO%&EAOSVW!*$P_0vm>6ojUJ9mX9U2_)~PYdO0%apRK>U>#s58*&~N$Sh;*$z$&)1IR$<8#2em84HJKF4 z3r7`($F$SN6!n7t0E3iQvBGUtU3~b#>OM7#fIxc9GVJA_Rp)lv#>SNsKzMUlciTQ! zzrHWx8gWqs*W5$249r*htewQjnHHU|bP>@NM%#W{hZNALyR>a1ne({Jh4a}xB|$PB zTei5*x0UZ-}) z>TdhR>n`&A{T|7-gvv-^UW&;^9h16vSU=k@gQIF3Tg+~vxE+r??9i_;ABL}*R;6d~ zW_ap3!5hYG8X8?+d9Id;ZL0fAx3`cdE*N9~`Eyvj1!1yq&tJxv#BqSPgF-Gh?UK)K zLIQ&5TvwX8ILV_%XMMgzZ#VYq+TogYomNIkP;2x^V8Jo?XW)(^KtX=UP*C|4fz*If zR8y@-Tp7uK=1m@iqI{52Zhl*uvqTL4#LDqEhJm1ueSsPMqK7?U(2Ed-z zk5r;u@~_9=T*3cctobTPhQ~GnE3Y_r9|6$%@{!%QdQ2$SiY|ss$Y8u}kgN!AqY$Z$ zMlC*a5x`nwZDJBf%MIliws(ut@N`DO|9M9h0|zTeR7r4|yI$9ghe;va5n>kXjsp=A z5FE3}q?UT$U4nI90jZFCI1g_{E{w2Tzwr4IA z*4Up`Jel*{YXgu4*Updr7eq7=l*AxB5}=ngYM(gl1My{BCjbrysTEVgYAangWWvgK zBv0)JOC7<#x^qF+Ohh*Tr$>A{sx@8H(>y+M|(H6jcsUOW1FEu{}eB{m@Zhn7c$a+(vHesiztC8bQAwqz20AQUQ(V^%V zwO$hi)yMZwhGg0x_Gfge0lp>rm{dMGGP}@@HLBZ_Ec3?C8=ef8f{mqt-~JNj%>}<3 zYDr4*hfC&fg<)JFNTS@9jFTTlk7xsiIU(zLh-vQE?N(IE&pB1l8e#6*wCOrEx{8?7 z5GeU$Ua;YZ{{4|e9X0?=3S)O}dX>^U`d-0%cW)l9+CSTFtnmD5DG@;Q0>Op+`J3n; ze*5yh!-JXan4X^RnBb52?bMKL0-vU9q-?vwjd8dh>jf`Mv-c1e7<5bsG3mk5S4ILJ|zKNt&4DzPSdRAUH^lE@(AxP6~T+`SCKkW ztbCIg=imaBstgBggxh>9z_qVUgn~^O%wUUf6*GBeSVS6k<>^g#syGf>Nh(h8kg-?P zTLdJQluNtKu3J7FNQDEWHcg{k29`=XA<>6UPH9g_r){KYeeHQ`8| zoSy#HjS6kDlcX}&SokHP_214(U864FNXu^Z@bwVD=j_VYKpJdAF}Rs(0Vi*effj3t$>c>_@pO@;N_RM~UDLgpFjjWH%@~4beV75K(a8vH4;LVdd1Hi-(aZy z14nd#lWp^faU-*Qbnq|4IbWGcPG_Db&F!XqwoAGMfRys3t*=doxZ!V3d94P+X&B?nIycP(0hL7Z!P=kCwIou&?vf;S0zmvY#jN-(hBr{uC2P}+2=y^lGyC- zY=|~hqdh}`+?QA!87#jOR<~1T?bWi!jvd4ZkQBnu6(F(D&g3@11`CtP8IV!6vXYPo3knYY7Sb3m#J%ss zKTw(tNa_ewQ$-*2kaAqX%(4#Wle$pm@FPkH1SAZB-m2&z=(5KZjl0Z}DY;(g*lWU= zn0N4}Z~ARB)V&SwjbQA6b0$m%Hhcl#URl!o58 za)^E%Xw(mXPIztv&8@eL(-JwgM@cV9%^Gmx$FIS;|9P18^*H43a3Qh2>qORPJ)|5qR_`|O9I<~+-f zBL$-6{Ew6o5TXC%eNUPShy?%G3#pBsh@Y;rxq08rM_Y~P)HmD}Phn(x-T9vI&B;*J zfz`punUt9AURU74W*fHlH5=ebp00p}nx|9YM zeTN52T7YTshVi%w_t~`Xv8jiK;L6IK3V?`CH6v6UL|f8%v6c%wOv_81cGsD7XkL07 znV2|DX7kT`60$ti7V^$?J9FQBI2U--0Y7;UoG=+vx`K4ItmUJpAx$mk`Tai?HHM@q z3UdpYphsL%N^$zgMgbI zR+sp7Rf2O(v-^*yfy}2tLfv{`P;aC}&Qa;&KXIx!bw&ZdWb$kepnw41$5GJp8z|z) zqszk)bnoFx--M_W?jvnxtNUQY6Y@H}NkA2bZOik)I4Uk?sf^YMKoRE3zi8EHU+BIr z(7&>K&Sa$@dZ!~8{)IG~pGMziWjR>@a`6xB&Fza(e{o-~q0n#>Kh6@TO-MQHFRCvP zuW7T|vLSA&+=M7h?I|zjb-Oigrkn$HczkiYeK9Q_4JMiiP4IJD(kHYy@vzvA==CAz zZvTst9AlqD;ypB{BK6F7Z))*%eT3KnDyJe%E|Igl(>PjV*h9N zDl$9Ie|b(#?M&>AtPo(ifQnb3#5mtJ2S(O!`ztpqBhU8+Y;6AtCS&8_W&{Q>fZ!r? zaQ|w^#= zf2(qsiItc%G_{Dohip9mCC~x(z(OGb??qw0lg+r<|9?H?wC(Y^QvPGJP)G${60Q{O zby_8ilGd_C!Xw+%p~OM0B2ko5Jjk>!uIttvg5PgHWeV3tRG8J4oBz^SiPMr@BJpJ0 zZjGymw13)st?E3DsP681ZaQDf2wk*wbai}b@dh})cs92^mv#d5?bq!-T0V|4_S&26 zBd!_syIP*%=+f(E2M;&Lu`2%V5YfRi(J{i2snU2jzU&@GmbDBMeLdU_F6L`=F)@C< z-VHw8c-(%(+DAl&=XHBuv<)M*&VKmkmr2>eR!XT!eGG5Yn1emx(BHj5@}q#m0rddTT9_^n`W_FK^e ztXWfHl^1FKY93!UyEQDuYDe%H-5vi|n95wUl&a^ZG$C6Cio-=MVk`y2HYWy(1Y3HJ zTAJcotN*PxdKw0YAuNpqb&Yo|WaMD7CS6TRb~_8)zP<*0lzfp4zCfP`1)mM_a~a1Q z7%R6+LXnxEvyxMx9cWNUp((X%{p#O<&0Np( z=AoM$#RgJtgwKyroTpD6qW`5~Q(J(AQ(s9PBQ((1SVin*}kJWtx*>FauTH$q#O?AlijXukw(5;8`AVb(?7sxHeR)4G?Y(y zxDvqEc;^lHc2x<{7xr-<~-LK=j)X`!VvfS5c zVf_745bP>%_Di0KL8Y)$j7BPVa7Ug9$r*4#DFV3~l^?Dv5;`Yeb(zn?ZvNzMw9ud) z?1xa9SFpwHy-0Z0O+0Nh6$WBJj>wZEDj>U$IgjM6$tJiouAi-xVLp#9%TMyRS+ez8 zvs4>^j3x;;D+k>#1Df1hF={~u6N})lk=h8VOPpc_(ZVj`>K_2rxp4xn)Lg@{96~;h z)tzAyPI>NmmGx6B3HAXMU;!6OvFmI3^losGd57STH2v*Zxw<%3xx zd!i#NSaM(-d;SNJvM} zw8oPGvt6~eiKP9!zJTyD+n+G#5d#8qq>#@gP5|6XCDOGS(oCq@s}@9!GjcnQa_FsT z{byY7eDD36p|5n_mzTHxPR%A5O7GQzoU`Ydg2h{Dqof`4RpuZY3@^>YFHH#&^YQP} zlrMRt`?&fb2jfdA-O|mMLPJ9fLuC|q9e})9GU}92p2A_$Kf_z5=qfBkI%~m5x^1K0 zZd3LY)O=?_*eX#A>=V5O!>yB&qermf(4Tr#`ymK3X9*AeZK%@izBIVhZ>Sn^1d-px zZ!KY}M#J1sINmr%dk*@wiA>h#lD-+B4Y={W*bY+kX2=@L3P_d`g(H1+erV0fIG@u- z_IrwF)$U86`e{w>_LBueHGUtdL`lx=(3Fj)#@HmvSsl?pHIPYCpg^hE#wvfb=20O$ zBj&ojGlC8$P zffi5G!E#JXFq9ZR4_OdyT^5yBHI+X1e&QfhXTk*_wLlyc6;+M-+wlD=U^Boq6!NFV z>m_XE2V_f|V}pLt1NDwu5Pm0kB7e3hF@S+YEun*+;IJh#Oicp;-(d#9oPsa;1Klfomzie!LH^MwZ`|Vp(`eUdtC{gW}s+_#7rKn#6t0N?~v0WGo?> zPFJp3s`+K5^2nw3Y{O@j~`04@URI=V8axpsSzg?La}@prW-Mlv(#%w zEJ*t^B|(OSG?InrW;zrmCAeXS%G`x>XEoc<5#J9FyHYS~N(&zlbfWwZlj^KvRIp-f z0VYwndZy)u`WRh^CZ-Tw8;YzSKcwr?|D)@Wd-#J%*`b;>BIT3 z9tKY~aNHdQN3iaSjSnl6M?E;Kb4yG0YKdV5CwOuv527n9RrN_DuLTK5#y| zU*(99H0GE4+mbV&*nIWUCqNyyQoIayk&f;LR;4-(rnWACniZ+mJ!SsG${n4f)yDy8 z=lIuyO4LBlao{nG*w{`2`iWqESAdISsx1AF*P6?dapBvr&a0u@--<1t+SRGLf^>E4 z>mS()@6NSkncwwhy3lq zoYqbo#;g~fAbo4ehqArRmU29KMbS@zu>1Bz5?dCLawvyz;Y=yMQExjagv;Y4duOMg z%^)!qemg;cOE)}$Qyod`=)W{9U;%E6?6O&y?4OvC zfqO9BR4Z;f_LjZg#+N4?XL;Lq+MRo*xyl2Wrpamhc2 zAI>>gP(St-W=mlIkS?r;2q*?v%xv}&`Q$EmNSEeDt3XP(lWkJD*>lF`AOg~r=p->J z4LXmX0f_WXbYXUMGAMNu$AyUXKH_MqlxN1SHnh@-Ea(;%dKzTII) zw8nC#x)?=kvq8T%g0ZtD)xBu6qw^lAUTs{*S3!qR2=T}e1w3fct2@tckJ187zAV=O~EXtc7-D_u7h2#M@KTGVvd zk;-d~Z4waGmztdwTUeawD{z5D9G{x~+W{cW9(^WG>LP|oR7X5yMT;ml5+0GSpD=9A zTD(#_x(J}ET@5p-4`Nc7ZBlCXK$H7lGB%osZ=!|S?mA(MZtToO(k61^`joh63m^^5 zvZ)ehdJry^szTB!00p4dZTR5BsV4xLS7%t5oC7}y1V6_)G>!j74jHl@=0MujWg|UK z8aY=gOR1+?q(U;tA|+3%P$Y#mS;WmxkR3|$YmF3ELS5Dsbcw=ZL%|QdRXMV6`S5LC zLMZMHIS_aQvD^YSA(A#q|0gZd6cD$3V^iuJWjbuUIIDq^gg3-n%fytftlgvsN;2wv zTg~K!aE#lRnYc!e`ww{*bbPnIve3|01>YV@dF_q1ogW8knTFd0(mHwem9d^&p70Je zE;VpIlL;a%A_DxNVMl?CHs&{vQmwtL4(f^PuiW)H6dQvp^LIxGK<6|fDL}sN$4njS zEwO2eiI={1QlKmwE7D~kCwVJM%S&3hEG$S^z8Qt}9W-ldJU4u4eBbZ`%s^Z{N|4~V zW@FfXtr^)6^Ae42Rx~!rsO7+j-UYX1rwq=ocN;j_#>(ocn$knxXG#WlYxu7cl>07XY4j^X-kMO@N% zJ=gBg1lXSS%g0&FH8DJVw)6H56zC(=J@z%E^bk|MMA%8XD(5iwmoIC_4~2`jEHAIN zL2|!yx#UNxS;7m#D?S2qN!ytR?{PQ1)WbzVrGM(M!Te4B6y4mSaeDC^EVKy}l}+@1 zgC&zWF#o{*lu zL+~g~%p6VhQh)TKV+RJL4Cz>&lwla5hQXfEWW0RXi?&y@q~bvi;3H{dis${^kPF3p zOXSX4+gk+n$L7iH_JyY!+tT<+D8$g5EZ1rp4UmK|(Wju00TK@PqXfNYya4_&nhoQC zx^Tn}nJktAj|*E&@xs2JIEu?B$f@HDN9XJwzR^FU&8Wc(kp`R=b2Bnwr0a%c?#Ss6 zW3mV+V>cXwf>#Wp*dAAJHki~Q>J*QcBh?W@$Z&bYGkD{VLctCb?&U2qeF-v@d%3U= z@zr)LIgLd70rwR><>>cr_^Nzz=o_6Bkb0Hr?s?K2C4GYK?U8x%lfuW{PG4#zc0sM) z(Y-TNdnQ>O6PDMTVk&l*jk4~5d*u`}*2ku0EV6Xq=jUF%u2+oN9cGE4IQyy9&Gjd# zwfhisX&}KFCfe~0n`R+cbl(r&!nZ(pz@3G z<5`Iu!J`m)AU0FF8h^k-DP6pdk_zh7_-ku4Lh3Ak=3TT6IRE?T_*(?xeNU+RCtg`r z2hr7|*^#LdCdEzEub)BZl%|S8u=Lj=DphqV34>JhEoG@v$wdiuxOwDPC$bg-dM=cn z0if@`09(}j@o5H4ZB`d7GOb;2^bIhxeUJpG4!UT2J8t33QLs(qNsc@C zAWoX`-kKx&NvTzYtY#dN&#Y$jgZOqgV4il#KRu~7HeP_6tJHN--!iC($Y*WlM@$H> zDfrxhuFl%>BY&Dl0sGxhfH%Fe7(cam0jO51nvJB##YajTb^hkJ2?5H#0Kvs5>)1+b>U+Sq|C* z3ro{$)C#xYt&600zp~y~X|$PX#+m_CNKUD7L3mzqY39m#h&;nDE`qCUKLUQvL`Pf{uTS$=vLUs`6m$vozpvN}lm-l|+-fM2%U2)4 znu$En^D6t~C{Juw*b>kiOL04I@_;J=E@yq-fa(F(yAG`ZSZOW~$ipkkpGm`Wp{Rj0 zSw6~|-BW&2!=6O%E%{%fC`%Q5keDoxxo zjZ1H``cqHqdx?!lCq65)j-Pq7IT?Pe7mdR`lxcAcN&Y-Ra44$Aa6A%B74F%hh=J_AMgCT5WD>V#9ORdMM%yGcnpoBUw5|*z3L@ z8+wssZoqr@s_+vl(&VN}h_!{=j#;o@1>5=Gf=Liw2}o*+lU*c?HU;HToQGZ8VD%Dd z3t?V!j!&B_y3Ari%uPHM%InEx(iapq)}{7;Q@>Lc7-AeYHZDePc4Ch2(7NxmIyNq5 z#_!2D3FH9Yw!q<_u&}ZHZ{Ehq`ro{60uJgwVy;>OFk)VKpGxD$#v;Su; z>woqGvWS4=p|G<3zknYr^M6!mVC+1cz*AKi23(GB_1QP;W8-0Az`?@v|H)+0v5m#!Li{8o{xY1Af6PlG=$w?UX0k{uJ^_JP zI|u!!fq^w&Za)t)e!EyLj1>NQi%()Nz)`-lIV0^EYGN-G;m@Z|DEKCYmuGH{n`Zic zp0~E^j8)e_uGPiCL${~Ly*tO|j%QED<~8~?z@ppz!}6+owVv6wElb(W(>cCKiR2JIHXavCx6nKWx5ufGD9u zA_r-;^jptpSJ_nb(d*noePoW~-0#l!TU9k?wEH;*TqfNBHaZou_OB=Rjp{E-%`Z-X zq1n@TYnpA{3mlL2^)ZtOOFz-co7<<*B;neoa7N<{sd?lF0cX=HY*)l8$y>IcA58bh zpN6i%-`#rs%O6(DX3s4`LVS&U0G|c6pzYt&T050C`0KAi9w*B z|A5Z4{StWo4<^xOvy(9)z>zG5Iyh1oBDX3d`$=BU7xWTg)EC4-KbTPZ1w?~XUT%Bb z4NW=jE0Xu;W2{XO0pCDyu!rtGYcC*MC%*_*`=ahd8^MNF%xQX1`xjID%-AmJeeAdM zFDj+|Qp5?Qf9C0@)_jo&NE-)(Fb^S3tzpv1qGC#`%<3~;pTtowAVJ3=a9u_u?~eAs znd5C|d5vFE)?q<_+Dd|fk36l0oFsYMQ0DrbzWa`-?J!~8^_R}#;l(|<{Za%-f~*nb z>7cSzYN!8YG4K9dtpu$&_1)h??ctinPI??)g#Q*}E^98pd90w+t0w-t2l{&S} zz9!>)^1upN_gpw?0BK-~#BFRV*fPs=Na}l;z5K1Ydrv=A0`AeBbLJ`&AjEoE<7 zVRqvtRJHs?&^bBPl#)j%=Rw0mCg#>_<&j0qMmPzA$Wns8anWGhs0(>tJPsnH5C(O^ zJ;`hz8Kh_zz%@#A-5M6VH$@FCOK5OakqI6~e4ffPSRS;%i0>!VPL0GmYP`3mtp&UJ?nd%nPKY{8d7 z80QjAcL@A8(!7<1)!kdngqvmyr3pqNwc9-&lEtQS%FSb&y0-3?`VTZaBy)Ij0mVArL~>Mb#|SXRJAlN zD}k#KK&-4V=0x7#da>htZu5gM1@!gY)gcz6()mA^tLz+826K-UJoTp(iX%FozFqld zeB4m0*$;~sx5_Nzt9r4kaRCxTMynQyV7Bt6tX2r;$=nMe|FWUi^LtRflbaBwQIzp4 z2|$(~(haO+qf0|Ao0iCJDoZmqPP!3VDGhDF082}?I@#QZ9rtoOYrFwej~4y7MtGNa zH`!76VA(YI=~MVu&Sg>99TMl*+)c~qiRuAADEC6v|8!6r;HUwJY*268vhOhl#hV^~ z;PV0D6*(?-jK05%`$CJMphT&LlPn%i4qFZuN$3(y3tN^Yl>GjD5Gfu$9~0?d%rytd zepJe<=dK~Cjnb@Lgx3TP-hs~oF9MLW8AI~F^0z&8?e=mc>o#zeTUtv`R^~X%K+_ie zDqp<}$L)>r`YjdU)?^_fIh+A-vld|=Ajgnp=QE**)vQ^bLhT8J2OiV+K7Xth zXR8P(QYKUm`A23TmVczl+|`q`r{jFljxqfU z%l@{bV(eMv*EV+u)P-X7&t=0!i81%mz7HDJS~F%qRt#rHUta;(5^dvKXq6q{)UbPP zLot5duC`fJ`MQ=f{H(YJ%&$gOfvaY%9EZPEuP5gt(4w*_L)b0IRbJ&?Bv>|s;nBXH z;8O^kG*}K5zpD*K9KhjiPk=(7Jhmo&P^)bgIcauo)uxr(yoQ<~EEe@_RkL_x29X^- zQ@=RbZ**B+yS00LQ=jg7Z>J5&#Ey1$CMM0v5%Z#YrmZfQ=})(xapo`x4?K%dxE4At zn*Q+5Sr?9^8w1POC`6l$49Yp(1u6Oy(OPn?rvXaO$>g3#J7Eg0Qzel|4itWjA9$_l z0&(g?Hq~BrYuD2?p47?k)oFZ6Gj-Yy$46G2Uh-bUz~qX((J-q8-$nwE9}KoXzz+M$ z%kKpZ6p&Z0A9K=qOr3_bY@x>6AzPPwYtM$Fxvx!)1p7S^RWy-#m|LIKTLJIAj%qqX zLWHwtfzk#qE$5J|x`#W<*dSs>HKU^3;X%`*r8->x=f%pc3pB~rH7%-MFo{N3*|PJ`GshNE&8G%p%|vOM3xks7!qe#Y0ki=&0%{ zmN;GkC&XK?0>clZ^D@bQ^WmR!xTjQX{55f0G$B>=CLRCSxe(pW)N zlJT>vi>WnA)Dn$8jXhycs7mBCwSy1q^Y@!R<|7ecE_c3|bzo3kLA}jRJ>Fx;28z;M z^W8?1U5~o*>V8KfbJS#Npr}y0@}K=HILLgqH8T7Rz53oz$Z^=qh*- zn>gI$Zoh%TXid70rt5Mt+tD#Y4kYFU@}eLTDWr87H3+f!UP-ik2Q_LSTM`s3KBglx z&LljhOYVOE1ZEjF+ja_kIX&9@yC0%Y6}5lk!y+17F*yJLy@O_%nJ&+#)MC(+a>73` zE9#(XHlDcH&CzbWl4>FFYvii%{=?MtMkt1G*1oi5^=lmcOwd92xi zU~O@^cL{iLSPixGmhD&LYwa`}=~)ekiR3%cbf+5(;Q0M`nFta}Zics%=|6BwjjEIu zqY2^#`P4dU>N$lloKM}fdsAsVv8IQ{iNE-Ft2L3;)xiQ4hh0|%`{3(f#kfDD%l3jL z_XGVB9WqFg|Cu_ym^acZvu7-?Ce!VCDBekj${VmHE!`1;|Ada;oSgRTg=l`46^D*L z=&EH4IOJ;&c@VZeVl(h9tLir3lk=9qkHhJxi z1kmkoxIA&c_r4}KH$6{%^qG5n4It?jGkA))3O~?!CF?@3?_&)LG*!OE_hf zrUUv6q@H#!>gm}cZ$_pFED4y{*RA`eDtoS(jrP2SMfC5 zNNcqr2XgX>g|8Mom0hLQ-TPv|1azb^ngAk!vJ=j?nA78DmH6iqzp*U|_eE5xmn2Vl z75|twMlSo)X9ZcM{>efuT2_nC5F!sdhPUU@_-CDotcdFkoCimm0HeX&nZ-pH0+YzHQUj|gJ zs}+6tg&iV-^IXipZ0THK+=qIq(73ESlQrna0l<}CQ~&G`OO zkA!$EnruU%b5DfU729P5uINl-9I{fo8qV`1HEAd>?en=64McY;lTL&W+1((Y_(a6D z$~G!ZU9o7}zN(D%%eqfPQ0Nl6>jFssN~7*87firk@k0@t3~xN1O12U0+Zm&&BfZ5u z$^wF5}Qpm4itEigeDeb{Bn}IUi_yxw{3D+ZJ^IF9M^%b2w;yc7kW~BR=mT&@og;4s?`H*iQt0d)PpSbw^O!RZY znX4Xb&!>^(VGD)uqzm{k+XrZXIe)`Y*d(x_=|jb7B>K=Gu$w#i(Oh&xyuo0DB1SG6 z@nh5d-j?VwV>jJT5fSZVIaN@%+Ey_bgAOG~^Y1SG|HIZ<2F1~T+ZqCd;O_434DJrW z6Wrb1gA4?B3k>e=?(XjH5(o~#ojdRQzo+iGr_QIInd)8BGu2()d;Ru$*7X^CJW2@E zgJDX>n_+}Ja&0LC#b3S*$jO(%P%=c@$?#6cKSqet_Eb2I&~_oej90CZibzCp?;ADV zI${NZWLQJ0eXwo2t5*BVn_C)#gs%&D9DWU53xA*IkdnTJB6c%ITrMnQEEV@UOF_#|DUz^ag#{cT z6w$BbvTMVbM%yJpEy|sdR9Sr;GtpH4bUy75w13_h+G5%>quwPvFo~`pJ5{e=-#jj( zMaU3$7az*2?mD^p%|)hjz1x&q$gKm*$?b7pRR%Maidi7#VZO-+h%d#Na~Nup8`BPb zVEwhZ#)gE*bQ+LT1NGhCikAo46Xq=Wi1rbok$k+A{W}!l*yNN&ea)TG(O1udIs1&y zz)IAVBqvcT_~8wKwX$3tnr4_qBrUd*9vVDeBNH}5`4T->jQ}k+36(+w9}g4OG>nqH zJ!E^;JZiGLl9TeY{ z0{n~Ip}5~7`Lk7pD9Al}l`UOa1K<6f#71nbT9^v)5FZL-&D!|r`G5O@=Dhw;l+aN3 zB#W(p4q;yv5!0hN*O&7@o6ha3+~4EKBP^2(rFEl|_XkL0vuUn%S;u+yrFPssW7Y3zT}i%em~}|JufXMX++}n$4HFr56GUe z9^?NgT(s73|L9YIe?l?Y!O&h-utyTW^RM8<$^(i&Kp+4`xqL$W2lWJwX#m?4F+p1- zu*jdlcE?_qPc%SwcAo!V9;(!}b0FYG|3@AQ*jD5lIHhW(^zgPqwwl9anj!Cm?gYnV z(l(hQ{28gzPrwa*x#aE#>8awY>S)lO*vdPP5KReWc=4p)fKJby+1fYi{!C9B*f-aY zr$1q}^8kS!A1_ZYp)XHQ>#KLpfOR1Ar8~@pdQh`S&Z5h2Emoz2DzkI19k* za4MP_6TUgVnr!bD@W*q3`SRm_Xt5GAwe2&%_s9G^&33=z{o8c)ikJDxG~r^d5UFCQ2 zyT;3@sqHv=B(DYVGMf|e@wQ5)SBwLRb-c)(atVB*RM3B|?7Ge&r;e>cdCO=dLnl6{T3#8J7 z>pjXq8t@~tvc^P&`XVk|+~AQVN9AI<=%W#;HdnS6FL$6fY@#~Q2R7^n31WYV{7v;= zgchpfrSI$&@cLkE1&|@wnpnYY81f)gu)Ahx;-?zuAuFg^Tb&xq+p@LA2+-6Y-l&WD zhg1|vsk^^X$D3-ZS3DQf+G$ITJ=trPzf)tR`P=KZjd?IiJ6+#I>IWn;P~HTy%PUMM zuP$?q&RX5A)jC8r!lEfOdDdobooL5uWYpbk4J&O~iT zZ@+>E>0rL@bItJ_(V-;WuVp!ZIy>jJS7{aEgPH{Kvx+&j%oCrhtFnij#eLVJq@Pyv z-?b50?IehcV1O{lkVOgzCC{|KurWV-{)#Dh$BM(oWQ2}W)DXhYhdH<=&i9Uo%p*~R zolW@k6Jl1BlG_#TVVBO}x~X>_%Ex^rlw+L|!S&Fh@R_iVvY~J%wNm zo)8hmq;CJ_uu*p* zz!$wMR}R7bJJY7jGRD!7)~dGeQ6yX}(Ft`Y_vRluP1RLFGB19UcQ6~G<-}CYkPLHH z+h;$Fpw>D86Qs;mG#aa9JM&_(x)EHsFVwyy&b~mSKfg5>cSTF2y2#f!m0q@{A(&cI zCWLZ%cS7uoEi!#I9a0=zUl7kfQpZN&UE3%=9eCifMhwu>+3sesX)o5s&A@LeYsc;*&m4hj{&yY2Bp$r7L^6B%)L4LO36Se# zXG94BW$b=cwwUrRp0>lxDLu`np5Sz+ddMcAEBkRo!_DMe-cbk>_gPuCV_;X{m^O>> z)L%R%U=I_9!j`r-zkp19^{r089zww0O z*x%@0>QiDkzawslB&UpxTk*HJJYnS>m*Dc~RyN*$3Fpdd_C@gfqH}-Q0g2JMr6tG@ zM!*u6H>K|gEfwHwIWePMm^VM(B->TyKP8_&aqeU^mK~U()~r-kID`lecx9q#hj|+| z-R)=W9s)bN8`%w8(s*uGw}ft6ytkG7=X76;!{0BXM&8UDo7X;Ldxr{n3QKDOjPSM$ zGJBB_ez>0~(I$y=}-cU_kU{)I~n!H}0W?q?cd3b`6eh)_bHo%cot#8g&qBur{T?@BhWLRMJI!v*&Na+5)Tm z;k$d$!d9w_fOZ^^Cf6|H*V*m{yOidIFa+qqUf+Z`732_Io#>4aj`xl%S&3x;+HfpU z*~{hXuXvbo^ckfZRI+Kcbl(jtecnGs?%=~SaJ5frA5zy<3yGC8U0Bhvg~46?D;DC1 z=gBZ3$US^%G@5?eHfSQ0YGdkNHPTKbeJpv+OzqGQ*^GSJfv`Zpjyq^0EUAA%%d<4c ztC&Fe}h1uq_`Cx~6VKe2`j}PDPhw|DI#SG}o$RuB5n)S4254 zccwGnJ7K-S6p*J#+U=mQyyG^re;-{iebyyu%)-AHX=k@#9mom$Qka@Sol3O)Jv(J7n>;=w6N$gOM->#i5%IVZuQ$)wntgp=-AC*-t za;fQ4k0k`^sg;PmY0tV>N+QUwqh<*)MrHI30+ZObl_3{&F4$8nuqIrvPnr*%^puCT z${}p%K5JvJ{LG;KMoU&p2xRrjPSk3yA4425)22IJLPBTG7g5Bi5>xT_`@LImX&xDmf=|v1*W1=oYeOQ$w%Xc z2?6UjeokO?<`C3#f6Wp(OrfLnr6@zzf-E?8=F|>-x-AKZZsxv`-DWiUeEhY1u4{bq z`)5`2W;cf4V}H@PJ~w8B71G)}kcdg8C&0OL3i0t#)-1a;WlMCgSAiJheX8|_RgD8fRIeFB*Y^<84Zxy92-!~a1{-WKc@5qjKutxU6 zBvCIF6U4(9RkbJz{fK_fdzA&+nH602G#eFhO<31*D8Dy$wqju-3iaIFHi2fxqEI_J z%(U(I6Emux<^VoU@}IKDeC^)WR=UVNr|(={+u}J)WMUE??Xz1UX+N+yyO7z0_U#_6 zbsyqWD)2WES};9g9Br42&99Hbm$fj0SW89^=)P77A)|u<1yEwd%EKYz!L&`YlY8M@ z)JJj`CcPMZIHP`aA7O0mi}}1?x#RoZ#}~n@Q+ll2UIT}z20~s3L>e^bQ#&q8Ke5v3 zy{#E3OZ;=%VECi`d)iq1;VhQoMi;HGa9fO#*O4c)OeUlhX1B8%O_NA(k}#gtzx(aR znj~2>+O@N$J?p?`SAW`?3W6FxJHO^zF>?qmC+){GwCZ)8R1L%_9gR>jcd`eu)2S9E zt=Iu)wLFO=dmDoDsAg9&9-P`UKPt%4Pu*V>Xr1(6;iCcD#b8})1R6sqj%Z2WftHT&G3B` zJ|UL=bC352;es6CTzJjqd%kk3dO6r6>;T0r0>wIL7k3f80|VBO_iB@nCYru#d`>`# z`J0CN^IT$tCFOgoyp^ylRsJ`|K(*2^9~hm;13lSoT^4AiKo~v{xwQt`VH~z==###Qs-QA{U>Xw$Gr5qI^*xkd;`LALzll9xwt-s zo+T^=2mp!JfH?Az&ZJ9?-dXhuQcC&ZgI3b7IW)e3SSD~`XI{TJl!|H;N+8b0w^$Jf zEE9G3H?G-qGo5mF_BwEs+ml?jy53MNdE445pbo(=Gfa;+ zlEEcwMsW_A@0fn4){|Va+!;w^KPR|xm{{6-tvzMh@DjA=3?^l6G?=KNg;9nEJ|OJS z{UWq`c`lshu+VM~cpZR5)~hXq zRryR#1#`dK{j{W|JJGT1QsLS{$m6smhlKouTF>jz9opohc@)d6PpH60l&#<17CQf55e*@fu}1c23qeIv5apv@eTYaf%yz)u;dc1ujwxwR#jt z(MQ|CGnKYtARBm9|D^&$SYF}ZN7*@2@S`l%#G>UxHE)zPo6}c&tk8ciYV9S&k^^NAw;Tx|Wa70VP z)V`q-OwqDmx7!H^!hO*mcVTe~*n>*rJLRyi+p>YX9R%XW9lvWXc*QUtSzt@-GpJ3G zs>);(ZkzFOsZ6EzmpgoZ%O{wO>drmDe-p*IHDO$6QU2nL0K`E+dUieDcO+=9Z7rTA zsSn^SfUBFVj&X!yV`qomAjmndEj1zkO>`*bxxM`8AU6Z^E?r{g%8JWfx z#S&h*A(~`!QN!TUSJ2}Uk9ovt&~D_`IS7i-mOXPyI=vOm-{EcqgeIjvRN(udx1w*R z!?HQm4}y!i<0S4Hlj#cbf6(94K=m9w5(?Dh)eXD&=(D42ll9qtoK2|LK=I=1Upllf zn9@G@fUI@6wf>Lt!D$0Wiq8S2Lve#AbHKwjoPdAnP+%Q|iw*qYziCG(U~<%d8;${h zX6v9aL1WC|*_t*RI5He|uy6uSodj^PGV_1|QQ+VtFfIzf4Vo5$r2R)S;otxnb;4tQ zV&wn$6o=BuGsU_mP1IfqK}A%?CIoCUzrvX?+x>3t zLuOL+OWYLeEU!Z%K>O3PvN~~Mc$$}idhr`_u=Au_`NmtDM*6j;ft&$1=ooWVK>Dyi z`D+LjK|fJ};ZYN=tOy^gjJ$-E5rjvw*#4uffhs0NRI?)k9X3EZSU4Wg2DZYKc_owT@P^9(usf%~8=P;Hv z^X+k*z@1>_`OainP>Au|o*PpV8!Mxbe$PvcppGYk3bxjrgi9cKD)~ZSG%+mpa269g z#Za-x^H=eYzIqcg;!;zfJ!59(X4mkykL$xt9c=F(Sn@r13A}?vUc^*VwP-k>kQuHq z-xc7OeA1q-HB^1L&~NXHP0eF7q$MxT*}&{b*Wf5swzQ|J3*<>B2JVAkYt{ld! z-rt-ZrxIE|g=j@qKM`W1Q4iM42~f{N0v+4W73z3x7mLhrFdMvp8(Srlf2?DHI}eCM zROuJ4D@BJcUIv-vOg_z>bX-amfq3ke2tNbWIW$sG(%XD`=t5^OQ>DVMi=javNy--C zriuqo>?$rZs4*pO6w+r%;iE(iU|(!1ukMH-{1rJ+i|_CaXqanT-@jjf0oS}M`35xhWN-@yTJB;ocO2PS zsUm(}7*EqwkyZA`_%1$PhHuYg80)W>+O2JAk>x*G^uChj{wNkoL1#UOTt*Gg^ev25 zZI_9LnAF^V##$7jN(%*%4v}S%Btj^D>S>_#6>oA$W!12a8@w0VMsZ5V|EMdN5QH(3@GT0}im-HI^S+(OkExqP zDKh{ke$Z8~YQP`a@ItA=_D3jbDa*3{-p#!F3CmZhK=X`zzED=tL-IZABq_5jRZEwH za$Ti4+9d~|K{Jt$?NM6wZzeKv1=44_4{hX%k$f3BnAbGTW>s7sk{Igb*eZn~GjdOfFQFpme2e)p#E!(Ajep9`f9`FYRT@+z5~ zN$w>gK3nTc;AOkJ&Fe*;q^*u-ywvIB*uB>QUD$&4j9&Pk8gn*Xl(VV;hz5}{XO(W8 z{NsQCbA194J}Xn+6V~S%z?L_qg2AaCZB${;)=pH*Ic*n_-6TTKfTL7A)g}& zstiCo81Kwqm9}2YG*?GArPPP7AZIiyUGWFdNkH&$Y^^X{Lw1!~NdW#dkJkL0`pNvZ zZ9tDdpD7Z7uxch==bv6Sc~_BH+AFIK@!h5vI4RFR2<0cR(sA&f6Ax+Z{*vLu5TGJm z-WSjeKUpWt^;FiR>TGurf`*>(%d@D1S=4O7`}#9_%vrAa1MJdV(5Y{vJ;F)*93AYo z@Z9ZT(!By=dQFHT1pt|e0oz5fBYj+yA|T7;I_;emAMZ-r`z@QnB|Y`;%(boH{a2V~ zAo@)1PXV=O`XCpfe8*JDu{Hh1m&>YD$|Y@~O{@ z+hbJlJJZH3MZ}GVS-h{r64-(6kzqk~+ehO8ZEl|v{M!B9ndqrpf|<^eaNd*AL9smV z1oP6hL2lOeYCWqyu1B%!q_o9}y`rQcz$g~xzO@V)5Hl$oPJDyo`{!@P=z!HG_5K$j z{A2&>$&E>f*-D*z|3hV=Rjc1m()-sb$UEC^*+Go?nREo4zcZgr3$1TCpMS=kI#VCp zeqXFZR7osYBK5R$T7;BwoBUl!xOG{q3SuuNZp@+vFnGj0X?-X}aMHt{cBA;?0zvfw z$z9eNlQqL$QTcJ<*jByy-@ZXBg#ED;%TkV{{uQl>kp-=pNO`c7(-i}VKeGFFV%mmQ zKql~)E3H_uh{KCey7kJUtNgDJQ&8ePvMmCN@BmEXiMAf!c8<;gSX59LRyA_=nWubSPmQi3mKA zq`I)WS!}+rf=EOifoAN2&#Cy~1n@+vrK3AJ#NUZaXBD=DwGgb2ZeJKmiGXg#Hmq$j z(L&TpWeU75`MQ*Io>t$s%mgG1;uE3k7_4+MN#`zfL0q>t?>~lk&?!B>V?(xher1_Y z7wS$`B#IM70p!MBPli*QUyDQh5kt%oj}vk_bLJ7uqvigR4e#-4&wrmcP!qtw!bmKHYz zXXPnOyPX((F1gCY7q8F+BR!3y zmbWZpU|{e>U?U{sMGj$5Ims~G27>y;TW17xJ3V{x2cDeTx3T>(w|ig*yW-4R_i+b$ zy@-$pT~{frh$KB_uRvfuGbGAbxmr zx1Obr%1vXg5WedOx&VIO$jAaes_RY)dgRCIZYd%5wyS+#4lG*-%ugk80Jf|A_b2pZFXgXd!6Hen0ubJ**e zGAD?-*ErDaU@`V#uaLFns`NN?AbV+wK`-(CV|8&Ax0w5~1{3kz1l z8OM~{-`Yw2OJ8B^x-y{LlUP;>lgpP2kVJ-}!_9I{W~M1gyhlz>|~>`)TpO!8WkV;b+>9spFrYTXV&X&rfA9(70t@_$L%fBmxTbOyAk3*M)>`9C?jOQXNad&OB4OzD7XpwCB5@!;whU=rOsYqN@60Ut~Ex zJbT+=yJZT5mu@UKaqkVb&0=)E0aZN+Y{gxk$ZH?$+LI8b@ifh%%$ornyH8Q7(5nVn z5i$iA&!!)FGt+Y8R#%gUsii9h677A(LifbVL!ZSj6dyuq(P^kzZB!AZ2)`0MESbGM zGAaO{*5J7GzDEV8b904x#|?`CcB4D{Uj&g*`F|if(ka9dZ;{+hqfTbVk)#v)`_8$! zI{aCjx}S_Pn(qFllS%aD=CI>o`cX!i$hT3l%}uMd#~erRz028x!it^8WW!5n?Uz}~hB`3Chl52x znm0i~hawNhT`A)4;laX{z~+vKl0?VWl({f06v?=T!~D&zj3c#KD`da5U0>Y0CYjFR zu_YYfY9dC7t0;sL@~vr5xdXNKGEb1Q%87mTjWn~{JFXyXTaFajE4B1V5Z+ryF=1!+ z)%;5`nm}Hm-f?g_hf6Ib?jLPfqPR)ANWB~Mfl(YWG1xi4y(KAt9lRzF1{QPt8V`pIvS)$Cz~$s+Wd?gu*jd5mV;-!N<054 zl}-Woz#Qy6%v=CcHePT_6u9FBaQyQQd|3a)ME$S*GZcW87u1^q2LN(%fJ38@;9Xpu z&5Z1j;5{=2!NUXlTV{Oz$%AyyG;CgjeMAy^B`cZmhv%?e+RRv4K%eB_;MM?th6+wWw7;*jq$y|69NaNh50>CR!Kjpam@ClD!F zYS~8{jzMRrwG2Xtr?ru5&&H(3&i7lOx^_KsPY!RHa0|@`+L_^5MA&@wj-3Jy>2-hH z7hmQDt)`-xsp6^VGk57{nMK+)2z+j9JJSCnU<()(JvdcPGve;CGw%dzT0}; z+EPisXjP7UF+=XoJhvH;eRJS3tuM-&gkRefF@U>~TFC3{zZ^p6`5?>w zNzQbwiFu(2d~X!^7Fqt$r(Bv<(dj?E`Uz7AFQGS8Uag{lzd(tAoyl0G)sDoG!G>w1 z2{b=hlX0L`yRtwUKs3^l z5Vje=TI(^npxL_t|Z3Y}}qMeg@tNK;?VeZ5tMRp*m=WOBy)#9AknkyR#BE_tG`9 z&)!T^2WlDQ^X}($UAZy$$`u$SVSs2e@{2Os{OM;=C&pWjGR{DHJD7OHe%KscQ|>+f$bCn^UY)X#tS&6IoO9Xe=`So30H3J zsbDzqFUQf^LayrnrYI?RyBv;U5@Gm_ z4K&gj5i3$os;%gIxgbmQUp2K~C!W_ZIG~xhDl}HZ;?r68=?|x6dEvKF4u)dkOl^nfWAuJQBp`P=0Au(#(%svQ2!! zFK~wc^YTulT^DkD&IGdtzn36pYib#)11O6EfDo7$DE7*+;uLpiAc7dmXV@btsSsrU zF}V_syBj;K)*yHrG=tE=UU;*ywKi*arG7F9F(60(5b68r(*cULb3FO|Eh$b-b^DfZ z1Vu3RpL!*9?lz`W~hE}w^t%Vk4Vl*6ZxKJSu#x$ zOU|&=#PEs2Dfp12E8qY;F%fQ(TKTtAo9z@8`|a1cre^U{UEG?zMaF9Qu~o#Ovy<+H zs`(N4&U|{KA()w^^?WD3QCejb+XL50?dwyg7y^+Bp2jmkn-7$K4qP)*k-tzRi%70f zfZ3jQBv+t&J=giO24>Mn9>exyyvkr{M~2C%Oi^y1;z_5E72tM7_U!iJnh(DPtU{YO zU@qB1Ze}#(aR1K>zBmo2_TH}4yQ}e zbyZo}o&=AA-MCcm??@UZ|8zkwy8X_**ieb46T(f|mj}zva~;MYIH*6m4B;;SHV%N+vXmFAr9IHav}Y3+zL#3x7U!uOS%2+t60s0dmfVzq-2?ecHq>8j!V2zJqP7?O6h@-H#ncBFTByO zGGc`7F2(R&OzzBsyDun+$`adP3r{^8`ePJWo3>VzEm$k=BrHgAuIhhnbsKoi<4~Pd zI`f@GK>WNH$tsrAupF$ztT+jFuc&PenZ6quK8q8>F(N~;`x(zx0IkZ` zO_TC;^`*(g@Ebd)F4X|=AhVb1f)@LcBRAISOB5D&873}CjAS;Zn%vLVmfIn0cIlUl zF`*1{`9p1qR727a_Q;y&EORt>Y3IRoh1;-%O|)LIkC`}!CCCQgBQ1K1cKt;N5_Z}WWbq8S;NcEpWzDgCS8%h%&gVfOdnJd*7|hh zXYD9a45*cNc^B0gA&YdA;Qr&wY5OFn!i^?zrf7ImW70vSpoD(eS*#HsFF(9Lsr*-4 zu1jaOA%Y0KNup|Kp#0oMQPAx-m~+|#Dd-Oh1P=+8Q2GR(M89K2i;Q$q)v~_2-f_m| z6YsQxHKNM1AXsLg2z|t?Z6@S7oqlQaGIoICW`^g(=CCA5|HJS6X&j#51mhQ!)0P}{n#6n?r=n0qMLXZ_Nmn(%a{JRum2ExN&^saAS8^z2+qPRA>O>KHQ$C_fNTw-%xXphGoA zz!ev`EH3g@tShx6qAR(W6E&$h6TyJ96r#uRd6W9H710;RvyQkOczMt0w1whx#Yxg&(yK)NRZ56S_>tGVem#r=~ldXdJ8fnFR#KqOs}v zF;YlfXC)GtJn5GxDpTFYcyPov3HcuP3$|Q_*_%^&_lh+Ad8hb=JSF<|6q)UwLhh@@ z37%-OES5RyOni(ff$rUI`)SOptF2A_RnrT$F9X0g%F4X}{sCsQgR0)2?VwmnTzcM4 zu?-kx%;IyCXvC(kn1u3U6Z~T81N1J^S9&v7Yq891-WmdpB+QCz_)sD9I=kG5VHeiO z_ypd832F9%R-3+6DrRYj?KzEtV~Hk$6p?53DMU8J7rB}vvr02OO&8~%jDCjt;mWmt zrzr&LxlRc+*YRnDCRgkiX;o`Xv9;Uf-#^vj^lX8wrzNluG^%#@THtoj4UMt%F`@Hv zlmR=W-wNufqF_fD@;6V;)9j+{Sx}-JvD?h8f)RGm;~sGkM$S!SMn?nH3cRGD{K%S`r@;r{_a?_2bFA zVKC$~t{4=QaXn?E^P>eSny2cD5@$+CF&^p~Ez#YaG$kSnmzIAC{KZifVvPP7M$kK%13U(DJYFkjyaarvYz}DJ!D%` zZECMZ$$?D7je!>-?RfYh>Z7eIn0wI`jvmuwiO7-t399ol20yk5(&D0*l8PKCoE~t` zf4|ZAf$v_?8=>1ny*K(Z4}ZGzdOumq~%u%fOHzF6%LEKqp7~s z8mbutr!5J9Evl9j!qcxmGQ06WwfrY^n5WaXMmzGTl=2aUu97j_8=Hu{rYo8tZIL6A>b4SdGX?@3hcZQ1Wb6v z$9_f~oP9A-tW^`w8q5bGoL<9idM?|Y3IY05>q!`5SKjYx{^=#H#XQtx*dOB+|@>Z|BlO zwP~?pl=gm}G0OpRls?w1@#y~|?@>}E82&LQrm%yFjR|W`Kq?vb@EMG zJoAvQG=8H=g9dBW#I)4air|o@kta zWi{xy*p52E<{NaN)c%G=c1Ka=ru)k+YBB=B1_b=|M%G74%t{MY^_5s6$JqJU2L0pA zJehXTZ8mxEvi?GV0 z)_n`;fp7|#BfRGDjOm4;HI(|s#86pJ!Amp{GQNM=iTaXB{Oa%@Qn{= z&Fdx32mmlDG;PyjMmI=?ONJHbOZF!?E~PdK6F!&z4-+9v#d3t8l&s&!1`q$_#}P z#LFK%`95gG!Bn}to$Raz4&-b*#1;lY=#SEHho%M+dt1Wy2KdJp(I3IVsPQ%2Y_3!T zsea~E5|oUI3x%jQBHN8lroNs!^4-}1m*ZSG{b4s3U#=9 zJ*e=fq**ZohGyD2#3ziz%l&_^LHqdQKS1NdxvHRPrfZZ`SJt%}-M^nG`pwaySFAK&1mKfj>KW4Ix1xaoSYO)_Y&Kj~m!c)ISuJ4GSTficHm;s`4j2omcP0U8_U|EfGqnSzxkstPy? zTmUl|UCardg#dtOA;6dv0N69a4PXY_NYEh(P`LlQY{dom50x0p8(dso0al;{e|^Hh zWoHK?k->BmFsp{jWMy0PBDM>i^4E0q+D_>;TVXaBy?{55mdh|BKxUI2u34W@Ab~ zr)rc8;IgU~)I~lY6d}nFs#tDs`f++E#Xy6E{LsCPC`_qJ?8H6#nHF&+f)>dlgrob3 zH0kDYtxAg}nds#({pPaGzP3Y8uYUX{@@4b#56-1W`HcZK_axAL7Vxm{&~3Ke?K#!e z?FsgIJxkOe`av^LO`A@Qb?nI1MYb0!vAYL$zrWv(9z;z7EpR@-yTf{B zzFl4O@@J`-0EEp}!(wqh(W2nz|9~mCe-dpI?#rx-Tr~y#H06w#8e0s_g|EcH(x^8+W7f9+*r7Ip19FWi|ZX<58FDwY|Z5 zTlKCb0>oHa35RAb(HfSluR)zhfx$tlg06 z5RiYjrRvCDE-cu(#ap`(c+Kf$+k~WH zB#cKCspKlx>^p%B{`8h|(6(0-##>!>EV+Ot0>p-h^TL8OrSb~qY}_ldMpPL z6xbf(FN;p|wP@~2BH-9`XilgsT6pr4$;&>KRCwV{XZ9S%X-lengTb{BLCP_ULF6|l z=ve6+MA8>%j;yfo@T^VGC%ov@7YM=mxWlQoc+ah#sD$mbC_*rPRht8uP9sk zRi8OzC#8G+%h_*Ys&W}4~BC3BN}44&?kh7|j*C`s{X8 z+#!Pz4labKWCp}S@1<0EYL`{5F>-$&Y`7J^@PE^?#wE zfow$an+$Ez!|fE9gRCrF9MGAvQ3KG<)GNgKA5qdoP3FFjEN^L%b7ix08d^?cQzvzD zt*S`=E#TQTR0!QkKfpwr=iRx`nK)@$X5v|Xg?!zS= z7L_GA)x7L$Ty+768@1}_+k*O z0h0lTcEX3su1+Nk`7qi;C6|t&)qCHY=o=F^_Z3|7O{y&-eXAp~A{)i$a_<4$?8|T> zFO3R_-(ZBDlQsBDy1ap8``Cu`X(A&H5^K6tzOje~%7;1OK@IxTtJgrk^~Omo_7B5! zQeUr2wTM&JTdpSVqA@ORe2Vj+&8zSvWwr3=vaop0UzGU7!C;Sw(451_MWqu<|JKjV z6jLjkx{#qTa2D%!8iY;A5(34Sn7hwzHqkW(?j{r{>Bw$1>$hBv86LRWFBXW1`jcD} zmM8d&xc6!`FPNX-1W$obH~lj!&OS)V+q(P|1L##Y$u&MrCI_km{?kN?pD;F_nz9C0 z#Dyqeuz#r!6O1U5MfVs?Yxa9%?t@)_SYK>+IE%cRYNPtYPPc0_ZMI-){NE6U;WejQ zsv9gWZRMbP=Hz<|8Ey0z+3M#zqI8s{m<-Y1ocZV7@wtL3yg7kGJ%V)0mbSB>PPF*V zZd%J~n=#oyO;0`>CJD+wGnjEQVdkE2P8L#L84qtPwU{=^Nit(o`U*k6E%qLYeQe}; znQl*u5GT6Nr>`>A5TQp2ax<7QSaF(3WFMfVKl9IwD0k~W-afmcEx$*l*{o2s4n_Jp zH=QV7=hxx4Q_liztsqM(BH|Er$~>!4Rnyals}d4f%ZLc^GQ)2`OJabq+;NwIl2X{e1?$we?d_-JJ*|Al@r%i%|DPGr(LuC zQq(5S>C-fc+9_)p&~3vgZMrie`dTaGbtu29Yaf_G5zi5_sXj#}ZTsQT4cL=yP|@T% zvV^*}Mg6IfbG-*99;W{!cc5<*VQJv>Fo)_tdU`fWrIdBw;uu^EE8s8<%sN{$<%Cm4 z3RESDv(p8h+vAu|zMNyfXtwuRcC|M@h737&T4dH9H7FYYnvYdc+-pkyQ9)|c9k^>3 z-L|0~A_pq=@5{8GDx87*OpS|YQu5-~;E+H%EdnV6IJ`Dc^Pv$h8j>%#t$@O9VBJ)~h*ER*) z(SWCXM6Nb9&aT~nQVUfU&q!7u41HHi)Z#<#oQmmGcUr)(krs*h$MNgR&$qGMhnDzj z&+a7Pt%%2i!VX$$-4!B=reUdEfU^YvGw%Gvcn+yN)0@tl^{PGVs~ zQ2p1~S}QBn7^EUquMK|PGH3UIZ(Bk;c(4XI%3O9z_#(I*aX4p|kBA|7k#Nq~H&L>p z{2H02^NVo4#=SMCvE(hE%9D> zkYUxP@@95S<(v736~>FOL8+V=rBN~qElGTzwppo#Lb^$_?=~A$*t6x80I3RU=GB76 zG)$N$$E)$!p()Rp%r9_)9R%yKmAZ9TlE86hryEe>1(sZ z@zW-z#eCvbNm?-pFXCTJg;5ieDl7pK`B)bqN>eK$pk6A(KDJgg9@iE=;n0Ktkq(?X z4$_tjn{{g1eyyrrT{2<$s6fLiF;6;S98PBz*oDaJaR@k~$8~Zh?~So|7?(9alk6Dp zhhDq}b5H_D%5Ln96s_OJF^d34@l_zofm^Gj(nZr`ToNA(-H%ZJ$VWj zIDkR)U5biI)T3_UrA7_dG&eLhz#pdGTXDxKV=-ni6I%SqSFU|grMjExwPh_4&tsz) z->{OBHG0IbO! zI~`4I+qP|^W80pIZQHgcP9{z!HYd6HJ@2i$^*(j~JH4x`tE&;4;wX(_k|Np#>F zh5f}>UID&WOtp#iG;ZIlQr75VnTNh-W|G=?*NC(D>h`0e0$~HUquM6ca4b9}8z`oR zuK=b(t(JkAf<*m5f~jD`fvQlfp;bVLsqk0KgVsGup;mx9ciHWIIW)!UiF`;}o>RsC z2kdDc-S^^G|My~NigvvIdXy7@Rfbz9Y0tT~Xi!?dprS32Yz*W{`TM^pLg#$nr+@IF z=t)UG&DOloYyz>3EPmJ|M7;sOPeEVF_#yqlI*zjf9>|jFXiyes8?q0fVPew zjCXLevl;kyGQC;HCtV_l=ET@BL&3&Jxk3wqPmEs!0wuWt#VOnc?)eo~k_jpb<$tb| zxbwzoiXXnKs1fRkkHW~vNtZhJgr1rA!p)Mdwpf$~%GycuxOKP?S{i_o>F?Lm$vHM; zMS>(v3K(ee_Yy!Hi>B!YNP-;m-o`jf{$^{=GV{|Ay7ULLS}T34NzCu(0<$1| zRnkH(_@i*9tFYRs>ES>x>HE54U+7s&Q*Kr)eLGN3XH?Z+z>!MO_kM@K>K46Qdp=I| ze5OG}6x-{(M4D(79T*%+o@e|{TNn^1jppJOGz(}gP1TJceR>6vW122>dRKgQyyGLq zV6Z8kPkC*7oT~84AS(ILH9JNK*`=;j{ge+dIsT`M(Jj!cN;}Rxi8aMcM} z>-i-y>11Y77V72bGdyShSR>i_biGh?=$W>l>0Y52ESBau0);G?t@k|JjF)L%5`u(=$7B{HbsH^#%6szg6T&v^d65_9Sg?E^rL{>Kj_| z1uZaV@b!P@c)-l}9RFY0HGuouFv7*e#`--*f5#cVk)_|(4QE#{{ES*_cz7^Q?hHjM zP^^rZgzp);edc=rzZ8bT2Xb=%FPy^+p}ym$#2vrTC%7{+H74uKzdy;F^lE-d|_7U6N*)>aK_b`nr95v%1TTbx_Yxtv@_p{1yCWd_o(}^}e5}d#s1N z9sLUcehGwalOJ|Ya!jdZHR<4mYA0a_gKBd%!P2V*0zUGM0G4^zS#@UohEBZn+6MIR zz_5W`Om_pBzn(KYO;d(WtAaf~|Lir|^Dz4r;}EJU^~i{0z)q)%D_zrBlU8rmJ-%D0 zFR>v|uwcs|_QrY86lM?uD-%1)^PFz(FL}Qn49QDZ)Z{sr;5pWZhR}#xZ=7O~UA@`| zBFt@gb5Sr3cdt$TFSVMNhzPi7+skPY& zH9XC-lv=tI$h`~q4H1s&vhFLBz$(kvRVVOtim>ThwSm&}(D-x+*E}7%nSMPT;EWIw zulIUH=rjgplgObujJw5yiERtEI`{I;^&jKQjGcGrGR~X1&533H0@&`Mh@bq45>ved zg-wNgINye#g{ONoHGIuDb523+^AAZlVR^E7?*S79hD5#Q`!Ni5dEpd5ofrb6G#b4W z4Nu);&~zS`7q5K>EV5w#5T?Kf5CU0nf2fV|RkTqx1*nZFlQa&42AMd{3+Kj^<4IM- zbG&a?XPE}*kvWcTE7iOe^ZM1@*w#}CrOQ3>fOD2tbIGA32)<;RYWUo`>hR_EedT!H zitS_)aVYSDXqQYv+jlHa4U$zF$JD(;7q1o@J&yBKRW!(gt;!I))eDY*xA%D)J39W=Dv4)gh zDjzAB2=;$_{Ip5Uy|Vxo1~=9Y%`|D3w3PNHO4X@oz+N>d9f**XeN?qgsvKSnyQQi! zt!kUYKe^V+@EA60-~s~a&^`0Ps*yAeAa^NmlWD5g|B)$op44^)DHGxN zG)&e{1=a?Il7YEPc(8_TQp6jVr_t%1abJ-3uJ-LaYg<%hE_~V^?$=>F5B^Hxfn;)z z65edQJ9$5Y{CNS)Sb}>b%)ctduFjl(UIM%sodKcnX=;LsN(`CXEW9&73Aj7l4YhUd z_fj}sLTws16-)kkw}4hHKy5sEIQ05}+af+d`VG${yxeXqHs%e@9sAOYGHMZ?Bs)y$o71_KJDqt8ky#er1*XF=6EJl_ zUEAj4uXlm>?bK$8{c>Oe>%(ABSXa5Lp0R|KN4BCb`?R{aw-=2O7Q0=?F$s|?G#g~s z>$#}};I6>t4!7~!C?qz6epqn;pQWl)gs)dA5dyMhRvcA@r5|eonrkE)OwR}6?hz`?VL2e?t}Abs z!E^M5JyafLM^bCas%ErSIn3szVmMSdbJwSZlM~pzIS?^rRzQ6wf;`TUuvS`Jj0_7+ zFI=l`0RPa)=blAA)u50r`s(EsevjXHf%Lekv&bjS>>psTFDwNDJT|J~99^sya)`5^ zbDU?>?vf=XgC`&VT4)y$d#6sk7X1^iB2+;ZE{qXYNCp<2D4?_0bL)uJW#{lO=2n6; z`T_{0yhwdONd%qSosi5&qnU_Uk8^7Cv&PN}0Jc**eZP|p;Xvt@BcHwHJS;6Ue(zNN zCXTC`%wCdQi5$A9r6;bms8@iX5_lJbr1?!<;fKK=i)<-w^cv5dKa*@{AQrq}iybe4 ztr=fd&#qESW}?qqt^7%x1P!{XY+e6*kqS6PhAJR4S)9Xr0XC-*V(0xxB=>53>5^I6 z4)(qVeI}fUetE}EZq3Vlvqsa8R7ZUM?OHT`cCs$FaSw|2(nz1|SV+T@s}TjoTs)Bvgf|*LhMs z=Q_UGDS`#u=r%5UaYQV1?LJ`~N#OmU#5$thFvvf|KQhe3NNj@8ia1m#1yeba8BsFW zWcN?-6O;n;$cmHB;gxG?L#fa1zX!H&;hb9pxeMCK|F)PyZrU9%suUX6UHDthi~nw56-q+bv+l$G5Jv*Iz7SPzPg(Xp{yYF z+v@>q0i7!F_Y~Ejaq(56fN)^ipVdiH_d1%kmHvgyOQ^r`5ICfEPp4S=OlLsEd0Q}= z0df9nNX(;iEn0a&nV5}^X#4Ot-1C93M{HkBV5w8mvux~1?nrw!+M^JxA12-psV;|- zowX3<$Ll;}`g2OadbX~Ng&7+*h1>B(w=gSPz(t`OHOi_Y zQz;Jbx+NFY@QgBfgzI=TUv${blzS{dX~Mg;e~8kR!dS~*Hl?GgDG>zskD^3Sw96l` zXq#9A($5DbnrAvV<2(_NBVV)49`3~kUsmyS=#SBc2bZFGtB>fZ)Z~hSbI@C)x z*ATz!y6bFs{`-lIT?GnWD%(a#sjQ(|n5B;RB}ys|O7~&;8nr!{IcJ{Ro=?n#DLPF5 zTm@z{E|TO9Dc*gmx>Dd)mZsz^3zy&-RUH+Zq-zRxP)YO0!0r{trI%}+g!HQ3QdH@s z=hcOIYG(>1HH>H_ih+|o;XL;-Rs&T+R^WRW(eYxt?r^ruc_!yTa|HE-t*|^+Dx{i< z`gBSYZmIflzU@H1`XEhcx>PO)+^p)S4z)uYrI#WmrtW`V1$szr*baa!zpfp%R_rtK zI4s00hvj1N8!IkP6XC?2hAqJElKn-SBl#SS0+sh6;RT==6Q3cnpXpyr3xPOV=-_4u zEN4aJ{1((R`Xthu>KlxBcdFCHb4lAAOmK$4_ z_M=qnt0b$d1ZLLhYY_fauMf7H1tkXC`!VRw>Dqj}xRkrpB;(Co-$u29V}rnm_9?4& zJbBvOdr{cOPaSA`V4MJ%`IJ+yNEwwd4K@W>y%nH&40xz)Xw=CY7X9s(Hfih8U(YI> zj9Gl$5X8T~y#6r#S5h(cLc8Qat}-`@M24ztC|c|*7N`XIyUY}vk{%6_9kiOQaoR!M zz3t5VcaxmBEKSARUx{s?9SX#e`* z(Q@44Wsj;=?i&cy;=feL9a`kOGW;t&=T4jf+C}&kbtD~6yfP`zkTy`V<7MiMh1h%& zR37Fk9N@}&^(392VSkY(t>iF#v9n%3d4x{)o>NrTur+7`ftxdET^KLtAJX2w577<$ zWN-#KTE4J&mY?zt>AU`*p$3$P;e>_i9F@~16|h(XI0nFYB;v#6Xk=o>>U-8{`&6dp zQ*nSByD9^8ZZ)L}|18+JH0GF$fo-hW2|VH9Aut-A5Vf%ZDT%|^!!INGRbbzq@|ZV)Moh(g^kCfD$Uya?%}2ty=YY=%{e(>f%swRDwAG+cj6 z4Fq%LT+mH=JVfNLNcU#j{J1AEX^{vtrG4@v87MQee)Ct>iGloAgFz3_~~Qrx+j>o9j|f~ zBkh`vOL7(Aoj6~e@w#KmaeegMk(8j~V%#K|8Y50;OX)RI{gd(xC}U#^L?W&wfJzmC zVjjJ`dHoN%`CfH1;}RY@E09iK;pCu=&)cv}gMLf{+~HMBO?iiJ>9h;#$CR3;KIS;< zxz~`IXR}tfAX8`otby(l=>tgO^6nl=^y=-4OX4Dab-#*5M}sZ;SqUalobV?iPd zrbNSxMR(`Yjaw~tKq4MDSX=ZnurbKY&{0mYhyWltNoXsiDk)@{^4fA1?`vm44gDwC zAj_7|HvUg5x=?A(tVcQNHZv4TVgL?>*67VwR;b9+bCZnGctU@-_Qns(QR6ta9`TgTo#bewr#1u;2(H)J#8v-FpcP3$j zTiff;g{glk!RdmAAM|BVuu)7WVV<-|u`U8+J_3QTmV7usjoldmm~)zMseiC13}F$* zEaK$KkZP>T^gB-X0$PeBBum3XDu-e~B5H+XHvI7ycbruHFB&EMJjD@lCB4h=;PrhbSWWGV> zHT4&~!90L^Ve!IqU=f5A6z7bbAHu-JwJ$hE2!ue2N_L`P;%JI|AL6gddzGf)2V);y zvt7o6V}4xFY*MNe{U z;iQ>-U7bURD|3=pjkfG_R1-geETRI|*a}aRE>iezn5OtBK$2G%<#N|5q=oc~Rs!!y ztf{=R-#*B^I<4zD_9d*zxK`FXD(;ca{g6p{HEX<@F-2mM+GT+-Q@lp;uEM!?25FG( zoc<8rxfe)jVUr`Mg~w*}SBf^aiSbv!5k!a8k{ z+Cvy?54~F9sgiW<4-@fXxW+-? z=SxNY-st$I9IU?{nE#X$u5&XMt6EW79GGxWM3&+JLKX3X?;t(sK)K)lZcAwvo7kZm zkJFBH``vq9mG$abNP=)QGvtSEL_)6>7LIRBv*?!WUODK;9vDo$Ca!Gl@QF0BX}vo& zUjG?_fyDlCy!VrdRqTV9x}q@ZebH z&Ib6r?n`Fof4uD3yYSRM?Tgd=e3f8r$#ErK@i>`rxMa;r|GoJEuKV!Q-Z=U`kOK)7r71nnnsM1FdpQ?>B zB1>Sii#G1rXX+-fHgR;6_Ve7RV&z|LD%l9HJvc_XzbIlo&M2dl&6liHlN0Do4 z82q^UvojZ^**_1Pw&M?xe6&_?WGB~speqX$uZ+)s_cZjj7Yu{}yLx4nQiO^~Y%-(} zB%dM9U!}Qq30G`qZ>pEn4v!$tFd0x87x^d}Me`#YDxpTPShFc5RdJ0UAV$q5RT{`L z&>!fyiI*xdO56J08Fhf?Z>Xsy&N09GG|bz|Sw7A^94xUPpgvo|gux9?5&rFELus%V zZBU%g)Jm*ql-!V3Vga0=9<#3=*|nbM~q z?-CreQvT-s+~Er%2jaKUGZ~dPqtL-?Ru-!Lz}CoQpG=g=#h#5wYbKj19gn})p@cVX zjD!r#Nqhi<4@Ay`9Zp6&*`b5}C>T1DphO$#=%8aX4qG5o$`!0=MDdB{!8noONsEN` zDHWy#A+&-96rTc}nm!3a^XYmqPB=C|KqkuUa_;dEQKcTs^X787}^mJuNMq5Av5AAX*GzE)jT&W67k~YO6FGRi7~bj zu2dD6xC#;D`0P0molqf;cV4kHC%TJt1>cXEb3AFynJhgW`Os@vGdG@UhEz*O^wJ)m zFct{^{Vk9eV7IQGDss$EZqt8c_=r!3{~4`vRBb@Z=)xbwG24wPbgrg=!fClHgXvGI z92}B7(T+A4R;;gLk1EmL-|5?4j_R__HIHXoc8IjAJF0EOhLG8miXJ*Zg=0^1<{3!< zVz`tl3gbITbVaEC;Syk4JjlYG@5@;rwS)|>%nh`#6G-ZS8F{hxXs{xceXNHM{B9v- zxKGt<7FXyACbL@6fYhx{f!^<}YIe_p(7s(J znD)TT^2=U`Ka~3kN2NAM!vci3qeM9wt>s~gWht2$1@O(anxWKKmTUFo`LW2&?UI8} zZGla+?`BPCp}WnJ<|jR#6mpXy6MP_`ehM>7ZXumiS~c z7()T&^ge^{SlfgJBDwOM)<;JJ7Goalj5+8(_!uuyT80yy}u9KgB(8}Vm^0x;D@ z$anA|-uRm|X+a9J?uECceR=~DVX0giN*A0Z$Y-w20L{^@ z&&_Ty%Op57?(pZ=_|O(&}~(?^30{}0q({-r}v_CCW|^l*1Mk4Ql7t;iaaWhe}-@HX-x*+?*Wh z-LWcN%~H|8$77xW&#x`b_dLCm@=o(-O9<>f=2I`2=f+a&@oE3EiN9;Je86zKoX8N7 z`-p;)(f#hEfR-9#c#kI`wQ?0#gc`0(rq-$Gc6;Qi;a{{`c2p4b2-#qnh}{_7@A(Sy zTdkG!dY`%`wuw*_{`8`Fv)WQ3MFirwk=HH+bCW_Cb3>lW;>8VBVM~E-HdUMx;I!~I zJ6oF4gn{6|uh6B+F}T6KF`z_0)N9Rzj?Qh0b}|9yxggO-G~Exy!cf=^?UpgXS{;G8 zSB~iunE0=UUX|^lKF)K_GK)0kaNXK)GV0&-+NdgS{p<>tm3+*XHEe=W`L7o;MalkrW>gdDL3l+^7 z)YR)_J9@h=@8J-cO<~+^m=;rHitA$zs%O7$=$6*A2+%#09lc<4J^N z8*ou+1(l>yv^h=YxuGHU*+CNeL-A(;=qL2xd0$u8=acN>7%F}<{pHCECEn}YNlj_| zc7Lm~wM+h|es3f&K_Gww1KZ^yACew!%^yX?+^csvOJetGnS=2TtA%@ZZ^q}&N zkN2IplTS25MS`)qWbpn?8GjKlbdafZk%L#X<8c=K^@Q-Tf`Zunl!RF4X%*2+0eT1~ z1d=1Yb_%Hr<^+|C58oQuQ%qpAXT(+^1#XlM%EBfdDM-pq0#s*VEbk#;8JdILUQ7vT zPN?N;4thXdJ($Fx;g$zRjbBy;5^b6*7_aKPoER~=xem+*L_}!5pioa4K9gp8s-aPY zAyVy~qS^7nFVd&d7*fD~Ui_@(hAe#P+U&{G=lvBl0sZ+FiA+6(Jm%!6&-4<;HIIf4)bD4hNoHmF>x^tZe;Y zYd4wB=wLY6#-3xH5-uvSOT(SyJ2zJ=(t87EFSm0<1v<7)?EM=SE!6WJkqqNsxF5X& zvsAd*tK$B&y?A4)*WHuP76^DqQ`ookJFDg-Ox)b=SJR6`IW^JGPFI~^!<_Z4DABEzX4Xz&1fU@GE0Q3_>V?y|Pz>h5dxTi4Nne$LCbO_#Zv z6ZAVqHsBEWiXEPL`)A5t~A8_vVCl3gOU{vy(OR-*Qyq;2fzX zE%~=&;bb&amC#~4_b|cn2%nzr18;M>?To;g76X5?$uKCMA@!32_9X7E#zEjrju8`@ zZ9Cp0__f>a*A@)5Kr53jO}n}5y4iP`Q?|id;`PFK*RY0j#jr ze9w8FxHER;UKNHmZ)YgU2@ml#bt{4Xs{;N@*uwXj-ekv8BE1AE#f~9}nSW!$?L4Ce z+HZl4Bdd`kO?G%-k{rEDZrvBWw)O(W4rn6<5lPHfmLN=&P^<|>PR#6OK4~xlHLK#S zH-128kkyFYqW^7TSD<4ZtDoDEsi!q4LxSMd&rdZiI@Lq+(+pu!fUXkM4TRn>ABEDl zptz1lfP5M99wHB5JXzp;un>$RJX{1A(K3#u!6g3^h)IA91aD#vl}i4{Bps5}33TJW z-}Q*;fp+A&ogWO?gK$JC`D;X8Bm)11h?cS#w$DFsPxSX{d0=evBz`WIw$rm)HZIHO zaz;s;Bz9Df1?WV=evMmz;PdjAgeRK_ z@EpbYxUwj}wv6GPRfMK13{oE5m2nqt^OD#Dd8*=%>pE9CI7(lj$^93s7&6G)oUdr~ zqMr~eKDs5fLx>BrINiOM;D?e*nec8+QMRheG?+4{=nj8 z%zRrCfE?`q3j|R^pr5cgdb=I?1-?tyAwcw;Qk(;Iqq&ITbiNGzFfa@5U&aeNFAX>1 z>c?@n%gfd!>oTDqZHW)cl-$nC%f`FQ_V9Y&xvr;~A%8c7d@`3)+NoDpoBVu&{XXP) zg8dw^^1AugqNyr-CgAxX0XPw($((|Xoj{!THJl7!ba!$7_kt=5cuAn-R%ByJ(W_Lu zIoyA`En?^hY7y*9q3ht@U;Rle=+h^a-bac3<@a&Q0U~42=be=+ndsHvnEme(gXqf2 z;MjTstwu#diic-nQI19E=I&pxx%u_@r@(;OB-Fc=EZVw}wHgCsGjQF>rG`d@Qq(r; z>F|S5<=^oUb6xWE0gK{~c@j~E-{MI!Q~RmTNW*s`Lx$Q^kMe)UzEBQgKnqUJPhlNplz z=IawQChu7z$RwGfU}H%fG|xrc%OS`b!trtVK2OfgkKu&kh`!sh_KsC zrI*1`%?u|Ch*W$tX?<9ZH-UP!&ynlKmRF^!@7oG8&kJTX1cBG&1EdRJ% z_Q8_;5pnoqDwRi7IoA}r=J9cCcJ|~A(6;f74oUwa7fUql2SpRvUM=YQMnUh8_9YcO zF0OqM<^wn9A?+5VDJ6=ZWQXn#90m!?w*>c?7h1e^%0G1w(tj}1-dQIf=-ZL6(UX3} zHIKEcobP~Kwy&y~Pl^SiO4)@upvW!#Z3;T^a-py_jjJ+WNV4_kArwrL*Z(Qo1)5Y&;xUkx<9G|U*y}@2JrjWgF^{qx0d7^|GS&+XIZq28I)9)VO)#i^o$3U`zcbMo>$SA| z>H?Hy`WMOSc4uRLSUp-*-v1>e(OeuDA~_Oc35O{VJsX+eV&PRo(l!yJ>=n15gTEH8 zOh$p_+`#LPjdyQ8Dlu_ZolCMs-KRbGP?S%*9TMa!wQd6Av%_b2T>07L-mtx=`K zh|!XCZjx*!wa-IxVenGr*^kRxb=;K}O#x^ZNp2r`Z+$>k+XSl%ZJdT<)Y1V7%Wb#$ zr^J1yYc!Mv15-y~xQLX=uYO@13BoYiI~LVEymVbxmdj~dmcMu=jKFm{6!z#WaHc}q zjnCT6S|j)jC%BaSJo67tt*Sr*Q5hP69j2{lD+i<${?sMmYg9?pdj4pWWLQ!dbQF-n zqHFuBVSSszD@tET$5DWklmcHOU8m(&D%_e^xVL277<6@o8 z&$ZWUyrddAnR%Ww%O*dq0ag9CvN#}Pw~P!BI}&{#CP(&QKAEjrRT;&-qekKw;MY2- zaw%G1l0mCSY056Lr6R8LMq>5OtjU-oN7E@h(g9^*pL>R5p=(Sq#dmbE=_J-hDJq3T z_SAMrWcy-fQoD)yV|;Y70k&q$FARk)EevSDv;>H_$JtP}O+uo06@5o3&H`fpnVoVh z?l|;%$vp0*`6`m{+gz)zaJWcdL%~FG`1=7GiFBkTgoDgGrWKIo-kolJn|J{3ht?tW zjn5SLX^=?(8hiAQpqpX|d8vw2mm)*B89_kuzin!ULZsz^8uVn8GwX%qUuwc$ zd_PBYP=K}2EE3iJEg}>6rF=ld36ja8hSH{3+|j3=Au17C$nQ|6t*LuflUH%S(8$9U zIq71`^Z_KEok8}f2#19gQKMl&zMp-IkJv>BnMu%Yei0Y2Wf9G0NRZ*OT29xq?;Xl#rA$+yFLDy8a!^t*xv6n z2j3VC=sj7n(T{G*r(1_%nXV>i%vRvS44@O<9Ogiha6t(T3XG%sfU2aod)4-k9J(o_ zMkk+ejds(8pPy1vVzj68aChWoH-VC!C&$=;zHAt#(i={WS_WpNNmRc%#q#i`yDd=s zhWov(nX{4Csbv^Xbzjzgf~HgEy)Kz@0UWL04v>a*td5?jFIw0=B|G~SyXgR8va{?t zN|M6OcG-T;i^A3{{;pq_<{@`8mMu1#@?_m$gb}kLa-8USp7shOiQI)j;pu6RLFUq- zQ}X)fm(!Y1UNg`@oFcoxRijk=EQEjuvYP1xYwIW!!F8tL$H{=r6g&8O%#P!zDo4Mi z7HQEjqJg$rXX>|Ti%j7|Qk?Jyzo*3tF|tO(e7hvC9Ac7TEPcA#)Lf$!93ZHI{O9kd z_3E|Q`$BbB49Q^E@!_(0dlF(j^j#MYSo(9xdPZVhGZ;`$S+DrNl{IJPMSyF%n)tiUar z(AAjX)GOe|3LX)Pn~1_xw`wUB0gg*^U$bY6I$#+IPXwj*SH`<4jKp2$f;L?2RSMy2 zI+Q6QE6PuOrEH%)=%+s0wmMg$)g1jQ0#1t#Xm(^q3j-e``#09tdKP`?>g0`Os9VCQ zxi0YXz?5HPB*H4HhU=!;{p3rzpN+Ih45A?LbRs|mbNVS+bYnlQQ4EpvRG3&u8=rXk zoO$>p<5t^pAEG78ai*q$jm*&X!SJ@$rGKX9%{~Cp172vmhJsWzU9@Ij?7g}w#izHq z+^Dj1L&}Irk75V@CX0Wg&^FeV`e}sMf`2zEw6G{yDClA#+vxx@mi$5z8j(=$Iz~9i zK_fs0+rZrj%9q_r=j|Mi`l`>vihNpMisf)t;b684+x@PEQ-h+RX;tfUb2>b4o2znB z;R5J$JgeGu)=NkdZ*zN+1{oi6>t*Nr<9!~k_V2w*(z8d1pT2~asp$E}Z+k}N(ZC;r zo88e2ktwB}E!3-wXjHR1S#eS>*?f}lOMAfmL8kW{!vUDg3Wxr&>=&rZlmQGALWFD9 zU)!y29x!wCklMBPjl%^bLytMX7mOCOnCqEXIDU>!Z-qdUt4ZV>rCi8y~`7HpJG zPa;g6Mm(FgW5Fzk5GrDScVWl117gC#0DFF7A&h@RF!<_?$w<13rEiFz+HIy*vk8CR*$Vb)$$>Og57%}lFeEnhGVnm?q4F}QZ4^#*h|o7cYor~ zY>*ZsWkYc2ZgI?80hN$EHv)qPxsRWRd$(?45;`TDfv)~wnFg0@M3uwdD<%2Pz#L7% zF{<~u)mNsJ zT)mOj33`)NRi+S%QHP?MrTzj}4kT9a3DE-SeA{dAPN2)cH}J&?OIPJ31lru zxIO9OMHDzk38Qcb{8;w)7|{Nz&UvvlBDFPsX{!7YYC zwm>sU5x+X#e|jZ9|HN51%cmpJxSj8PLHA5YmAHg2+{E&GvHgh^g3YN_KW;CUUB;a- z#g4oJk&9!Q6;mnQoVaO5*!+*hIfyS6vkAd);I@CXIi%R(q#3*%gU5300K>B)<5?Yn9D8n*z8S!a7Ol5!&PkL02m zkclO06_N0m^H{V%Yn9}uk=Te`$MN~wWaIN&+bhk`hpZ6c{`zVluD_nVVLR8mYV?{IVnqKMuM+lFH;WVwcx zze#1JO$PI}HZ|H~tpCdOu}Qm(FL^@5LNN_3SH;HzaJsI75H|(sk%{$RnzZwkkWpj( zLI($SNO7B%$#GtRLM9M_J~un~4;oB=I|j(W1GH2(8njHV_Ff*3iqkL#GRJXlQ}n6` zsp8m}TW;f2p`mKvm|3+x@meQ-siUUW`P%uKR=$o3qBp6W3;{he4~ndr=|wdnu<_8J zQa&1=&El@j^cX{aQ%yP3{1_}voy1en&(BrC#%1ReDVCW577X7xHSvi{No|HDuj$64 z1-ogXex6ICrjzzyi-)g7T>DUxhPAN;t7^JjOL@CwrzRryTN6_DG1CrE6&3^Cjk7T< z^*=db1=duS&FTEoasw8~i`M`d6?khy(ixQ^Z*=!)_e(TPyN4=q^vj}Lr+zkv&f^uw zv7@;shca|PGp1a{8O&o4!y{F7mI@Yu7GzF}1j!Q|y63%OMfHKy!M9~lT-V$XxNwNy zWga&>p3EqYxr*C3iWXT9&ncBv!FxhUWh7$M+AXf}4+#_G!LZ@diM`Rh1I=XgP7sR+ zv$|rAyR0JyC(UJQ!jjA~xun;oIdtuMel|O8?z;#;)5Z#PxA{lesIVsz!D+3y+$86- zUpbn~RQXZeGu@@MFcmfO7lRmXv0lX%jDc9%A)gF^jIW&Zl&LQK+oLU&IJn z&rQw%(SOce_WoHi6umgl>91HF$r@i2T4h=kWI?z2$G@NvBK0j)^j!WgtW1D!gabE# ziIs$nlkM_#yUkNc}93vh~fR|d|=6rAyp z+=wKJF^EMg4-2y~tqb68r3tZ_V$wFCnZ>Rp+pIyW`kcP;-`)APv42bV4-CVA*Sqr} zV{d2I4!T)`-mcxx+q>?R&-nYt^U{}@2 zoS5XvZ9=#APp+Dn^MCi2>du!yj?21TL7+z~jlw6*&cFNDCN7~y zuluF*ee>Wv$1CKB_bviSLi9#wb8xx!jDQj`-5Nt9 zYrfQnM!@^EPcupa@F~qyI~NXDt!H2+XybDMBnOFG>-&r>o(a?9@Z-t9fdtmJvL&XA zUlXXT1gO+9y!*_Dhr9I;jg_J7BeWL{7%WAYX!&rf^T=B#yL~jAYYj_qdo3bDhA&Ij zB7a-X4SgZ;vJuv*lO)N}>UiG_a4)q`yOg7j4F@5;((Nvl25WReG%T7o0E70J>zrT+ zcJq{}ELYDJ_QU|+<97ZkpxT*8rDaTC;4Hl&i)i(6WK^jdYfNrUQno-pgXfEr0FItT zXL!!6TDhZXQuFcSGXb}9!-L%VaHAL9qrK;DyhpEkkr;iMxWYlQFQW_K0AE}pPVc)- zL|cbKOYvl-yv(Qdgd}0g zhjv?&i>9sI>61^7#%&0ZC8i22#WK%b5PGt6-n=}ABC73r@d!b_#=d#@gdjGQR~YN0 z?^E5Q^AZ>3=k?DmZ1{wmCV28^XywkP(gs4pnW{0=Q7>`Sk<&(uw7GPa5(2o)T&>kp zxPj&vr2;{f|G4OZOtX?J{UVr2J|fQ6K~rV`nA(vr#wflp+zf}a6PI2}G&jLm+mEo6 z{A}2eY7CsVZkpYaz##H=)W@C_Ew9ow7iT3Hq5YVZULse^vk6MN_^#k7HfP|Z$JXl{A`25Q~LlUBCTftJKg&H>_J+> z^N}4sxc}{+S zg#)O^_JTTMBw%5;zs$H4n;alH>y%l+68tI>q|VB`$wW*aQvX*AX35XeqafTM7@86KJ3;1m{mOnTK~?m{rfIt=1>mmdj;>~ z9}tx%@KhH?A@3p74bXuLir@#u)dJ@yNSBlgbvkX-GO3%1PFw;#U8l%DJJcRfaHl;5 zlJsL0p!Sme@aP+Q9zI_g3fEW~Xim0xM@muxIhJ~9Mx5$Ov1sVI40{3d9A?8gpfc(m z?E%SkyDYQXqpp5cy3mzFfTv(sDO~Iog=@>IWS8%r?SA%vRVpEkgj?{Y*8k1@tTq>_ zzLBMJTsd;@ly!U^6;T2sAv(k|~=) z8&F{Lg3NwhI~y_k$M=Cg~<0 zi{#RlK^<#d3i~A#xmpc>;NK?h>N=Lxx&~H#b&dK4a-RvAHkHti!Cql;er-9fRt(oN z798b+-m~ELUvL_0tJuSvv5qM4N9;daMTwf%w^WbC&kPJ}r6_X+3aa zvhs+KH#@jxJpW=>yWn-j^%Ut;%9P&>p^88eIB9omcUtqU43d5iNsurl6yq#+AQnb{ z^$zoeU-q?nDX+m9kdYFE1|q@(xwxC$Ex1hHilcb=A$c_SD@qmBhE~<+J1VDghDqEt z{PH4(g_4F7QBHzcr;eWoISz{ell-T0SsuSwlG(qycHu(yhFr3%WDH$csM?Nw;nsll z!mTQQL#!gI0?7_~UqJ1|jUS zVef}E96dIG2IJy)uUpXFWjxQbEg7beba$%%%g(JrsH|FS1q@kp1^sHu*{Snh3ri>q?moU3=k?D&iSuld z*R7}c7&Q=;x2@>)5T`SiF&HX-Q8}k*jwRBc~f9P3LTW40Y(A znO&6Az+lgVdLA^^7^b~H*X43HTKs23Z#4)b3wb{r6z6%H750*L3i2P2GT(po!I#a} zh2JB|a77}L(RF_w(zxyja}$e-Opd`tb{0{K4Rj(JH%L84uDBkt#f^;n6qAUbqdVuY z%z6mpvCztxc(zawUKwlUd)M}t;!6ft3*6`a1KJ89I1GPa{y%J;b8sc`*QcY2ZF6GV zwr$%sJDAuL+n6L1+nCtN#Gcr;Hotv$x8AMYzxsAnpT@0Q->&-HbDn4aTL&NWR5h<9 z*ojhB>hf^b2S};ng&T62h&%lLmD}*g{oS}lL1+_lB zAalGobNp9!pd2Kj@*F1Yc5xukqwLo-4fQrANJcm_3l@9ZZ@+O^Tz<^?u16Cc*{mU& zhsOo6ID1_KHkkP#%T_1p56n{A=|5A`D{!mW30d#M6jp_zx||kFngDr|5(lIYs_4M& zYrlsPgnlvPHMRZPtL5BON9sO;0S}J?)EO$ClOV&-f{Yqw%!Wle5*BrNxsahxuO$sB z2%2KSfc8@`H2QZTk!!HRfW|j%TFn&tL9hM%C5#Dx%k{cES!XaSMN@`bmD>FG*wEl> zUZL)Mi36KNzhe#wxsQDxb~XEsO=)100Re zFbt)bd;8qP=V%2K6jEfJRbKS9vfuGk4RoNWuvj(hHSjjoELJ=m+#ZlPn39qvD3RWH zh%5F0TD)%zc#_sKjuPl~B=eIdk&nXl!00yZn1Ldr#kekrSORG-6{91+=4J|haLl8y z_v5@z`E+AdyD*Am(o{3un}OJxfWLZg9@uB7$Hni{sqy(NoXmATT31MS?)(q08irnV zp|fZ!FEYG8`wLH&hORBqM4a}C-Cec{b&nOm<2hEjP~ue9U{8C}2<+?TVmyo$~s3K8VJX3bdzC`R=+6}0Wk~EWA2^*@7@Vk zn4d`Fy-y-*LHHq6zbh+PIfo6BV!Bh^^;;Rt-rv8fBQQt_%4Pj4H*nkW1@t<4V&qgn zRZPC;qy4wVcK^r=%(T6l@AS8M$?EEjq{CIv)0&dBI!*0cbmgV51s$LZo8s-~Q%Mg= zB}mGV$Ecgk;EYk`UmcDi2u=^dHl++zUzE4zBkU5*HW=m6UprB4wnYkn0QuTczIqqNIZ@6b3 z-Rz(P!>_tFlQ}9-v;8f9o?$~z^ zJ?e@WNOb=RKu%bxHZOixS#(~EHV)BsMxYwpZ~#+&35&`d$QSj+#gCsO!=zsf-z~bM z>##fTCULxqK$uJVsJUeYA9XIy(MQATmwOQ`k+CFd2-ZU_0&zyD^EjKXH{+gnzXcciNaO#5Bz05FLrT#%tQOUvA#(`%afrG{n4lsC_(Ys;U%4CI8734;`?mi zWa3$O9KVh@b7`nEEVVtAK~s?EE<=3+DD>qvrqRyAw{er@$0JG~1!jS!JUZ>ETQ?fI ztBHx|(5^axlU$O@u9 zAwRzMk@4~q=33ZIb#92d&3+E4rduU9ur((9R3YIHJP73XtR=1PL{&pgWkS{~(kY7j zCuOQGpsNgYBW11a%*UfZ5&|Q+n}z!f3iu9-mFim;4I#IR1Z;^PQy~5&m-6U`rvzRo zCxZbvxuH+zH$HohbYAgRkxx=U&d+xFlDfr&RMM5ZPmod~9OeHaeh1!z0$%BT-#73cUN&wm83VSfrcQ#pbOnJSZNyJ!jVL;-s1zAXm0C~FnX};*nYyft z=Z5T!bi=0i`{BdsO~&OL#fJ;SFA@mS_mxM%9%Dw*v(E0z*VhhoNpQ46hK9@r5z9`M zKM>;$dM-xyC-1?o7x2elkT7$<#rXDGDJXzfce0^^i9n$_MZHwLoPIK=>j}g1{WdGF z+tl00BE;*~2l?`Ku*1BrRiB<+sRKRw{{2RUo?~1#myzS~>7Za^vzM~1Ri|Q*U%+mM z*3gart=n;R-@Ix0f#417cdO1iJ>&g9A;ZXj;TWf>Y4?T4#xbeTo~ItvSX>9}${zrT zy0ssoEAIt0p%IPBpX&E*pP7R`~W zofwLak}$S$eo^Te)A%>M3M6`Yi)77#hy$uD-h=~0OKQw4bu-e;@ha30F@_@h@v5q~ zX8uupNtwv;YIo&IIz~Ii%zi>_`gP!#~Te_LuUQBT)Ot#sn0o7csCp+X1__7HHJ&2q-e$3(F4~4D*ABBK~K-pgYAZL<}V?U z##QZLxUJWbN(e@o7_s?V|0w=72NoIbNe7SU6=zQpuk3pUL;l; zUNbzb5=77jXl<-J+|0xPy{}Qzu+H1#HM@7_lzPG1ZX+StDxjcjJ9ta}2|d~%B500C zx`!y0LVcmS!v30z5?38-zd5&>%SOr|3a*wvK1a08XR7JJD4|ZKS_F91ic6Ob8-{xb zqOw?QZL$8vU(Uqi@Yhw;5u>q}?$9#fE$qk8n2m4V{(Gk`QrFkCGq$o6TVuQ)1I`@j z`1;D<%{et@EW1AEd$n&R>np{QFM1=nUEvQ&aki0Z{cm^J!j%a!mJl3feWc-70tf_2 zC#)MT+Xy&A_!oq@I1P;a)Wbxnt&qtZZ>$}6eN-Ts87BUDYk#|UadgM;BK|Wgf9)EB z1_Nf&CJFbQ8_SH+Zj&>pAOs52v4-|n{4e%2qR~FNGMmeK}VOvTV9;Ab<=BLb@p95eK+{TXlpEy%OzKwl_FvB>^( zoIJn@joGM;1nbgO-<`7$wO1Mo4ar~J7qE)U#2SL@%!f^3I>oi5O>Y@8YsO=7fPM;X zm1)~!`ga!!sqSCEnrXZtc9&K2n(tNSnM-`W#MaAXIo@V)l9I$eHlD%u7n@7mILA4* zas+q2J#i{yBOf^D?T6}G#+Gk0g3x(7D2OE(e0#<_;IvL=58pd5x*&haxoo*$bklyj4 zr{TFrUAi&oAF%095j|+A2Jy2!HCLWb@kB?%F$Nmu8WW`wC+nLt0v+}Oc2(dQ6!{Qs zN2BgUYr#upmPv7p>M>FUb-r%BGZnCeTHv95;#SJs9}~yQxJ8*CrJo$M%YQ6tm*+423u56Zr0E_z`i-6i z6nkeMQp8EKS4C6dZx2Ye0X?m4W9tOPI?Lu&`5cPk60_ItuzmyRwTC{c>fy6^-Gm*)sTte7k)Pa`Uk6hqsu!37S{YfJ9dnDe_U^H z2UddkCSOTL=u}lWd0wxE{kvMGC>cYwr{nlrCq3%=NOje=e|Vv+uvK=h>>%kGU*ETA zIV3Kzdj<6b`ZV}G8gk2ZVo+e{w#J*HcsdvBF-&jEb_?ZpU1m^3n#X8tiSE#QbG8+7^D`M(Ro275@Ud5@!XLvFO6)-@D5WFOM||K zM2X)vWVeBagfDlK;O8G)5*y-tRBO*cOq2B!UR@}T{`ENr)^T;Cwb26H)~dIe@w ze3$Xf&cD@OlC~p9gUnllBy_^&JV~eJm7!T%D#bGM^}MJtoCLaa6A>EJzF!;{GYl35cM&+VH^PsBz{47kQt49JXj-Lo0}x2f8%4M zfHSUAwv0#!iKbNJ-;Ao?rh%7_oCEVc09$jUF8-0G=&z%3v}Y?68KR;|%}~Kb`8T7v zBCLt4f6oQOycQBx!qJ03IF#9wZPKYM0`kQ13BG@8Qhx#dyK!VMJQ7jZ-**A_eE4s~ z9Fh2mGn@m-A8Ft5Zz{a?O)PrRQfT9QfSHB~R|Ynp7CooHdoX+z1}*J*!E)1{&k%b8 ztj0YF5?cA;Ry&nHf70gOO_IG{D*9mNNdGc^m}8Hpi!-xE78pLAI+8p`rtbtTl|bbR zb8I(=At;93EQb6JYB0F@!LvdJ<9gN>Z*CU_e)tcpj^ifHDS!+? z7Ae$7LVuo&-EhqDHB|^FjQ4%_8xoOuc8*l?@djH^Ltcp4oG1;5!>u4rg@MO@vyQL* zoZbl<7~qs%E#LzUCvJ?By^B_x1@bs&i93!vrJd;IEWiU2tsm1;h4c+p?%;6=XFj! zK?@Q;alITNtH2+HbW5KXD(dKww3Y{ku9Mw!M#1GroaPtdJgKxBnkbw*_dKOJSFQS8 zL-2dR`NOw0wx@SAqOwM?1LX84FID|4=Xr6%w#wvHwFehtA92Pv=Sq0QcGe*KBpgtJ zJ{$|6$yUabsj)CI+WNg(0a9WN<;W@l#;Cj{{v?5^-ig-d3XkvqD!->7FUv$kp5mlv zj>^;^|B*q=3iShH6o-~1UsQ0(lTl$1hbAZ)VO4)oquT8*45>lq1_USZWd?Mc+^qqR z(e=?AQElqG(OlwqWSJf9O+Cd@(PvT4)HQ<;8CPGoI(bAi7pr8I^l1NJ*dOcIC9rPM zd^G%l{XVrbMWi&3eio@-o~~`u3L*#W`O?ayBmT}Q^G+ZsCS*tODY*V$zV>3R@q9S7 z;7yr4nYpoXqwSCvU?i_!mg&zgST`0vnq!%ngv$O(T-k5@Gyt94s^1y{wKoq;r-l7A z#gjsREq$2t6e`oO{L2q@$gG{SH`4~kGS(}!EB&xH z0cC;EG$VJ0^q7ZKvw)!-xdC-m2JwUM8YK!^rDYhpnWg6S%rF70BI znzl<+1Jm$~3Ob>|u{4{Cn- z*L(NM9+}5{MI!#sBut^CWk5P#llmT5_MoA@h0D;E6G(j&(JXo~tU;N7704jrO!i|vvnghJz^MF9x{_jnlYY~~=RP>QOj0;hv>ErC9xNQ`N-bZ&-)9+Z5R(s!OeFVx^1@q2(9l>)B ziBz>)AbPNu{GZpB63km;^B#@DVAnQ5F@i$i@Xz>yKLj&4@y$6bTfcwdmbTWhd&rw! zESV|B(ko>zrHlyaM_wG4|-wbIpD$)kU_q^F8S`>l`H2$Eea(%~IS6>I@1LU8#n2DK*Wmo>H? zw{K|&p2}3^&LpTGuC7=3A6a@`jl zDI=&Sa%{?Nr9)Fe>GgL%bGqkBr#HAREzd&=}V z6fucUI{%o3ayB%Q?QH3z#Y8JzC`X_qGwsk~KTWHH3aZ;HfFCeU_6dcmP8;R%vY4_H zm8WX!dxM8YVZ=W*>^m5=aN;GM6?gFdIJUXQO?h}>4ueH*SiG)_FQJ&4Sos%Q4ct80 zaVW`g_sHDzq0@*(6Sq}amz06ViIQ}#JKz^(SPxoh;DUdPw{Y`Yj_=dFU;VIb9XD2T z4wy8*m>V|fge@A~`-3W7v1d*)>RN@$Ya5LEAkU8`VP{%={OyvyRr95YJdS2~?yaF! zCEF&ttJ(2&$jtiGyWp5Unk?y$|1Pe2!MlNXJ&x>&=kfv>J}xn$5N8(f%$B;7pp`Y^ z?~y&Wmhi#iN*}W_K5QA59R)|{{sFbBXwNKVib_!jL5LA$ zF7~_c;UEa=yN_dFnUlt873#3lVZpVlommAdCCUU zbaH-gr9u;91X<3TpaZu;%zx!C!cY(-IRE7@`9iHSuzpE<|I1&(&c(^Vk#_yHT>Kva z@BcQKXmUU!rOiOXlHjs&a4>ukEdEy|8#f07*Vo?vsYGG^|4B^J1k|9Bz&P2`cKE+h z{)cVx|0XwIHeJBb=!+1$8Xij;5b+aHJjlaScO4WIvjz0RcnxaM*#tE1i$Gz2yR|i; zlq?mMoU&PPMz-Otoc5izdSteKc22FrJdiW z9n|r&>A(6t0oRfbw`K8Xhii|Q)xb{Gl+C0A(PqysT{yr+E1n8BD5GwsQoBZp{cx&T zvb=lz-jU6p887~Mz4Un5{d@Vv)8lpe@lpU>`r-M2tV5yp_SSWYUvSddECbm+VCv0>KYHX-BmRZ%t4hs$g*p>mg_-!T@(tr zwuu;ozp~C>D)jg_b|4WD5(dlYKiXDmXdMTxG@EQ*&C~34)HAj>gB@2JQZwrNUxqt&*|3iS51je zf1~d^2v+~Pg9H^?A6scimRQRiCN4?g6SMTY4 zZ_Ssf^a0(et`&2T0BSTni~Y^Y;Kgl#c$U5-ss@>-JycjvnRcFt*Azw45*)pdtho=Z zN?A<}9L2@ibyis2Y4}Gh_K3a;9V5j;#cIt-Py%E``~dr_tO5Sf5Vx(f=t4w9HksHt z)@sDTR{ptZ$~){RzA!C!-aDV%TaaAh8%(F85g(f^8899gv%7Cn1bNQ3jBBRAk}rV? znQ##ebG|oQVYooNE=?lL4lcR^u@DryA;Pvbg@~fve~Zm5TiMVmD9i*jW)=)%OYk98ey(aW2Bei&Zuow!eK%IN4FaEfS_;!UqOan?%YMG&YsbiZMd zGv_O#1s0K3s<9UUmMPdA(bvPb+1U-ew~+6vXx@}U3!_}pOoAC~S%`!dWaHRo%!k-sEmm+LB>yRj_`7?~T`Aa*7vd591M0bjN z?Wc$eA&Jm;m%S0MLcae1h_=V;G89o-O2 zO>;*c#e3QWRf%kX_AeIY(iVY*EG-!eb@4^1iPc^hl%7%Wkrl3LRuob0Lj3qBJOqVO z$nCv;VOUUHZbZ0X4bo^Se3nIul4)rb61HMj&?WS614ET`RUsXcCy|>#^OL|g$D?}M zhEw@V_6h+XLy`TYOL?1M)?y1jdcc^mAxo%|X(gOw%JFAuuPnNA=qK($f1QbKNwVG0o6$gdEeRO=d>ko3PGb2TlzxTA~S^7u6 zV6W7^FbfOBYr=X~yn(hmhAyGeZ#iJUWb>q0LTKTlXfBpLoUlnOL_qtQm13`%h%Ik# z>3*sO!rX1cOL3~&XuFR54#uHA!7OMsE$iNP2^%#9o_WH{`)Ko8zn?ClL9pM0))l7= z9H)Y|*m4qNc$u3%mODsK!y}`KHp#MKtU(l?dgoxCyJ2w{6UG=)MM~*vaQm<(B%pU+ zD_Z|Oexjny80~k5GZb!dyX@iQSdlSTo1E307V}1&$8@Pb?8a5#I6r=ff&Y=0DiPz6 zFj|WP{9w||q-&`IjuR)=W!_N1Fsyzz^~~|z){Qk#k)UG;q)@gW_3btKGnwPHW1MUd zJt>M|r}^!VE}4HijrjTy0`n`_MycLhS$xioI`A&4j?5e8@WB}M6EcaZ3)s^jL8%x? zAkI-%d|B0;s_1F${T+IeC9@=>Eze{qqR99_Ra(cLzZ8q^6RI*4<%t|z-ap4vbo3Mx zmSu4`>>T+?_lQM(S>p!Ios27+U=Q=tB#L_MB=>Sh zKl62%uFQFpm(s+nD(U0!<$iR}x#_pliD;r9^3#kW>r+P@Y|e0StC`kK;rW_yRD7}H zp@h2iR>hu4xyY{j>Js~S9xCXr?G1A3+Ob_2p==gM{ zjl5@NkS=Kl#*EVbkxtjqolOD+jAzytvZgZEqIFex4vk3*Tm~+k>o-R~qd3FCr%IDf zmUG%DF0pt_7T%4|Fqbn`g1}cgPk*8VCRFYeHo&o&i3V6Z)mvRRD>m!jZ=RvYvX)~o zDi!(L$b0a^s_NyKDeGeT#*lA4$?JtBFZp{KX6_gC52-)1IM2%vU^^8xCxj~(2;SSu z%*tC9|B_orZgY-~sKwm(-{4e8bN}9aO?}s1p4*>Ah)lc zv2xv9Ca^ZR^@k8q8zr;wob{dd8l#P@Ll5I>hS?IegJDrlf5Ntx|5gP0u5{ zvX5a+w-5>WVeL!6_&_FXf;6cU?GR>}4+lUH9tz%2V7nnY=i`NZu%h|FY|G|CdnboB z2ja`&Rhg6He=QQ*JOz@-{hrdFqcZkB{>hn1^~&&zIl-+)8db}h&JVW%SiUpiDs=b` z?u577JW-&8+aS30+Vp9GGJ-!fxk2sX#er{QA$!pk{0Ow^=LlASQv_W|Pkdk8n`OSgIVA8!swF-YB3EoA8 zMcblnG#CxUB`}__vVltEz*>)?R)U*jFqj$plak_N8fqWkKa6+j9!GRZb!-<}4EN#; zq_dQm*GOnbu@mG*SWrk}Glp=lp@ZJmZpp+6)9ZYG3vxSct7TXda1#N}UhwK?ABEiB zz*+7s-DfRML-C9wk ziF(EwA1I*?9kV@DKw;T*9Rn)xrP*W5hZh)u-xike~-H*WcQJljG(a8aTBqpQYn&QG?U#{ptW2tNb#SFC{vz=?SOMO#$Om-zV;ykZ>OwYf4rC@w6Ybo?p`dCGbiuB;7t*og&XVDF|1)b7m&4e<0rSNaa8|04p8Mhhz2-31~IaW^Nuspn$zc!=1nCn=z_i?|xSSAVzZ750k*9i0Q6=L}#pJ=74 zES8_1WCxGDY4?g%{)a`Mw)j3YfF168QQV1qs(!I;{;$Fq;aol| zP2+bx&9=2S^ykcD=?p8W3&pL+ zLYvd{+?jh~d_P?sBBJ96@^#(zu7mcjc$^}g9?$U*oOI$S4s0sVl2PK>cNleK*{#)C zVf!^iKt2l@pI4nhN@YlEuW=0|V0>0Fg4r(w%v#B#P~cV!Fs1rV69&dy?lN zm(lsp-!4^*bO=~e+uzx0;MqLGd@SQ!p2nr(X#FmB=L{hGqk~LP=3rgWKRO!2opvDAwWCDl$cR)r9Ch3Tgr3UL;weF4c8p;3~m!rCc z15`wqwoxA2UiWD@p=;6f_s+=Leoeq$V*hxqrDS#a7BnhnK!%?91VW9Lc8NrsSof(L z^6^2upO_?`2Wvl9&~Qi2bEswiK*8X$S*q;o(RY2LvW?Uz>L0|6e!-Pe}iMeI;z@dDTt0jrFE?O)fV&vG2qht zte~4(Z$dCvW@sw&6%NqBWv5x z<~LcJ-TzZRH^UW9mCckeJNkaOo=N)fB<9PpXfm$u0Aq4fYt*AIjFZgiK6`EK2>27q z$(34T6Nc0&{IyMAns8KfOzR&h9bYc6_$ixAZX?WdH%IH|nLCS@B#~J4ia7MHwd3?; zhxB;vJTiEm@1_mk8QQX+0I=~w0dI>CSFIbTKp>jVTy?En4B%$#XK2w$pO9P|GKJ?v@B z$zVjdtSoE{++UhrR<{3uc39cC8Mwc^yZ_mwDeHY*q)Hn0e+quSyat$Q`Tx5T3iQh` z{AC4V<^FQzezgd(e{GnF*_gS%2&&E@khuSkUiZrT>v5skVM(xe{($MZU)23E-#1en+gH@$>V0m59RskXHUhrzxRUI?{+rB-rJj z6ixYd>-crl^q;r9f4f_o-Oq%X(U+eeIjzxdUp^te3&9ef7J`b>F(UgqI8qmP%Q`;mSr|-!c?tp`se?R2nf)f$geHv-+yb)Bv`t& zX%6b*s(h$jlzKxx7+f_X0&}kWS+gajo<|o-YKErVKR#_zcTwLvW|-=bJ>{x(vW~t%%~3SYODOR1Ib*CW^BmJdj+ZZTRU%Y zM}HZ)OF-Z4>OgO~*xB_V8G1D4OQ|PNE2c8P{F=9W0WLxfm!n>E!Fui5frpt|de8a2 zwO2C_OOP><_xv_dh;h=9G~Jg&W< z&E6Ze#`i{9_#^Z}qERxrgh2LtG$o(xQ9+1uBa(&;Y@T3ayXnelVvB`EuD7@sG!?kd zCknxxAB*PH>OPZE@v!|;$XTz}i!r`|2MQvlcP<7Y zxamK`Jqp$m%@m56fd0B2sfHyW_19miptS&@k9saR+3i!4sUv@iT>Hd9&Q=|ZnIH6bYOreH|se6Fn93;iLt6HMp6(+9930D6dzkLh(-i`G9=Tyg#T`_oz^% zH<1=Yf{`Gx)1>oyM=`?LuuQ8>(=|Zk;_v$UyHk%s-Uktc?NV=gsFX+m&5zIxt7omJ z*`;*KO!19?VI9#9QCJtjV&bL|@8#@}D651nQ|_ga(-P*)evCePaNvblYa_=4?)8SR zVG#4f?)Z>8+O2GirLts6e-16dSutOYrt&0rL=t<{!iby}j&RH)-m#kr(PtMD8A<|W zs0CuBVBcnvT!YSo0QVjk&<6L6aJz5+Ui(v5_mK3!CBMXcf9b|aH&BB4)pX*=lDq{C za3cNjD;MC#?t|2yt{8)Vv3HM^VkfT-`KwKjc-rDf_=!whz)#r%;%j3wox4a=nP^s| z1i3sq_!v(4dUv^Z!4R~ii>m8&WOeeZAggz7yb}_bzogkw?D+BtAamdObR`ylN%!iu^f7zr!w&hKU@5PV<++VD53DsPqnHo)Zr1V<1O1zN=zH#=H({o7wqF9aKQK zQ@z)LvRuUCQFa(WirlXZSq5vFDZ>@HW*x#`hI#pwN1yE*PBv?fb}|QocoLl<7t{bh zD21v4mfBn3DfkLo^h(A`F3wPFWllYtWZhqRCV6;l)s{hL0R-{(xu zrC{sEg7RtpXXR*#=2M z5p)sq9p+w0uL6QzZb~5!+s>38;#WrrxJ}zQ%(tuCJK~JPa1OI*)QEkO!O;a}zX)?& z;LL%Xn?yyU(OZEtooS5D&G z3~Vxws>iov8T-l11fFKNz&*afJPXYk|4@=W!e6xY(Pi2%s*UTgm>*{q4rNvoXLfCRghWX)buDz(1n#j%bqwK*y7 z0|mzh<@=^X57E;)tl;|c3ebe)TN&1pYuQ!ndoNpA;R`20^ng>Y+upnm`|U5Y9&IATR8Nv1~n+HpQ_l5d$()>3iA)tqSWnKWh}KHPKi zxha~rwiQO@{VscVZoj*lX{-XY;yNSsoojx>uH*;Q*iTH@ntuIA3q#0CNY2!dKhWph zoKm=8N`eer;spnXo|LJ=&uFtG)$J6Ee)-dA>Vh8V$@vVF6kq^UxO4Xp*k(yDQks5%O}l%K#Ob0}gd?hc%ApzAdVAe9jgrjn zH3Q=NitT=Osi2>TMdNVMzH}ZzZS#aq=eFvwJQ>t)SJZy#q#5tftc9fXqLPVB6H|LOpB5E+tUwFYmnlwu3O)hB})cGx)bLWpkAU6St7fmVRk zflJVsgrV>^Az>UQJ52V&^>!m9?u{d*Duds^E;lQ!gXnR0ibF1$R_h$RQl2=4Zg z|CdXBJn~yJt%|!u>)Jw5PeJDG2b=wqQP*7r{Ut!=&Wz(osswvSWz)kz#jK(dKrv%m z2=~RMEdCHz9TMWz{~H&J;8r&!>2CS}2Sz*bm@9_m2Wc(gZn|q9RfQA3W7oq~)2xU? zj;4rtmK^|D5e=uo8O$Ox%UA2-Qs2KS>S^{fy#iyT--jGYF$JM|vv`zNi;?`jo%uDt zcMLdiq1m8Non$MedE?NINyq(dJJR8D>XAHS?;ko4)Y2fO%U_jdWWgs1tF>ejz;>0* z_EJ-n%su63+MFj3Uh3|k)zHOfuZ1>5FUmZ~boaB+<|^MXX?zU%p{t#l9{NLGU9ni# zc805{o%7##SnCg%0XqnsE)M56=!(4iZd~BhUz;35@WS_R=+?$EtB!ByUZa#uN6CcL zXyl3RSd1JE=@~?^5h@<~5gdC3-h3&nyAW%NLo7p!CZ~nDn?gXaCT9-*fh8XeXreoD zt=eGzI5Vy$SSjox-L%}mtL|=E=cM|sj3sPaUaaG8>#NaF&VAJE@tMjdxapsAHccR) zfykp%etmqafP8}fATT1w7bZ+7KAusFDMFa_HPJy>YuZ)`?5~YD@T*_dE;43J4u$B6 zd~Nbigh5bsbAr9Di$CsgFLSjMrb?}`OvYg1)ws`(_t27; zCeDGNmzG-Nl|&$BV>*ymXEMTz?K{=c>(*ehtbnike?U|;F&GSGiaM{X^uSobv%a7pzhro-WM`XW~X6!1>20+*^e!H?|s8?^f&r#p2Cn*s|_b3bQ}ch$oXVK#NkN-n}Ew4=6gUG5I;%XG);T#Te7sS z>2oSt^~-t$xmBK5cxisdoxD{iP)28KA71-R?_eHdDG>_LV( zf6Os!D?#5K8ZYzDAXs$wgYKSeSC}E70}ZZSrWoo)D!a*1mHCGe$+4JZuY;y&xrO72 zk-}?>x7dA@20J0hBP4$7=Mj33Or=B!a^@8dH}aqudCeaWgWJ|*j+OGVP_J#|<}9QR zyEGR?{HJ=HYNl0~L!iF;FTXLS6w~lOJa-2OLLN#lE{LAcm2`Xk=Sh8o0W=oh2JB`y zu5x@Oq0)fXYHP19-53Y?-K@e0{=3~JZiiS_LLfs~N~c6r1=3UUwYZo zS{8SLOqNmgWsU7GR5C4%p$l^Hc=L6nY(HEud*Nh^50x#L1|mC|rLI zw_~2w1#g7YZugCM@KVp3K`#Z8xcMFH>mNY!KnHdray8J$z4TwRT^wtoxSQEuekHYv zTlIS~HU>zd`{tnQBLqmWnjrRNGvfHHCI;y7*%fJ`aNsH$E9gLPC~;(KKBi?1<~Qw} z3sig)rpLy(1S&aw1qBC85K_dTse4nOILjoH*vbp$F(5;*(r8}C)dxOU zzMO6~tJ~cVt^3GeXGK$qIPU3j-tf7#)bHNBxyCXObA?r)hiP~CtiIiMOfSbuHZMo} zb1xd&iSBV<(p6N`%QK0D>5;;Itmzzt^&QzYZLGN$09?bFH_i2@+#hnV%T=0AVX?~t z2*$Rb0Zk+xs)(g6Vs1vXyJXtBUXh7j@C_-HyhLpI(Zu)p5Ki zOoV12SrMRajGg$_%qEPEy*+14d!#9Wg9PG6M+`_#QJ@HlG%l^KJisg=J}Q;_`j9j7 zh%$}7+TIY#5f`7ll_4(6h1fuP2c9s>lQ`pWRwxEMItiP<>5z(HSo9IR|9={&wj9?vPy@c)K*EkK3?|y>jL}r((25t==P4#GG zt)K4}VTEEcqB5JJqqyT+Ft+r6U;So^#Zy}KBGob9+>s+szrFQlnfa|?KXNr^yxA}b_~O=63VqKh}j z%>n%0X(Ao+&!+)1Z#UQ8&yTm4g+UsgXIh@m=~GR?p!}mU!!1e6T9-Hn$c#>aJP|xhBb$dGxH@yb$w3t}1h#t<& zyV`HWSq~(ng^J(8b02$Z(8wt`ZKS&Xe9BjXR#8Z4SBb@G2z(_zN5kzai)p-8$swIS zJr5J4lfvUbC@);z$y{elk{{bHtzL5m!Q_k6(l$IIN+*pb`^WNpHUsA@L36-5+oVTV zX^K(J#W~u0!)72|SHk)3fmrootC_gynaxwdFqe)vYpaqvCS`@LUYXcY_R;<`4;+c< z@xy(kUNOe@U;A?my7^Y@$uSM?!fzx{J}H$4R}}5QpYZV1Qn{D)q%qz1f6|UZz8#R#z#%j@qN>GdmS|&^jS=j13!f*TUUJI6ijjG@r+H_qIXo(;KV#d5N8~zl+!J~V znGMhYR%}z~+p~3{=S7N#8Bvw9YE}a?W=>j)oWzS&P8~rU!etQTxZbtDJ)+wYsM*k@ z=~#M1p!^#Z4RCrlB5`d~T8yAd?gbjPA(gn(EmtBJ0v~ZKQxcGzeV&RnSu{+K-D~gIwSU_xIkDN?xe2(FbuY=q<$@lFc~b|$j9w;<2oI8UbbgW zW%*lfF%bIY#Q}_)UJoG)$>w|WaD|#SOVZRfLwPh;Meu{%RB+2qan(6QP!5>uPi?%! zyy+mK=GXGLMXvomgy5BQi6O$?kc3TZvffa)b}r%+tA8`}YaP&K#@a_=SMfSvqNR~Q zP@7+zz(2u(Dh`CsXsJ(kx5%l^M!vb_5dZcPZ$!cw;ZXaJ#fu-#40Ek)x!xyCOYdG) z3eFFI|K)f6Vdte*N_B>Lw+s>a2pc{ch$;rB-M#bggV4gQPvGBwM>sF_un?td0G=XD z=N28DwTTq&-uNLy`+gL?{oVNL+?qWAcK__-|M8PZP*>MWzCiWkO%`oTi}yIf4{Iy2 z{t?j&(Sj^@$be#Z<`1U#(3djw>C>^)$=Y#CX4^ka*l6E~`-tB0%u$c*tloM%4;j|F zwt03A9cAXPb)OaT8oUBNKme={{Dk+H3KK9>I1Xj46??Ah&4b~$AW<3P`c)DG$R5jl z>umBApr{&?_N_^ig@Ba4(1=Um{r5zo#&i(DCjd)qRkL_H8GtBij#~!lKYp};mnPDB zIObcl;li5kgk=%%KiGQ5*xtIR-FvsYwr$(pwQbwB-QD(I+qS!F+qP}nw%*>)lf20} zIbT+0vNGpf$r@kA7{75{bN0@#by#aMFI8KMr?q@a`gNNp>oRJO|5ojxs zW-_y+va%WcPB(8oC?v9zLrV`hmwUIGvgNjp# z3SW;n6zVk95k^f+BV(b6bTAJpr~Sv+n_{W3<=NC}i0m#IC zK9fZ4`RC)KbGPTw6{IbkYU2tG9SJks}7bjEnk=2Y-xs7nYM9N3=q>W1E<$O^H=k z&drbV223N*Jn-SE9xt(NrMKCc!Oo(4Xf$cl7;o0nBa`0^<{G zHf4rQYN!pSfe5FqiZ|8L;a&um(P%#++2m4*)$`Q$&TrYmTc1Q)B+$_j+Ikr{NO1Fo z#>ghHOMsxkR?~enrI9na_RJ)C=b)1Z#8MqQ5$NINDAKN+o=(2rtCJNp;q-1HA>&&+ zwf}qZ3UL84e}&AyCmg(80&sRcY6O7LN_=M)iz7rE(G(9sKw?rc{8j_EmL=+zi_iZs zz>=1JC(3H`PP6wn@TJSO=TwCCUFcgn^i;6~6Xsd`C+czz%S*81r#^}aE;XXaEY`V< z8eHhNl&w^^obX*Tb$vJ>6{19+-CzIaSv6A7x( zNdEFp>m$*DLMAoRz=cFEzrNQubju70OJZ9@^cb^kZ*Kc@EYp%5Q{6zZ$KpmVE`~x1 z5Z>i_Rb1JOW6B59RvT188{XfQz>8FFT-h_^jA{dz`pbH1AWcDe>kKB9wd=iTD@0Pen>Y z1Ui)S24)norNy4R3`n2Kq-<5mhWpW9I(6qcpUPN~xf_-hMEoL!s=)c{W)DT7bbBh~ zTnc48Bu$n&E;X{T0m1VdTnp{#frCAx!f8<0BT-C=sU}ha=_-84VE!KvtGFLd^{>gK_ z*i=UTj~ZuRzq_~y?y7@4lvxxJ^^N#;9FneCW1?RI3jl3cv{iNc7!=J_?27-PrgOGf zjg|8`gbby_6Bz79p33cqRj9hR27D3k<=eNrXe`_jpa&$~u5iAto-3VBZ)K|p+=gw= zyFK?|?~ecnfQkh>pcF5$7PQ75oj`OvsR$I?{EgVL zENH8R(p+M#|-VOo$ zusyf5Tqz65i|om7{O&R(t@aEyv(C={f?Qs10(x0B3cR!WSY%B^r=8x_o7=3hw*Y_P zoZju48wt!QgZ))?NQcO`4+~+M7-eky+Uhiw+v>ufiM)pKkTiy`N`Ffh3-@JV2s=OT z8MHw1<7=Uo_dh0hH123703jYolpW3zD*0wE#VU9`DURvY#IL5nOh*eI|Kb)U9*}u?X2Ff<95c8}8E6{? zbhns!InxF|tq7)0e?{Hb9R`^t#Yn+{0*-(&h3mpCN6R7=thL{u!4xM+F-Y-Z%$!Th zSVBTxICL;_$-Sj^#tNfSS#XDro#*{lQ*nRkQMpxMe?LRucvwF~FMnpWB9|XxA}*}g z@Lvr`7dp3CK`$6Tle%Mua{UYuS!(5Ppne4ucS;cb$}4tf6cYCymMTPyW%>%p0K6Tu z&2Dj`(SZQ*3-)D(iTC2y-}|uzeToK{x@VYqWEN}leP`HKzy*&5=`TkCUfVm9;Un4VDi0JyU;E#w zpY;}Ko|f$wP1FX|VD&Dm1AiwogNjrcq*2;?nM(t8f0M+pfF`3gQmz>4ji5Ltb8;zR z&>DqN9^eRJC}I3uROR4_ugcI3PcF)+_wf7UMb924nU)~hztd^Rozcqzp#5?)*nN1D zB!EN!=7s8)5S+PB5m3z?HGjtLbx5OT;k9b02c<`o;_`w;YlPUPUUhcEI?}Gb`S4PP z9%nlhpRA}Jl%)a#>$mWZg5wXHr!SWm<49Du@A_l|@% z;=rF?DE`4*c9GvX^isJ5Ab{gr1qVMACrrYOc7>TiF$1`}kYk@d^1tGlP6`l#q&w!IA2&O8fZKc1sIRR#%R>W5TlAlg=zJRz9-%nAH?@Z zXk9hrz~)Vz&-jwJOx{2l$HZ-oO0I=)`hW~0YZllFlKnQNl&O6HAwb=KK5ICV& z5ByRR$5Eg!q3e`Bq? zBBJuE?N!KbdnhK1UO|@>8so=e(j6kw2Ae~W+5#m3k>Yj%j57W5IMcAfQM#pkl@8=? z6vGve)2TD9=4mX5Mz05rGGHC5W(1qIn!no%=|~1Q-8ee_z+w+5?nAw<=n~vNkaTK-XZ0L zNI(x@VhZ&X@IG|bi{~KS-$Hr9o({vApZ*@QiY#iZ6ixs0`O>T{3u3AHVq#7>E0c;X z`N_7FS&eWp`Ds1fNxl6ncKNG|A}jCf&_=RbWX$&LUAKt>>7x@Xq7dx?*Rj3StqRn8 z+R9uqlHx`ROzojkNsi5zLvd)v=I!sfdCC`jyoPb!|Ds455>SMgKZ-qUZ2#du|AW}D z|Dj`K`(G|8#g7&U>;GB6NQw3O4+r{_K$wP)!OY0=pHwm{)Bj*V%s+Gv+m8v?4~=6N z0EYAbLp^Lv|Is<9DJ2sSuqm-xP(+wN5EA3hwx8Yq!8<>LYd`n?&msSB8i;1{hXz8| zh9bmZ`GKYwe`uipZesqSkeKNhe{djHwgmoT9E2a;Wd;I8dUXv=f}dl5@TXb?VC3Jd zEKDhJ|AQvUfno#L*%b9-ZX}7+2 zW#J@eTUF&Y-L0e3&1+ZXLx(qBWxbgR!-#*#|kXGcZMic}H`HREpvXh{^% z%>IUZI@BNuDz9GSYJJ0W`uE&^SA1;uZ7vEVOVjK|@ju%Ok$1}On>GXI% z+Ql9wSx`&`2@0D~R3BOZv7jN!rmTH$4Kr)Q=OMPZKjYx)j#gMo%{K@UANvAoGAF-mrm) zdl%$Omuxe{cS-3S|S(BYJsWt+!6ZBJ;z}zFYevsUFV@5^?%0 z1d37R3%Q*ho`mi5=gwt@7>yn~JyXWQ)p-&dIFj9HZXHaIVG?#?lo?J06lK<|5V_xw z7qlb)6$}z5B#s#;vA94}5~qXFRxB1QZ(w@V-5=+3b1Ucmg!)NDc@hMsbXudE4OG^@ z%wSZb@$=?rZb()l^^q1Srv4kFIVx1Zg?L~$!>p!4hc#@1j0l=hNSC#EX~Jm}i9Q|BnPe7@ zB+_J(4c`))QSPXEjrgWt@S~3nZ8Q?baoVQhL?9CJS(?fSK*Ct2JW>h*?6YO_t+jsD zG*l37sJ^l(8kQQek#i!T_r6o68e>FW!H3q)tEe@J0B3^=WWvBbkHjpDbKzfkLl#-2 zLF*#9q?x%zQc%e|bP;Wrw3Z?GO+1z^Nx|};n~*yC2$)&8%j%{lP0bY(1UlwRhZoR) zmM$ULnin%YX1g+jfYoKhx4ZnKiFJDV0z(yT&%dp+3v9N~H#aNkw*6qJQlRO33V$3T zIN*OL0!GkN@Cu<@+U5cn7ct=@B{xbUY`HWQ>j#A{aQ8oGKQ-T4ywQ2OOx0cm$e_pJ ziBb@+6AHVpl?@E)W!sVZ6R7x6Z1nU_s1RT3t7JARgKS&3^`XC7Xm@h3G&PnLWS|y8 z=TwBoBwgr3&&rDJa@B;c+_11}?%}9$X%z-x0T(4_SSng6&F`u*EUE&oH#yn{v%;|d z^3j0@EU?UK2b{>W?kQw1f8VN*u{)2oY@%DS6|K3hKNKsfT87wL1FtQoq#@a&_;{yP z>*f?A>3Husc|(p|5^()V`JjvDyK$SZh0}?^8Di4fz)I{_lk2xwLI=N^7fCO8J)QLw z1L&E6+f+7qc3(HZ^alrcRMko}^4Xm=U0`G9(-bgOI$^M2Nd_FRE&Xjo^Vz&w2rOIg z$Ah+5h00+;$drj{{d^{H$BuiZLi%$q3&tc_<@1L}7*o?q_3~;l`&O)x(i<)aNrD!W z_YkB{u)4sWgZ}qdtc>W(n5{my1JmjI3E(v2_e5yW{SlF&QmOZyKjM*+ht##l4Eth- zjUP%P@Ey6Uo?R`{4x5qGv52)^1IL(Q-l`IYWhc_ktB0EeG;#nD2lj*7aT2{)&+;ra4~Z!F3P%Q?QO6r;esD+rZbj4D zmJ$xrBGUkL5$nkzF~0CvD|$w8=$qG0daHRh+B#GPZiRQSl*m=`85WCGeRGR>NR*g zBQ%m%B;uyb1Va6lJ#vB2R+npqX(;=jM$C?NbN^U^07O4C<<`K~AS5G2^vl>Vn~+yg z0|aBbW5(MV+mKj{XgNk)T;=*QnZjn9vep8Fqd6+7D_p5^ut)DO!4pO>E5LdzIV#WR z6U~k0c>Dx(1Tb8JtSjR#B7C@!b#r@4o##MjA(VxRB6siEkyg%C;Zl~|zt)(;K>ZOEjNJ$xL%4TS2(1VDBT9iU1_{>!OPsuWzWKx=M!W(iXr39J1O7s8j0;XZzi^H zZSymZ8rVUdM&>{0I~sbDw2uYLChn1JO-n?-V+=IU2hBb(I?}-eoB?zU&NhExDzWop zhRDQ)kY)ora`podY$J|UsA6H{ix<&pi&f7l)1F)w4L%F%dMVixQHg4hK6iqC{Q3}r z<`;~^yoU9rTxHp0fZ z8S`<@1!TvAA-}uuyn36v4sfWoB4i8L;Mq~uGG3wcHy1=Q1jWwaZs7U}W*>mb6#rTU zUu=oUnBXh37IOVm; z%#%VqrvY^jpofH_*&o7F5RJP|a*h+p!!UEP^VqSicVt%P>_qcHh-ngjKN61NBS$L* zM0Kn;E1@{<5fqMpEhj7AZkTD0_xPf5cI7)Y!d~Zk#{lyqFe~!e>sR6LNBQ-$t96ah z-)*a8cPr7xTfY<12J{4=vfozF-G_yRFxI^cm}PIg*YitFA`fQHEIr*BEooE%ryCHVm>S5|GNaM5cR z!CYg}LIUVwef+|_Zwcqr$c0}FAqebC9$KzAD(>chNSUIuO-;BehE;;TlY)J&q+M%h z0ymnlB(=t=Jht9jd}Fv`A%MOKci?swWfs;N6kv zxhk_dc2Fgo?)E5=5oMBbm5X)L>nX;IOHk;X)Y&;U5Zj#qGLP>k2TGbm2!ya23&BBhna+U}w!sZMhXExog42P>GMBld;nwzU_FiMa6Uia7>-?jA51%>J7p^ge8vl^gySb$8}rJW#u(p6B1i>Dn9J zYpgDpK<>FB-)MVb(%VTJpze?XzAz8Hnj2~v&+EKG^vy>vKh8%EVVw7xW%=^zo;K)V-&>h068KwMohbR3 z@(;2g4Z&phB=%;C)`fibsCcE`QH;NtGHJiNu`-`jUf+G>LsSQ;ODl}UQ~X$X<^hst z$2WcQ*}{?Q`D^lM3`AAg2%1I_T%Q!V0Lq{;J=YZ1Kpxs*3P@gmutTNYjr{l`G?9c8 zVJ15mo~i7gZ=EcyD>Lz#idT{zooxN=W*H^U*3^j_T-Pa2d=Fns;~~ST{-gLoI!QXd zt7K+D@0NF-!7cp^n8oT-}Y&GdR@^(3JYRL(Tq{&mz9=lT-j){H(C^T&Tnf)sFuV>qru&UwtHOp-

1^pnF^*zZxl)SDu3Q`b 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%0A=#e(nXMcITx*DIJ+uzkjP-%Jb!e^& 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%0AxoEBH{p3{V}r+Xcbcc2{e_`m0^c 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 z�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

W#xzU8U7_U)ImKqzDejZRe>xiymc~w9<}8; z0*a%`GMIy(X|6v0Ae%>aELa*KZA~pwk@?S;Hh67Ks!ZILX69Kn!v#pq=oi!mcZE|^ z$5y<{b0F6_6bMUd%!dsF$m4L>8*cf_)dcZ|YhQGhK3&#@9|Ej^)fJYs?HRG8!E~f( z*;}EPkWE*NaGc5#xKq>w&_Pp-9M7aQ!iHr@w;c-NRgGbDZx^IDN%ybQm1m?5>)H$? z&b|J3!gww2f5@AhMqC*?$Kie{wgQANL1J2w2-yCNJ_ z{vj}1d^3R_37*aH89jDE6UO|{rWT zt_X`xD=;14U!-ey2^ISH>->~x&^ZBd`hvwtF{E<8KM>ndYWB0tHE)3%dL2z}0`4Ug z{8!J!Y~F~KFqXkZAagSR;TN6aqtl`oMTYr^T4$v-4-vP8*4d>sAKkCkp$}GJKRM>) zY?dahNi`7W`e`sL0le-e*ha13Z3_6Ok)9Q0)_46!6K{V zKKVfaq{JfY5hAIT>KPA-R_9oP3y7eBsYFZOne1xK*eHouqe~i8yB=8>v1!ut*S@MAlBmvdW3x zeUf9d7y>z0i!*o zn$VipubG>{Li)V&BNXYT1)##BgK)6_XD(c}-<6n+9stVQ&b`~+n~|gXZPbv> z11COpv|ROX#EBF4i?LV!`aNj(j;W z8KPBYXG@Rli`U_|`P8w^Mo2jXQMPF;g&4CQB}l>%Z5nQV?6s1ehp>rr&QauDjcYUM zdQ<*_nzLHE(?Anob~4a%`T1uO{E@$KrA?iERq}d$<8mYO1l%TLZELx;SGo?LISD>5 zw=q`=Qd7RP%5%l}jAQW(LAzh;YpliK&#sepfg9~0A^IWelx$0VBL5$ocj=WTphEKn z$bNBp^hcpG{ksZ9XeKZNMTP-i!5p)r05g_SgI2fc85U*0*(c+L8dJalb=8fH;74~UWu@lHogrGf$XlfwSIO)b+keXOSreZRZ=)4*Q zzc^r)0P$QvDp4dfOY6hT3Klali9STe#f z6rvZywqPEbKAMYks)e2qCWB4jPF!4)hAA>J#vc^$I%G+n-6kqY&?QjC#e_%F@9+R! z?vNX7KByQHT682MK4z>zi9J@wO5AMI=EM7|v*ifMzEOc8h@BTXQiY`(WN=vs`uH1?@!=DNJ1)Oh$Z^pSr~-A=M4 z#dNi@j8=RqAQcn~oLLL;>2ZLD{HpNoojeWT7H;7YPG{rZisvqS*hpjL#6VkAtjuUv zNx~*p{qQ@3(?G$lH@FkZU0F0F$`ps)@kJ4c189-yDpg=f)v+7DP=RrS#6%Y~ai%+5Xx^aWnT(j%*&#kJ4wL%ry zSPhm0#=6U{D@;0{N(5?ZGuUNS@}OjGE&>rbmp1nS)8Px2&zwFY=zOZg0HNQ$&?P+{ zBlo4xhY60Ei$XhaC{Q@ow!%KXut)%UgEUf*?zIoZ{w{f43+3B6wfE2EtjMme&>rx1 zuQA(LM8H|HIBzB(xv8Y8rAQ;NHU}3K#M_4c2|U68Us)$P8q(BnnfPWD=?;w5vf^*! z)~tmx3WWNaMt|4}*s zk&d7Qi&f|yB87=VGYk=e!L0>&jvK**Fre2JPKE$!)ZD4feAx?EI!09rB&YM&QDnw& z{vi>Qnm}#gTJ9ipXf(@6;mfC#Wl4$p%DfbN#m4Wp$C03OIP=034T|qaDoEnXr4%h5 zaB9>~fb{_e*R8woOvx@Ia20ykA2{o^`PI{mp3VGlFNm>aBl!pBq$m>Lh^glkA^fN4 zLrVenrxUDG=pnnB=1^{5;3U1aI^ep#c6!qveKlqc(RBm^<$P3V=_gt1sZ*PVTIRq# z54%`mqijU4%Wz+|szFiBrdQ`TE?&w}m4Gd@==Mcb;WA!FFOS)^(OJS$Ss@;lE6b2m zvv-U+NR@24$|S6#>}Cfjja5{Vj-%04rmE8?xi;*~$>ii@?Ye-Kqz3M&gcm7E3%Z}v zMDqkwB7@<~v2n)oQ{J&bar+FxoWit`x-0sgB3QT2tg_e8t0fOb=poCqFo@oDuUM1_ zr&!9#RcYb*suzP%<)a-!F0}m>am7)E&*zfuE5Ccre_FfMVweQ9=Z4wi6j$oTB#C~2 zjr5TNQr)#?r8sG-ZyK+|;lI`q!rsZ2-J=3mkgF+SG6h->0T=h%-fYx=JIr){W|k*I zOKbv?mx7T%cR2}%zgIL(C)xaQ6CF6Y<~NJvIF9icB#G>ZS((TZAoRqs0#^NVP2HI; z^ba|3Y5sQuW18C^Sfn(Wfu9z8-xN@6022oj(|;Yu+M9N`9Z0?y`GC{048lT>KGH03 zpLs4l5gZcqPvXlU+L#<*oIL+#8n@~X&_>`J31d3~Sl zT7F$!`ziuI4&R1tJ>73_S7qH?y{+wUFRwd~J}zJPCr@8*K#T6~_PpIXP= z{F!{U)9~5(!QvfK73HU4%6_nuCRRoG-tx%b*KoDGyFB(W@w6zbH*43shr4;KExnwa zzDhaqQa{hO?H$`vGkc1oKZs-0HBe0p@*0Xl;Gj*l^cXS^29vjZ1EhxBFK^nF2{_oZ zs3dBu?3X=i0F6SEbFCY1*LV0HKETtnt7uXCxuFhL3xkPix%Ht}2Zui0vC)I0=K*@v zafF_a?)ixP6iSDO|Ezr)g^^>AF1`HHfnCMs zlVk>@&AYS&N{2rYCU-4AfG+MSR<5cXQWbXgULce@KwTQeXx6_g9Ir-*umRsu^otF& zEB+0>_t`%;gmCO%t9hTRx58H+bMUgoF*&Az3gB)Ih1ks3sTA42uMLB3_1ZZM$sdcw z%ww9ZFn_6bcmN4TsN4bl`)e-^OddXh_M87-eQ4jRrk*9kz=+(=ge6OH%}BsrD_1(2m)EGva**avDm=rfFfQnr(laexYc zD{_F^!77~7=$olf7N9*_Bo~&xQMuT^bfQ?cE@8QBX>bB?UOww*P1!n_5e6-NIwA9m z>f7cq!?GfhxsT`IJa+Xk`1|cts*ZXV?9Sebr+3Pi;(pC zvqEHopA{k#{H*Yx$u~3pH9*^5tv#@}T7vFP_tz_~>xn^0xS&cPAGmMLJ3I{BaW`jJ zKD~n}{(B*CE`)D`_VMY|izTkFa2o?axz5KW55zwd3jNT62`hZsBp>c3;^P_Jx)6uu zw(X%)0uprda_)lP1o9I~5!>nmd+Kd)GDq`3#6}dU0X3CL_+ppc(;8Uoc**pSy{_E`*ZW+i&#$3n5Nb0=NL!{s#g)+BiB=ZtuUy?ZH68RpWc=?td z==I`cIPBX?nFbv!H9g>ri4kRZX5FH6DYDeYMB&!IQ_MYg|6qGCk}n@R%ig#o%wafs zmJ=#{(i9SWMmZ>Fwh8@E!|I(JT>^M%P5a8EF;Mf^v?h-iZ3y_tO6s*S<*f@dFcoI3 z>)SCQEbo9?odU`sZvLWc(_R?xCNoa2oNSS;h*Thyj8TeSipzE#a9m=u=r;D`*8wu7 z)`pPP{fc8G62MCZW+-QLhxzYc8@pb_yKNjRc?e<2$zQPFq}Str;;_@QEz%emtKtq9 z5OtY+sokkXZ6*WL4e4*}7hTEWP{O@}iPlT6713SVJTMugS|#(7&Oh zO5-Z{h0apnVF-fy5h-^wm4NnEm+$7w_y@@7)XA=uIS{?tMJOSApVL@aR75f-h0rmh z4=hVU9;kIy0vz~JlIAGpnL?SpSV z70(FmKuz*OGs<&AmBJy)V8mLJz=Q=*VOAWsC$uokvT)eM5suE3a26skv$|bhJ{M}j z#L_X3@(_^G)!wR3grZPk1+IM7}R0ti{3ch?47n*rrI{$oB1#vdst1+e>3of z3WH6*Ny4dCs4g@irKv`6S1b=TS7-GSJA(U(W0p51x=7FF1{4wfoqaqcVFT=NdArMD z=UzE%QTt(E5tuju_gX*=o|%mXd?HmPv_6Tln(bRM70Q(}0uk&z!~Edq94xYP)?j~= zl`w!vWOxMl&g;WRN=$n%Ga7s0H|-^bF)RD?kVU$5(iQX=d(!CnUCGTvrNZ zuw+9;?JyK#T^+;@&{vA=f36T*zRu||Calfa^H|er{l5&s<_i~4i#;`tMI0GW=lO+y zB>jOF9!mHTaQZUTw)Mac=@JBgBUK&&!R0|PMzY1SO7uUD`T&ao`29?WE1vTy;tc+0 zG#Q0JTnRvFe%4wrva5i;BM}SEuQBnzZ>WAcP2(92>9 z>*-qaMun)~bv64k0{H06MOYzlF|BIlAF z5)<8#yJ6qM4(|Fx`&tpNph1y(}XD!p2i>zb!GY!Mv{0-uMH$xC#|ORq1MF)-8puOmIKD12^7m< zrAB*POqY*3e!BN~Qr#r}d;>*k(u4qF;8xMonCzQ6`KGrv6%tpm#@fnp$s*-e_u*0p z-DO8Sw|~(5tFL2)D7|cB=NJ@r=b(q1%O_e~&eGyMIk0oEhK4(43PR^T$J zcztfCPuu|vdQ1POV7AW-{!=hxU}60K1LqnoTYGFy#DDly--i6xxxt!!o9;bQp1jA! zDvBuEY2^eKgjC32BIQe`F5h2f-Lwts;FsX4QUSWN(RrR`JjPvsR*l#^NcpMD#j=0v zPMjX^jM!#zUt#N?+TZ)WeCNBr^hWD~jy;~=-<;h5ex3OznXV+-mf2zM=)Tf>TMXBfGDJs zrei0zZBy}@OifwZnPk!>s4^}Z$q6dVAGnM12yeWQY))XF!#-iF`Td3;|w8dDxR zZ_+FPomd~8ck%)0ldU_DzwTD`@2i0qEP?dPaL<>o%A-mzrOLmLQ624weo6-a53|r8 zH;YFrr)1<>gUUG?S*kIK@_tAV269Evh!YDxJ=JSj2{T$EbvfRdNO|8*LBMbmO zRz7uWwd$NYC=qhkJN$aSu%} zBGj(_Vwd6#D^4oxrCS8GSIq*q{bB6#1O;RFimyX*F5QCe?U%TiY7e!48!b6&P+Ksx z@Fq-Xy)h#dX9T3q~UM3jR1U2Z<%4r!nfg=l}u7ZLWF;2oerBoSFVA{70kctXM67d~XS~DMdrf;QNR>rfW#QtQ7#P=fKL@SDX%p zrf=>rk`hKM|EPKuO^uWrl{PK~qECV0mB?OaUt& zORFcWjyknY;Ze^6Io#>c8 z-={V!q8})=L=sRI4*k%e)dVs^eKd5bFuC_&^bRBqi9Bnt3QGVN=#rksP(&E4MnzKh8_K_1F?~ThC$X;&@k@-=CURXA1u31(1Q=Y zIz|2}ns6&w&n}niyPiEG*cGIN1Mq;&+1z_n`n_5$>!o7P0LHCn&Mnwn&YYgTsatud za}@I7Ph{@(6*3aXUl`a){$)RUc(_3D0>1L@fhg(69!4JJDCs3@7kHOoyVg0A;mRqoBHX@6+4M60*@ z`^t>)`X#7*d#K=lKsmnfZa|Of_fVoq_HyQsuS{DWX>Vn_NEcRh)pnknxbwU?g5m`~ zqx16i)g%CKW0(3`Vc2ofXU7U(n0ax&(Hhf$6%Rf^QNmO5ywOE9K3o3#yAc=OduWqk zg16zk@-dusj=vS~HCgDRc&F;CwD5!B1DO>Yv>F7b02?OyUA%%`pgV}g%FM_OYGjX0 zZy$$fa`N=OTnmMoE!L= zo73Ky-qE1TPIOEfm+critc>aoS)AeC@40Dj`75SO(e0N&7KX2T2CchP2?1l2} zbv|IO!}@jmD!zuKW+WOXx_c0~FBRM*GNj8ju#kL{l)(@$$QQb;%FNZ35j=X0PZk2* zqSH5bhMTVe1BLN4#!5$aAjV0(!r-K>+?%iX;pshap_3$HDk-suSYF>qs}K=ekgVm3 zWqA33dh4dUE{ZB`(oK%?yfxGjYlfN1lo~5OWBr}lN=4lF6H6hA#>GG~NZ}jw=IYh& zKT!fl8sp{<1(}hR?Z0eAmo;_mH`!2q5#qo5#m@wrU#T1~V2Wk6iZ%QTpR`vX>0OyX z9WObl=l*?cOG~j?PQg=k4Tbg#&_<=5Bx%6{djaRP|!;od}_^^IY*@_*F zI!>E^9dqJ(=kQGDmCal~ID4|b{|mUM^JM1Z$LTR1Rw$Zy{r4H2fcy`$f`hJuG(|$ z7k_;Jd-X&{1zP*`d$qcHfV4tt(a|?cch)(Bj^IJabWz9jp}YKwU*40b(QM%ed~uz2 zb-l3b70Z6We)qm`Qtft8R}Zu6R98=;9m|Gy@YquC^fHa^#w*C*SuO=Cz;m3RGpLfTK{${NEo2383qp}7y^X5Ck|`eU{k1*mM!E1iI1z2AzE4ODogX$ z!~vXhm~4u+ObeD&Tn%D$k#{JnV}eaB3q=CWUrhgDNj=OlC-xU2jK;QBCV^7F-9$}f zH&hqUQ|97GMWtTw;OwGv>D*0+b3yDJ(qgPD0s%z<6u2Jfz)x>al zLz@n^rWy6=5J0oVEacgO_IiQBI=CLmOMI$etw}++2$3QqrU9gYKzlB0b!WQ;VZS#) z+HSa%5sL#!u#gC`NJfmN$8?dhKd;ocJHr2chanu|q2?Zs0G{IX&<)u`sQmFaN@*!X zj1oRTy@1(6 z1+p!6mx@pnOjE%DJfNbv$fj`Wf$O@~JaM4$a0IE|+5*;|jE`Q%8jZgSX@uSUGHuvF z`~D3LtTVfBlBCPhkK<$zrxz!NgdTz`x3=TbVal|tx`GV++zb9-+uq!u>fS*$vmIR5 z&4zLm<*TQ7Dglf-CUbVkd-ds8TBCLR z3TPBH0Suks_?X>la?&c|l@6c0P>}yX7dL zTDL~(vc}dKXIgP}-3?K!1^AD(&-G!=HS`?-NNF_q{r{XJ1I{2n*(U3M+vNQ(zTN^X zj%Vo?Cb&azcMtBKK=2I&cXtUI+y)XPxGxC=2<|S66C6T-;K7#Q&IWh*mj5~Lz4yHD zz2Ec9_I6KoS5;Sc|7NylwrUjq*IUMs=TCpV{h3eQue!oBJdqS)^Hvyhf+OanP7H6r z_yaOoXw-+iyG!kJizPn&V%mN^}Q{}PJNx1_nvOehNGm9 z?d>I~Rb3fd`#iS+E37kTb9)Elw*jo?b>d=DRk*_6 z#SE)-N80G+xX{U|u=466Fsd0pMGI6RzcLBTL3c{#p7K_)XEAMzQ7yy4p>T}@%%QV5 z&_F#uThHC)odB=D#2wO74=1H-u);bZ!cAL z)G*^iL+h8ZJL~z*`$!rdlv;Fi!DeKIsJB|-?Mbok^atq^GjvI{P+k!uXoY~Daif$V zY%pU)plC@q>W>uS-k0H(_LZD}3tdupms2MufRP2{AjwjSW#=f;xGs`P1KoNwfZ@_w z+ux#R5v!$DmD7TR#wjwqq#kuUM3hRFupe%AZUG+%348B?6})qbTOV5Wnfpe=a#8rB zEQV!=n)3)NzAxPl{9RbPASxD)5R>ji3EqDD_IvgySvVx)8})F}dp^d3zF)hk87)3G z^#aXOU!tNcxZfV-9Pd(pS^;JjU?1KGTnCJ$j(p0kA4ZzGFxfRWTFM@u9^lO_zKYT| zk#o1=xcY>>Pc6W0=j7%A?i-%>WgGC+p5@#v|^AT4pfA4UL_qNl>X$P-ssPAuuzwh&YH!c@J=0=Zn$Vn*lily8c z;bYINHJ0vcahC_psN>>^-r4FaePVFN9D7JAY6~e0oV>wVW-mKxFnr;cax}Syh(1z| zb*|t)FY7I?nZ=MlqUH~ zBl!xF%DEcY!ebpANfR{(O6&1Xd}-{Szo}iRX^LV5sAb0W#`y?SSmbvl)u=oZgYNaW zRG-nSzO3O#XGn;bxwkJ1ZnlPMY*nu7FPWd0X!W;Gt!YMow;oyr66N#hGmXyus|=SI z45O8>?SvuxrpyDqWugKTp9=ChGHVZ7A97XopAmHZ#>wA6O>v{O7BHJ3&ifMB-w`j4 zF(A{?7WSb4_X9=sp>uHRHfOQB-#7Y`mPOmK5A2bV)Ikv_IULttBTjQH%c_H%Cg&W3 zmnE4HbQE~^6%c}`fx#aks#>qEX*Dl(^XG8?_MnDK_R5A`Njf-u<&IbytOK?)5i*}ecuYS@c({KQ+>ZlSX0(@b zMJ(g;9-pU_8t}{<@t#*xPMw5RogyFgL~_6Vr5RSLCAT;92S7L6Ls#iuLeoNmO>QY* zyw4w|kE5`4nd=Mw#KXkXU@p69KH!`C4Vj?Jy@q5N{=4Seyrt%c1~jCM`QKdg*?%rw zXzA5{pCxJ3aHMds`l`#tvoWBQ<5f$041K!c(>JoUSCFTfj?5tOGnu$08vkS|7K%0A z&k;XW$Hn(ULJBx84h;%Tc1^tHqtg16AE<@8|HESC8yyk1Y;5nzuZqKOD*j@JKYCg% zF3WKO3>ZZ|=OTtR+M#-+`qY%6JMUg^((Er__1(Z+pA-1cSE5*DJ&@hAsCCr*`6*5| z9n0#dfI51RfG&KZqAKxoom>t6-P-)K+-Ma%P&W_tbp)D3)`ZXB*R9m{q4h~g#V@)m zlQPCAuS(U^i{Mi}TFGKz^dEeFhye+92V%(9v9vkOIh2Elw5Zm)-t60qXuVt|6(N)# zO|??2h||-CnR%i(8Iv(8rq+Gy?qy_VoZoq45lr9=?Q(&cb@UDy^fB=XzZV zr3U;pv8{4(1(9qqk_ZK?$V{s0hzLOr3OT||7fJ_1hb7wGTV)kbLlj%*s(B5|bWEhR z!5C`YF_}Y_i^dm5(NaQx)hx%C7Gw{sb5Q%B@As|xIjET-6n_V(x`E_eAJHarr+vRDR{(=W$;8rtw8S{k~XaZ`w()T8g( z_mj#)Zb()1#D`2Z*QpX--=Zs{k&Mbrt5E?Kjy}xDk%!z9e*V4aTI(3`-@5OaHSCIG z9_Z!S7iC+jYgvcbuG(NQi6jH*yp9$;+=(awC z#$J-yT<$YL6MUK-!?6?*!phr`(Q=Z^{@n8rY^O(x+F^#S+y6ez!|mPa#G1b-P4i~C^P3} z#JAEye_ve|7(1**F+m^eo66rrDf&Hwj3>t{TP@>;DM+C!p%u|h%(7A^^hRsChGKp7 zi{Th!P#F01?!0&-=_Nf&rsvH$ws9# zw1`3}isZL(LQ|pSlWY@zmi7(HbdJNX?2cCQzIE`Q`@-~RqR(XT;bEEh{uPKxL5NO} zS2X>&1zQ_YR3JTx;h8G_KN}Bl&zi25jyRa2@U#DNS0*Io6JQ5^7p%m%)inI@ht zPNj6CsZn`FEJ1U!-Fp7evg)d{5Y?(^u@4;{oP{N!-JS054x1!c!`&9S7PIQ{el<2R zOY9CU9N#XV3Dkx7w|sL0i>t*JN$Lg5JUOj2k2~^T`fNVz_H`rrB+ES*U5wY<`OB7| zNPh@vPMX+E*`9%`1o_gp8DNf-mIouoSLn9g1KgY1$FFztV?vE3>-Sw(V9CwJ+wnVt zqJVlHgO&55FT1LL_SpAFpd9<}=i4}Va_Tz|N2^#3x&kS3jC(%i_;6Mdnel?Y;K~fx z(uTAP$Gzw1_Si19(%!Td6O(FrbU2h%Aj$40YV=*f>=7dVCV&0g;sglmCXUrg{X%ha zRd`^|H^&cQ`$tWM5zIB52BbC}UZ1#kceL*6ih%j;fqn(^n>JM4K;*vaO22(-5xdlQ*h>Ar}&KwgA)v^aIWAtn5kV9Vy* zp`jPMsbrkNq_N+a(xo!oe;l~X3tV@8=DGY*sbsZZr`X-{=2YE0QG-_$cSkT>l&FkO z6}{N+8hN*;)HlAd{@I|;k3dAJzSfOCiC!MlZ*eOoYJaAh1kXike?|Y8B8vK2G!{NY zp;X|Z$_3-rr~=sLmYFeE8`9V^@=f#be32Lj%;I%Tk<89raM1>}hVvw!HM4LSltd)p zE3pg)>-eN0idO1iZkOoo_RyY5-LKpUn+4TPeT#aTkBnG^o`Ur*5!p8b9jWhxF)ZOC zE!f8bUOyaTn+^BV+uvaZs=rny&S6O_t0nIyOm4u-JHYeCXd7M}ZQfW4Qf{am%C3EI z*x!(pcu56cWH-Zd{4ot$nl@)`op)!H1}EGGSSPJb^cgI5=#BG`wjl=OS-oW&j6V%v z=CApt;BUM}bD6h6rO}@qQd_BtXT!f`l=M;&E22}_`gkvb_nsIMj%gHd(_&(oUEF3L z7xMf7Oc%ue>kaRb8^Fr9ek% z5czW5mk}l9=V>wG>$fVb5;^P5?>A|dcd1Cfi``KQxzKS9{OUcM_%lSRx*C~2(KDJW zc|1WIZ0pOReO!tkcDTeF>N^o>@Eb&0wdNDPpYzwf+zHzKfOY@c3+|=)A1Bl4zGGN; zh@yh&eBZJ2aD{mJ1o-%bghcs8x!{-2)$iCu|NR_NH?}gO7+<=(Jq{BRKc8?)H!2k% z#w+lj7tu-+)#`&G=Vi1Z;1|DvRIPqahy@)60i8Pno+K2-Ky=`{+ZtH}A8Im?^PWxP zt-w^WiW~_{*wrkl!jd}MQe!W;Bf-YxMhT?sJ0U+CJJ+sM>dOT(lrY^-=HS_n!K|i? z!R>Z3@|d-$*w>r|LiG$(h}(+_F<0gaXQSuZ1y@%_CJlR>j9O2`e;@gg*Kxmg&-&8= zJ z0ro8R2nOKz0)^~d8sfCXT`clQM-T1*hoCUgIynxi5F`H;;9L@J|NDyYtBgHJZXB=IO}LGrGsCfK_vTeGnrHsJAfUZjJBedV=z|3(H0+5SCmwL;3XIO zVh9%(4w#Rn62Kh!lr)PwLJX!PE$s2wPJO}Y^P5cHYtt|ebL68_yl4*+r`3bsVa?Jk zGuA3nzL-0Ty9svhMruAaYFwH45C;WVVV z7fA8UJUt;uF7kgbc2E-a9!h2D@^}mLdW zkcq&U4~IYQGpb){Mnn>>5GH$>Rz5t4p#^&SyAjY5-!UDZPQM_hfa=Gnk|vrr5DSVX z^?}5h+2UinM&68G$0V3BYi6S1cgLnLTJt3Aqz@G{1M)an{44L)B9ebewB%cXipO5%w@IOFBHLO=~{8W35CAW!D=wb z)DyccV{tXu7fQtRN^R3a!Orb(P#tX3tq?!_}Nj3}I_BH}%$NqI_a=qYb;E_#m3pCeg+8o-WtBjkwB-JmNl;HB*ng1=k&{Ee)@ zLQ4{6WO0xYzyCTEEeSgG0pCKB5Xu`vJFmddbcyNCToCfLc^y-Xnbk<@A-i^8os%fC z6p*2}BIIRryKKtJDF};On%=22^t@u!Gg7kkcKPC{;+mC2X#3{qC(`P-`ZV;O&GFt} zsN4wA)6=N(MhGmvd^tUl3Lro1 z(SboVJJ_UAy#s$l;k?Itj^FawTW3wg(m*)0x$$*hf(kTJpAG)3^xcdt8?wA=6Uo^} zoPKDytW8UpmkE0lS5O6oWh-G{AJdw7h@;6GwaP&gkm%Q)-gHYSQ8{Za51T^IrEdhmK z`>bc%xOfu^1I-N_FN^wg?xymwnEt}F%dSy z^R|Vyv)Q4BDEROBX!!OW4oMOIZd@V5eDYe2kH(LxrPbIIKHD)-3@3Y|y0DG!chM82 znu2@sY8GX0i0aU{>;wkzJ_%cW?*8mNfWX)10w04>Z>|oZO!qv9t$?mSAn={3Py`7Z zWZm~+2gG?=`SU}wW&?SB&k7lH?ZAq8_5s4HoSr&@ywT6wNE?jRHkEkEHL5b~x&frn z#HMy|;Y*J+fh}d33Ss4nn=fw{-O=)#=_H8|%HTr0GWo`_`QHuvL8EysiiMBfX9?>u zs_Q^*doG{J_YgL;7>o55;Bge-mh95clAZn7>}>frg3omFZp# zu@FEtGbeW*_(M=}>Il<~?ysVjL|%yHBZl)wM*3Sr{t-lH_=V5c{O6L88}y_8yMb@G zpM=+CTxV=0cjC|l>6a}l>)>LRZGTz?9gRlg`LC~PDG}h`>L&lu{=rXSx%F(u5z7su z&vCBDh#pv@_l_QghKsz5fe$`$`MX+wA~CBATm*`-&x019W}t;4*%x$^M%23Jzl=tn zj5@`(7~eHFv4ewJdjOQvgRx0mU49OMxL@-Ub2D?+Vu; zW+Awn4{n(>xwZ|0u(<===+T2oBb(#g4S2{KVCRFeCfA+{cd4^}8vL!U>0xG32lt(g z7LnPVakz9HEFCs zy60lIK`z5DUGHR&xB%^%`D@0^W!a>*ugRcRXJr-c-Tplj4`n-_sPGqkDi51#*hv!c z@S2pO_?0g$XM|dim+ZZFN5>%Wn!Rec4HCK^SzD~hUb10W6ZPT_+mgL>JC#!*Z&nf( z{p3z!9XD}+SoFvntj_%WbIh=qq`8QKvgS?k{WBefX6>6+>P;fD z@Sz)p+!*afEYwVCM>>Ryq_QT2kJNOF>gtVJ4a5{@x)7|LO7HqtuBw&bVu*`fn2c){ zb57k9q%I{~AXM80UnECkKVa06ujGWz;*wmZRBV? z@54K4i*{5ND3UlM;%9u|2Lo>k+SmIj7;u^X61aRW8vpg=hZ%ByfS>~1w&`v`NIa@1 zJU}9{=N>CH)U^3+#c_UL9Vqzv^6{jcr|T}^5&7rAIPJlOa@&2c{=@kta95o$&sb!0 z35x$3r)K|VyP{!qUzoK`6~`)MC+J zscaM2JUocR;8}o5UM-%1RWV5`Z-`xEBbCiVg-DFK{aEflPMiyPbj~WM-!(6mzUwdE zd&sz)tLvJ*_u|q0=lF8k+I8gJbTX9d?4b`jB&J{eDdqbia6!H?2*ld|FDWdWe z@@kUUT$nJaq8M1^lLXvVuKl6Dqc0{JXLk&pJS&A-XDQ$}Z&hCL@S{!+e&E75H8wWj zMgab?!aqhR{#T!KlHhTNn>t*a0y<_d{3{R74Hx$to93LHtLJV^AJ01;_S>>L=YSx{ zoKL|2POKmz-U0tDxjoFSU8Y&c_J*Rk)3M_37q{F(QF*x)_{k1N{$f z><6I>E&NTLI;ka=(eM|c_!Nmj+O-PAM%uNC#EN7H?mJ<%j23^D$fO7&62gudEfAE+ zWC$V>!{D1gWGe0t7*=fI|70z&3wa|n$zHR^<`NAgM(`C_U^@g7Vp%Eml1=hP2*%Rm z{5yMMhb;xJyD+Hh0I*NjRNH+Cd7#OpuEQ~qjeet(I$l46&r9a;@0QICaEg&Gq{78u zxvtg5Yh({R!&Uyz39+`#18}|3n9F}=VvM+5TADZ4z)u;!eH^n2*JH&lnzE$=S7PR} z&w0@lIzKh~33Mtn`bl&SH2Q%^)@MxtH>-`oE_Kug)Ch9EL4xhCC`{>bc#`UU5Uy9x z##Z4DGLgrRvGJ_fBKcB#$$nU1Ta15q2@OJ&K)ygd!2FF@Luif{;<5`OA5@)0a0;Jm zkNB@+z)z}uO9+1aq=X+_vAHAz>R47KyOSrAKPLAk7bbz5$tx~IPSwz9{m@el{2?{uWbC{THqDQ^Y4yF=?|4^XDy+*xS)Lv@GcvGe zV|D(a!C%G@@1tp=Fl1@T~899{-WS10a%1CvGFXTzLPLapgLQ zv01)ZAhhxFD`(T_C(@ZNv5e;cmsrMeG?iE;aK!T>to_2UQtbJY#Ou$5O^dOv*n^PF z`+*6Y{$Dd;?T&Cj9rJ%qihmFP6${BgVsKBQiBF)K6W}Be%+GUkHt|DseT0XE%dW8) z&uLz7TA!Z5|K`)?+xwS6=KJN3H!eKKxFs9sJ&$-F8-%o8;(F{SsNvLQ&1~=~LEX|S zSN)$C^!}=UeBf4sUZ+)#-%=GgF>U%W#nmqeB)3m+UgIkJQ7HQbkuxc3ev#Ac!q)tv zpb3T(f#mjX?oC`}8wzEy4y6 zwF_SDu^q^fAplU7@5q^s?GpR`?}g{^H8u~6iE6g#l3@w{_~s7v%M}j)F{SmI$WWha zV$=#9A@KjC{0AY^Y)z!8&((1FI%1j{9@65^10%AtbBqM?Ikn8b!N~9`#dj!blK)s; zPBUOl?gOxVxw&g@g;-hdw*y3Yv!Fj^j!v z`SQsUOv8f7lM<+Jg9nuPqY6eCgr$O)f6d7h{WA}g(l&6F`Qr-C;+s=)4wHY~{pa;0YKc>Pplb`QW~++|9x65DOb5B~aYysr|jSiJwF1kFvg9VcvZl9^JXww|Vwr$IexOl; zsqr7#K)gUBymdN)GmWy{nhU(=g9=)0uQfCOG26DDR_5!;=69`y(g_6u?w3!Z>vpT; zv$iD8ui=&{mp&I`irW`==$tnh>sy8!X7tE&?%?5Ryy2p0d@>H)6Q0O}aPs}qx*Bv{ z%}44;5Lj8~hFdOR$)Rpgs%jB(Ds|++aqdzI8%?F&IG{&hEbA;uF(34Fr1L>;)GGg-0VzFk%f@ zTCdZ|gR^hVp2<$ykaFqRci#_80NOekUEr0~E}AbDqoor(C{%>9X0mfPR9!lpJoW=q z+B&UV&RHO8!Y!BEmD2GZog*fv@EHe!ZqBxGL&khs_9gaoVIKR|=>Y)h;VIj8t>@O! zwlKs$(+IY(B)+m$#nZC5xFkNm1*QFUEBfPF+D9to@_mj`$9SbrkPDCndq0=HaTw&1 zb?_dB#}!PoDF|Np(vd^CycY*o!E-+_zpcaC)zx#~IzIqNJY8qomRLUg2_4UJIah-~ zy;{9Gr^LbyFQLH*fq>PxZy?FW;9Nb<9-yRJvrjdO^|;4&j-1Ua+?h!Bm@p z)ooexw=Hv((EVAU%@i_r*}4e2xG;qqq4lyj_ho_y4an{y*u}eCr0u+FzVdYR=pwnJ zW4m+~MrCiw`gig&xihyIek8-EC{AS(WC%B`jA$ zk7nDvA!CrXTetvkh-p(>u{7pt4A;XdaEx~m1K0y*cki#(Xe&t{f8RZ{FRYDQQ;$W`JD+GBbZhN{OiYeUYuP)5B zkx2!g{8-)}A@lO#N#UCuAv+%&XTG8vFEj-1+~UOF+VhC;?M?A=!z?#eDD#3y6tBe< zrbNX_9q-8%AB332kKCq<-KR|lhTH{h-L>EFSP2%ndvZ?=2*lql8h9?P+P_)1Z;wd= zK(X-#RE_&&s_Q#ldX&$#%svpeiE*@}T7ql|t@(y=`DvxM5Q(d(w zNs+|J@W>*+bR%O;m6&F0-{kBqjum8uC&c1%lax^+rbtRp> zJ$O9clJMq6!xHkp7k#u&iY~CSbx(cEx)D2A+Un5Ic-J9dW1AK{vG1Q2+(`QT;YGD3 zaoi2ZLWM?^9(-0 z?6W0vAPL0T6HWQA{HFQzxOt}iNCt^9NrsKIh4i+Kyz=mcwy=fXcRQ#!Myatwg7$@Y&001(X^h{P%`^Gw|9L$Qc(BD~C$zD-gGjlTwDmqpJ%Ty6p{Pad9NCUqJfV`@OaYq8DkhBk6r zj$GA=_w_>6_#$mrru2xY(Qmi{8D*`Tq=BIq))+z;nDe_L$Cw6UnZDr%$eG@9O(_m# zcb$^XzTpKOH#(Bg8WKjWwxt0A21wK`?HqTj-_5*vCF^ru0A$a zrR(4x$2v>ANU#gyrPl)W-Y8hV2s{7e>lkEz?mG*Qz^b)xh0jmDDNjmw;63Tdw+6)R z%SW&p3YYx&>$@)B$f$+&3P=5te)c3u=-srruK}pCkfwT3$uZ=-PP!RE7nDxc8^gW- z`rVG<$PK>T5CT2QXYgQ5#C;9;obNmSd?XHiLNQNg-}?M-PBKw2EM`A^X!f}tuN*2V zJc-~Jx$x~(sK?Q}r8dIyc;#It4EW-YE4)ncm)!q2zivRQnOI6afT&7Gxm;oX2^&k7 zS5DWGX5)AOR5cRGZiLnIig@i=1g~e|r@^W8>7(PD5pGKUMt5$UA0hAn4px;ThUT9t zL}i!ZoCFg~pD|$Dz&SCP4^>4s{)V4hc$x!9UnuhUzhR>nl9Dk{ZUg?I^mXo4g?{Z8 zT=GT2V~qq1iy`W?x7NJ&j0wdoA7|FRoG|zsU$Q-CSj1!IMK;kveLc_*D)g1ye~tWw zLaB^8i3>-ES5A0L6l3Oai=n4i8w%d_gEsa9d8j~ox3#hiOR()J-i%HB48bb=M`~q5*sQO?si;J zgdRt}+4_~i_;0zW!q6$l*z<^nIO!d!sy{Q|z9E})yNB_Gnyg78)Pe4M{$v>U`h~_C z_wrCN7@|LZf0ZKj;l7mUEgETVYADq=y+Z#^GPii&P?78N9+~#s z$wP>IMWY|`&vRmBJ{E%8LbUpqIzRg^79&{3`UNVu;YV0<0=%-X+WK zeJ{h=k+d>D$C`@@8ubYEJ?gYSCJrB$>ipzi9TG_14itdo*R`{2Ui@*n`xW!Vdwv{jkhf#R6dKN-)iW7TA8|xd z>8SG#x*-EfZ&r7tb}=3?FV4BBeztHiUaxLV3D8uO7nO+3_1xp;8}k|_o4NK~GT#SE zCQ&j&%NJ;#VIU678)W5}Jl@XEM49X|YI7~>;84q*aDU7OIjkMRX>}~jqZm!f6Pomi zvjR8ghE;Klst=ZCp{ELjAy*VKe5)jH-|m{=oNdjSA%u5o^*fY@NSo=G2`9uriF8O( zr+`_<9Yn)C?)VRcRHQqEA!3+2g!aR1&HmC_aVn;_p<8ViB<_O0wqtrj<3<9~d25gx zS1d(B{FXAPRlACY9Iot1Y6S1vQILjNWDDZoQ)52Iw;xvj#Y*Pi8*4ULd2VZ`3D z1jCy^@Aw`=7*+3C&!5DO||p7p#T>S(cy$rGV9+kiVazA$oX+GG5_ z=d5Zs$Y3~Cow@2*E)qFHz<2!@%c;x)7`;TRS?@EPh1>J3-JklZQOjayBTd?vxy?2$ z+9R;qDRCS2#-D<{aA*V`E2U}Ut)R<@x!?+|`GI2)y3yop9}4ebO_6KFG}BNRc402DD6M87);FtHE}8egwb&r z10=$q#cK#Eg-K<3-_TZI95nWvv$@_o+DEfSakZ4!Rc=@AVyV?ws~-0Tjvuw!&(sy! z+2+?xN}NYmw)5cS8ZTNLk@UH>yc$#(X$z z6^e`z@jqpbk_G)v)5(>HbvIv&gA#qzqo)(5XQ*l;MZzKt2mh}4(0pWem8_GC$C9#x zh-kT&(EJNc%QL~L<4c(TlQ1|x^|{~;J91~@6n)Eg3kidCNi%M z7U;OoWZI@8L#zJM@irPviD2rt>YQ&vWM9F3DE#KnoWAn?2rhvqM{L~w-JJFy)SU8M zyrz+p;peu$HdDkJtN~*+TF=3)o?~IiyRlO~WM;CNT}royvMIEgnq|5**$)bjpB*N` zdcGN6DAT@9j9$%T5AVU&vl()xhLKbC2pXr=QkElW>l2z>wc@>C(?UxfFLG|yW6N>2 zo@k)B-x65~_76y(+xJ-sez-WzdDu-@34ZJXZh9d(k9RANrvMM|kokDm3k2QnnsG${ zf6x}a?k*s}HL1J)z32h#@i5`>xV$&`3N5f;ow2h?ah=vIXQGqTeg(Ld#5S6}wCH*~ zu732M0Ae0&Cc0=Z*3IshVV(C^)e5g&3Ew(*&1aQtLX% zJqj5VwpM5YyStoz(iMm0a!JfDwM#b)!1Wwy<}KC+YhGz5oV$U)vkNIWXIQ~1*@f=< zh32KU29q{vjv0miqmhROW!;)VmZe1oWt$Z$Li%L};DJ^Z2k>46)N5Q53%o!G5*pQ% z(uPrRHZp;NDnVT1lNC_sf0N*aTz`l;P+F;fvwL4?&;*zgL3m;ot3BPWP1W|-E>7G% zg2KPA4)0pHBX!eQIXYg3P$%Idk-Pc58oC)q9+iVVR`pB-^C1;pn_L z9gcHOWBZoJTHV)&yAWc+%jS18Mb|0%391(>XteHpU=&wnFBKgO<3G56E%OM*E z88exeoXRy!Z#msF3WH0a1f0s?!bX2kMxk^$AKF>7j!2}*E0Emac7J^G6Sl0eQ=T_sNR1+n;8du7R5YT?^yz+;B-i4Hifwz`omU~OPH=H4vDow->7 zwHhIC893$K^|y2=Fvt@)e-N#|3<6p>xJ)ElCpk4T@fPdCC;|MJb%Ex)0>3&R|5c+S z9$rHaQTv2*BG4lMtWwi(R@sHTa0wJai8`gym_T)R-k~bl%wO;p>$N`=7P{Uu|I@bU z?_nvELGq?bh+}pkU(V9gyx|Jk=Lv1PKmFpbb#QMICK!$`+;rGT>`*{HD?<} zT2RRL>vP@VFSTKRJJ|OFMow-ef80VP%P*mq zMSnYXhcAoTVO)`W)SV(WL9Pb=h(PLPhm9_*1E#tfFqHyR^;oj7RvvB=W7C6Kk0=0-0QgPU=MWlKj~nH1&qME z2~#y#F`C=U`aeVh|B{LKUov%J?Xb#ve^`(!=1OKZT#s9*e+d+>+vMc~#`tK^z_rU~ z64JJgw@4xgGxmM13U{`FcU$Wu-FizXJ}Wz3DfQTE9FHC5;<6Vp0R=`Qi z`8hZ-Aa#lEz<}nG>J}>ehO?vVwXgZE71nw0entXj>MYwJaq;y?sF_a};n%iX9!7R+ zOI43R5m}X(Bfx;sbWW*GdG?wOI;X@qe5}nl=DmXJbjEkG zXzeg)%_mu$wsG^*y0CjEjpz+_!(lMh%qJ_4^%sL09Y0zX9O8cn(Kew(S#53ZKPwo2 zb^9=`eY^hC^r6D5O2yfrFqs8#2wn>vp()e{yZOnM7HDwTwcfki@&FBzdWD@;n%RZY zwD5T~`_4F9pTiG4mI`nE*UKNwY^YnhWw7>yD7D`n4z@ zmGcw$^F&+whgSR#4O-vVP4Kd|&jGxU>;Jx{&j1Y0#(4h(NPgo4XrQ}3f^B%uTyeon zPmW_u2n0ugWy6M~YTkP41_Odzigg2X4qN3xkQz#CD_!%ygTOpWN2T-fTZCJ4YZ z$Mz}%z=Hadtl$%u0QkbKSrps#nQP5nKMB6PGe&{oxZ?I^=3u*yQ9|Kh+IzfJux2=br2+ISr2Q7Y!nQ}1$J=JlrMY2#0l0Y9ln7&@A4=^FSB#X6FXpBs{tb^ zFfPB9%&}>so=b2AY#CgxGJFd?eNS9>`P9Jgq=Ok2F!jYBbOlX5?^x7KXMzR5We>rj z<8R02@Fln%rfRnbX9SwPJOaIab<+8d=pa{&6{GAxz!lESvj|Gi39$}>bv`YBsh4{6 z0V_|^SXYcrIz`}v`48(`!;aJcX#3PO@Ch8AI6Iw>{SU29pD>5ZV5O~kM&f@cHTr~t z5WqUf)zBX?`Lbhso5LCw0Pn@gMgRzUx%C9EMs=McTvE^eXMg{TbLQ-e(Ep(^gzDcK zJM4Z{`X8437rw&n++fPH83e$tTQKKupZYI(4TY<*2_NDoJFD)W!_oJ@jl%zKd*}V% z4EbaXkAEAZ=-eNUxc_YsD*x#(XAtZsAr?_}U9PVYc0ZN|zy`hUJ~qUP7ZGu5{~EG> z9T2bhQ!G1g%UAvLx`BTDpp;m){f4i7!g`BfykfOzHusuu(T8>N=kZ2MVjf#VUl{G8 zzA}4&hYT40e=^&6_!pc&C;Lv;$j`|m`9xaE4xYE1L-$z&0MZZI1f8LD9<<<@dtJA@ zTYg$%{^M63JEM1~**wdSbqdY~`G=JDM@-u`L%%!Gb=FV>`LA*ne7-qf9#$wEBgFrN zt@u?uuXbt(m_1PQFb#`6ynS>081|Rxoa3#Kiq)G)A&QA0Fr&$g62vv9C1vBfgiDcv zCud?mlySMU0eCnvjdv_K{tY%&j+b89JK1NNqS_6d&d&Eej|HQ}d*1%IYP)sU&;L`x zBz6;sH&~s#)akdSC0Gr|KBeO=a;~>@&MRb(^N(K~og|NnZR984!X8;wnjYa!1-W9{ zf-J`D{$6x^o$ZfH3!NoKjAWg|i=jjx$b9b^{C=z&3rH%CCDAbjtwOE4KAv8B_?Oi6 z4evgV4^u~5w7V%<-4~m6I{T6xx9awHECv@#j99icZDK-9774MqUb5kO@sSMPY%WF= zbIf?9O{$NMBktVyWJhwKXdhyf9cBX3w=bvre~a0}(Uqhb&cM!KyZ3@Ke6i|2s_-8& z@X~19@m+ZX{HCtT&I{JGVsP;U>Z?sofThFjR?hgtxNZYQfZCw}c$UA@XA#C}M_&9y ze<4-d5Og|j_ZZ1fL+Me-1hT4x20-q|JakWN(1CJ8}{B9DO=0DMmBvN0P_IGsb= z4ljj$bX}oO^pk(lfu{-cL^{&8svxYKyu2Kgd*?|0lTvD2<6&th(u&d?@7hc?96A0t|7CXTHOeOxIC? zU!1VMwc4>C@#_V_1q|GdKfnca;;E0;PFI~%LApln;5~%ZKGm2z?wh=byUe+#E%OO9 z$g}ECzRc-T3DQ_<+=02qcYU0Kk0x8yz;GqLsHB)QrwbjK&v1g%dEpP9kw)#u+Ah$8 zn%)*;?~f{D#-n7~IV3DAApLH+izdyf&*Wr%#N@>1@e$3t<7eX2#yt|B7;n0pJq`;Z zp8$N{o)Qoi-`xpQ%``fj=rMZUYa0)$6 zskx^3{VDU4-Robh^+`>M+R?xY!$YjXvSqGhm+P=r{0k$FR3rS?*86)wJ7&1n!WePq8 zcMd$ORJj?;%{&eM*}=Ite(IXuYF#Xls6`!9g%=uHpXDTRbO~qYNmWqsYt~ZHQaUydEZ5Bl#w7J z_f)mMI{xGBi0~RYT@>{fkvV6Rq+yxPJcMpA?@z$$ud=+fl4q!x8Wy;}BTC3VIMP2C zB=$v7(l&kdLK7*3o(M&vh&b939g7%Ur-4_Yk^|3orIv`>Dt3qH7zi`D`Sc4@^=sS8m7eewTlEgUrA%vt;@tJ)K*CFyKE*q=QU1MHagKNZy z*oR*e*U>6!MtORF1m-nGA1Hn?1bTX{+J66M?0zeB7-ArOI;r&Cc%z>Z_+wpjqH)xR>vWVX`aXaAwq_y+%mT21rf z+sUNvlA7vjSHF!4>d$DOR5V7CW*Q^+7X)m0k37m{nXgu?`G_HGwM6Z{b3c zOW5z~l7%OF$N*2vhCiYbdMK(_SbvqG{-6pDD@t6W+vj?UOM<`3?y~R5m+HR}Bvvta z{fyl$QXGF%3|S0cpwO5Ap-8@EgVJ8DC00y5%29xB)rjgtLxigaH{E~AJwq-hA*md@-dNNG6o0^M{bCk^c` zcy#fj1D2u3LD_KWiK5KW-XseIzeBMDqGsI%QS72=Kt<4gSm@r=I>HQ1qk%$0E|c#N zjg2vImF-nI8ZskwIBBAZY|q)1dN^l&~zQM!>kD5tqZ(x`+A z4mr~PW4xk~G}5G#OOX_2IT`y7ucQin5OY2CYXk-?%^#Gv zzYN{D7b_Lfa|jqtb8kd?CYc_ZHWfKgGobwb6L&wra7v9(icZpSHj){3c`EjMP6}L~ zrSx-8tdR=oIp2)TD4f}i=qMc7j0`O~ilnx%WSEp@zLompGhc$BhUN0E@9rbJ2&HbqC+en0>O zeY@K%_p^sy7fZ41JIIvcG6Uax0yuV}EEvt2LQd&xSVgbvD)CC?$;Ef{J+jB*xYm7` zm8iF$rl~-0yLsh?7Hejx!DY;uN}H98WV#nna6l0Ca=FLLUT#kNrpA7)WR&Ir^W0<8 zfF==4#t3=-0JoBnZqBBBSk$A`BK9lnsT7U99gC3ElD{A@$4OdpHY0cH{hh8`DS)@$ z+)W>L>ew1;zbPl1mhEViNa2uLI5!VAFa|oS)EnUcGj=%$p7H`Y5SPYFjpoWGGNCdk zp~~e`miq9c@5xh6T&R*4(?1PK{@F@}rM0F2H``LI(A-oeAwPKR-!#7-s@6yq&?gjB z<~^V7qdcickXA-ss*s}RC66HHLO3Z!qCoW>TD)$UCCnK@Uxt{PoM+wAjMKm*FBMt7 z`4-?^2nZ)8*}2+-pI*m$L`x}Di2sRA5E-gQ9UcklV+;PC5z5Fk-TOoFIuAkQR-d{Cp!MJ`8h5v-DnP{y+P*&#V zGU|^MmjC{qj~4o8I(GROn>3wQtEhO%@yG+9k%LvlDKio1gl`Gc!DJUm7emQoO_T8y zftF9hfj`f5)h<(=@s(Vpbn*zLe5@!vIxz|@cy9T_bVcH3C=oZuD}r*U=SIwYTeaS7 zoJt-+`N3Ci71RP9nqVWt!h_P4CTI-tZf{h7RGg5W!r~+pQ6%!~16pC80<0@wn@#iUp(?Ep z=Cemaoel+KFiIe8$?I~>DGzs9%}5(yGK?;qhhs-JT3WmeVG^MNk;9I_gtTqomQRAL z`K@Ar!Fi0<3)WjD{kx{K#%6|?p7|_|ed;%;#C&AoZ@qXZBeS0K)HhwULUtWyN)Uw%_wO5%9UnwE4bs2|V4b z3w=U6HJq;^8+3kh(L?D7eLfp}Vs_rYE3fTk`@h}nUVa{XNOlo@UUhu}k4(VR>gUTj z&~^WGQ_e7F({y+8a0+~`1O7)3<-nGPruh4INq*jS%v4Y2rVa+7uRRD&ml^P~`^rN{$i@e^Agaz=;Z<#hyP#6F z?z|~;UswqA#^Db-BLMO0tn{zK^c^5B#f3yeD(&v4CL{PsZ|F&H+(|PTiS0%sF~&5F zmF&@lzUK==aa>5C>z#QVQoWhJUhi-!l>hp?3;*cB+ZdIeCtn3X{u&t> z$#D9rO_j=2z#lAbb*o+0cM@#VG{d2>VW52=NssU<5*>fQYB2m^^v3^BlZPV`KW%W_ zNz=1)_PD2cgmN*UdvA~Om>D0Uo=2SVD^=(4!;DD%aWtaEef-Co?AT3ckdXm(e7oj9 z>~I9_(#-iJBc((ebsdpS8K^Sg2BM5ruEvbDoFTZ7HMDRF3ET}wc0X-CNieC*s8rCX zG}6S1wY)O8aOGy19;V2dhWHse#Y~8#*neb93iA_9Qx%N0e)y_ z@s`ASZWbL5yp`!|E$8d^OojhISS7H;iV1Io?xk!?FhZlKmOrGuo53rNCKd~SRzPyP< z1PW8F&#pkWOiJ%Mx?Z<8SE)H|3#uWIXpgHqbcZBfKDK2?rW&Tjl{`FCYh%YxJ!hT% zNwnDI+qXK%1lv^W7a9PY&Av2R*|zKmyWCd!Z+II~J0+ZUb4(5CamOp=F=Q6p&Wha5 zecYoioX){yT%q}kNH6LmMg)mA)q>F(+rt9e!-%^j3M<2od(ci8tG;tgb=d_i25tAh z_7J5$V5R(Vr0l~R?aYVx#!S>@?C225M)a&!A9ME*Wj>jKvYjmOX0ajlef-%jx9bJ^kvCR7a6Lo>rr-IY3V(sG5HSBNgMR7Sb zq{2)eL`5I;UzPjQXu<^-UIi91M^XrlZ1mJ%NY>6pJH3+vuciBm z9VSGw(=`~`H5ehadsNGOc>h&&t^ax7|F^0aeyMs<;>-Mv>KL6*v0zf15siQmO_a%( zb;TReAR5!O{U3%fH>AQ!|78e;{}qUpeqWe=U%f*NFy<&J)LrI#tW7`!WS?PWz1ne@ zM>dvg68HR@o?PQYzkly035 z!fzNwcVzx(U$-1+WA|vY&)XraT5r{KR=;sqq;TNUzd>?2JFhr6m$2C=#NA!<9Oo;r zX%bATI6BV?->`2#B0N}H)tX<8Qtyyu8w6Ue%RHzT?fvMrmRAK5JJvmy`To^5)wed` zSNbe+GDR(RFbN$_8T@^$Fm-cyRC{#ab-Uyq+L$=muy44~TWx38e~i|6xLEASobOmy zU0?lT*d_PT`2rR?Y+OQiO#d_W{~aA+Wc45BGXZ_z|A#xhW9W3_dUWHx^*{3Xl=-w> zw|ZolI+XjgO}Bd39ehpZBD3mjz1oNG>r(NT$kjf@(hq;XfC`_G4#M5R(~Yn5_kUqe z`!9P>tH;tR%YWE`|4)9Kg^m!2Lf6&$&(V$3sEToYzLm4}v|GryTZXV(`JcB&kI(#% zzNTJ+iF`!-nUm@hL(mpMZ}ec6{$vrIkguk{--*TbeN^{^>I+UFdKV^>Vv5}+Z34u-aXsx1!mo%k z^}FsA|47mONjcdYTJ%szZJ#Trzi$86-Si6{i-jQy^Z=?H z;l3OeN9I@P;N3Gu+?kBr$|A z3?cfYXEf>l)orSCSlY(u!d#YFl3A;nq`A7ROQb*s-3@r|c{bEN!>+CF<19U>3}BJM z<@fQhg7W5OoUB;8r{9vFY}zMD=AVg!)}$r8F46s#H@55MRmG?{yn&J4hE`1%Ve!RG`A+VXI7n{*r%%wB^;`EbDI{YC)2Z_ z#_O|VX49K?`wuBJ5DygJuE8Ed`y zh>r5F^o8%`Jv(MgGc}ige`89{I6#kYYfspeujs#_p`(8}ovk`(Wp@{{H{tcTmFihyrWP&25oca zg+O0K`*cu;^iCo~zB(+_TfVO-S@cRBW&jL3-tlm2@Wm_@IGB(!@}9@^1nQg!--)) zAq9Ss57~)4+a%5Rx2x98*SCW=`6bEij<+58=C$Lw35T+MoW)I3KXYevKA2a5lqRC0 z=d?7LyBqw~Kt)Ci?UTl42Ls&G@|guR8(+erHpwJcAlKcN_H%EpHB~=~s?UK6jA*lc z^a7Jvarr|bzopf&cJ;9agsnMdTD|8IB#&( zCcm2mm44fqNYW|%?5_ZN-? zVI+5X&Ksv;@BGzNhaG#q1}P4YHv{^eM*or{?yb!_$g)g_+sfXH0BktEj+!hX+tv1s zxT>b?TeGe6<_4dU*>v)EG|oqvLm&Mv%$>qlvK33@g(~RS30E64mBaE~BDWI(TmB$} zn0MbVBb8oeLZi_C#_8Wn=}#J8M}#?cdP1Lm=oIB7n|@KQ;15Z7SY=YBp?QLt?EUU~ ziCbBcob)d%>EA~Jh^y6gYa%bl}yM~`CFbf0r>sg@17`_z$Vr@v!^4G-vEEm>jD!eJK!8V)kU9YLG+ zA}`eK*m@g*A$*xDSby{B_q`MLEhw>v7;GhxLNhIB7H{c+L*H$tJHqJ4fnkc3B#MU` zl-iqy*5%`C%OLVg!+F1e7w@3*=l-MfgTk0PAJ}c0)lI9p2OK^`(Gv=yxBfZGESzN* zqgqw5J?~dl>rC6JCkmtDMZaGrg{s=e2^zeK6tZ)PxoZL?ZIjggFHP)83tm?43sx6) zD~SpQ6sNkd@r@-3dL{-Mt}zc-98~`l$Cw^qiCX`4wHk0%vDs|DRbAtQ`L{y28fE{J$0+ z8qgc5I&XFQPjux7xoSxr6^5S~r8^99sfG=nRmue7n1IX?>f?1zd!?|_Cz@J@|B(b- z==P+BSAEQVh+wylk!7fLF7%U0Hnay%I4K9#UljUCn`@UpBw)ds0km{2Ns0C)u{jX0TZsiP5#SIJj)b+rMYMV=@3DsT7_e*@ z?!r456sCEY9)0ZG>h;&1pRMj5I-hKqGk&5c*kkQ|Zv zB*6S1EYL=47;DNXIJ2KnYIzANXW8M5%TQF6bUO3e35yVNMvxpd3$(=KQ{;^%NAkt} zGf4^Ej7w5VU5&kQGEjmXi5fDdnW{l0T2X1X?~%bUuef^q&6dAoe+F9#aYPHV`Dj_` z0Ywk(DjP{j1guXsP9w2(jm8W&#$_BXy9NW=a7h2YI~TPy{7uQ~?kJ^qc;UETf-yOY zY>tu=9b-OCn_~41X8}pMM*jj3%c#rg%@6~XY+y;!Qr#f}ahqwNP)HaD)IyV%eN2T! zf6OdQW{`+F_n9$hI#=e>n1l>X46$Ll}qp|b{)f^Nbjau;0nsV2PyBhyA>4GP;ok|O@(zna$y3A~T z__O(nSRXVUu)dk6B<@0MXyBE%DA`@*8-M8FztyE!n{nJNXjc~EkdQGN#V-Z`A_eUS zhjD=@W~eEtjb%XyBo+7h23WT)%FfomsqG*IZ%wWGE$jBHKr2$f*eM_A7Oc0H z-=tKb5ZRy#8?o7}3)xbOuowtPZcQ0Nr3Tv7xjL5rq!>SG^wA@}r9PK9pV<*7xEuT{ zUL8ec&9dVs&> zho>S-y(Q-Lz?p@W$SHfWZ2*kUKOkKtxu|`iL>51zrb^7x-%LLE+pQryHUY|4b3C38 zbMBr77)}HOP1Ng3+-WuDnV%I?ANVFsU=^U%xL9f3bW&)Apw+}q-4wm8K#MszY+*q# zO9f(XLrMfRvk~YN)O?!bcQ!v82~TT|&A*fg#Z^)$a?0~-v=Bv%E=cS~ip-}dTPzC| zmT-JO#l*i?fqFtN7>JtwEwv1&sX7BeqZJG87o!|MrH8kZgCZ~Zv5c)1-qT2$Dgpo1 zM+rI7t;o4g7E^l`MyG#w5eTJxE5IwJ#FML&_>&X#qv$ADDU=%7rB$QXm`UW#e}LuEZ=cm0MdOQdNFsBKo@%2J?aF zDx$_X7VeF7X*k@uloV~)oFWuiT{8zfAbXQU&*;5C`2oxNHA~=HD8iGgK>+_S%N0fh9W1$ zb>ouCnLtv8@-bAqN)ek()4~u(LH_P8#HWK2_O-;1har~NY$mN>$3hIyoJq(axnNI1 ztmt8&0A+%**NgRqNcA*Bq*OY_D}gud;84Mq+QV}H4&Vg0uqH9PSEnp#s!r`)_26mj zN!fsbi==)D2r32#18*Tfy{-=BzYt4DCn+pdcLwo|IB{Q`RP??}<@V}_EYB0%S8YlW z(+47QP~WH&8l~HAOMN&r9Bv39_DYTKp!ilPpd67L(@oCgv2VW}$(6~VZm6WT%oC2_ zg?`y>0dy(0p?vI^_(EIaNNlkrkTc-@-_h$6zL!JUMkXL?*T_NjUdg0;$BOl>1uF!{ zMy1CanI1PSK%~q}{DEY^48Y6Nx21ap)B5cUF>H6y+leTD0`?FK7Qi!>f`R%^%Snp? zjK;8vCO6oqUphkrmY!t4lIhBv79_|(#Lq^a3`nI7LC&D;UyYg-%m0Dkw}Vo{UCSdc ziXPZl3tm!tu;*z}gcKyhw#zgdEpIzaejte2-Rew<09z@y-_Mhq$^)yOJ#F-0D?bt1 z(->@bkvzRO_h%05FtLVspB;gPhSk>$so8m_U`v?H!hI^s9-TSzcM#P?{CB%_)*k)D zAHW)1RpM+k$m#6xvIKdfoi(U6{SoW3QAZLDzXd^%N{y13fQ`KRXsn-Bma`NyGQ%CX z*>>l3TV2T-Z%xS_J(nFO(bZRbq42TiA{unhCbV+Y$VRkCSybAJnVvtyYMO9{23V*B zA(aorut}O`r)_4Qk+?31HvJ5lB#sj6GXN7M?x;xcp4EP0sVKZE26SSsNz~h@G(U71 zv&<~akt@p$-7d>eWbCh7nM$3tz^gkU#*Ug2?0>psHW1tG-;Wommnuplu?;gp(?O%z zWOKuuj=S6A2#;8mmLDz?RsNtB@v3(g;a?FqtRdneQlmv;4PGaXQ+MMM(x6g^1OdkD zgK4XdJAItNdmi}M&CIjE^XOR-3i_tEVWtAqV5dSs=d|~rm3Da%Kj#)iV8AUa_Avy_ zTyhY5(_-O3Mh0gjQPs6cScg}X7If-!X~e=lb67(WprcUJd77pPFsDoGsEzt7g*|b^ zR}Qq2!YfB)dYA9m#cADf>yhini$Zr_IjZIYSgo*{ja@Si*= z(Hz7a66m~K$tPa|Y>7xhfSm^L^_Z!m9?*4WS*`)PRx2?sh1qcp*AVykqT>a|_1tAK zu5@{#SCDf8PDe#gXRKN^77{}i=8KLWDkFSo z$e1pIVpxnaxlYd(GS<_YP*=3FSpH5$NSP6gc?%atO62OM>fom707v49EZdzOh#_51 zSIO)GONYXNI=c8vmmg0tz!OA^sPF4O+9-TvrvLkG*ZX;s!RKrjlc06+@IB{^_uy>x z$2s!nG;Z7jUR=5)s^1Mhof#E(r`?HiS(*5N#OPD`wc zVB=TAo;*sd2y8|x#*{DZMC89sW^tRfE(PXxyRCx0sWX_VKETc?6ozF7~&{`8MyI>lNq<~BDe{VDsl ztGK77E?N;RV1TQEkC%K$dYf{U=+v0&G}5xVNwUUOWyDebjenl3*_+e8b7_VjpX+k1 z-6cJ`!TDR2r=#T`@*O(q3RNW|I9dhaLYfkO$R9;HCm3qgf(|~%s6v(;YlD>*1a5T5 z8It)lJKQU)7(#JfOxkTW-Tc~3vHJB~;ap{0{rD$QzyU(_2F%7VHff;I^x4ey`S7kL-dR zMlduT9zC3u-&G51c`DRTzI5X7n|H|nBD5G%?CvGd%m9~lG4w*J`1k9cfXtPUED8&C zV|YKZ80a)1ZyG5O>Tk_+4~)>;et_I$xlx@xhd(Uu*l*_igxsF--aPdKFBE&c-V?mg zp`~bvdEJna{#G1k(YH5E#*=mC=`3UuL%FUgu2sX3hHd+M;dS;3*O|-wg3Z#VF05_5 z*N!vleXL9~t1e9w3`M$**DJP8N>2=HT6`t%6v#80ZeHr|9`#6<(>b?i(-}yN8z_4S z7M+if@2=2qTK@BOP;u1C5K2O8WEc*Tm=PEZwwPt83<{fmQy!!-B@h}kGSL<2xi-$A z8>BJLz|D$f4&()S6>nZjTUYn6M^6WRp-FlS4(92zoKRIVgDX=I9>JI!xmiNUVx>3^ z0_cQ#ccFBA%>7$!v7wX>vG~AU$A&FXpfdxkRpTaoHW6Cz;agR;nN+{>WW?w*1NLc* z&EQUa#b0?xGSPP2GKG~@4aB27uU~78S0CpD$%rQ6-S@s0)_>r@hh)F4;|~+eVtJ#D zL9;u43qQI-hvV#(NuUoi?0r<$4!(dm(Ec5hiJrrK8IM6q0Wvh(+Q%`*5MOm=9iI2z zb93+{!0m5sQ4Xa?r-Ie>$7pxP z`L*)W8%4Sj-Cl(pbQ|ivw(}I=c>h83Yo`r`X`P{6^V!-Hhx zM$thPtbrZ!-j&zOp4x5P196}z|InV;W)ks)SKETu(7{62?LFtk*kA7z>QSoQuka(^ zGnY;ur;?qpCd6XrSx^k|8afQy;nnNDGX6w|YMx7`%pqZJDyFheJd`E^VDK?S1n0_g z`ozV~b{bDr41&7qkv?_tDn6!>2M9Dc|7f9F}GXt5r zYuy8WI=T%5joP|-1Ls<6i31c`Yrh8|HFZ4(1T@yH2ME>IGzWhC(3KkiIMmjJGL39> zJvwRxbp&a_OD3ikXpDb{J3<}0p+3XR$3xDiAErI9$xL#Ws=j?W`gl`jU3SdxZhT!HdxR(56e#cXQTKbSc)8FLxX2Q4 z312k6UpVfB%@(=dj_pA?vVrk_SzoLZ-2J9NN9e)3TT;Egldp*+t7U+4{>#3;6-=*i zsGM1^P(Tm{mx?&DUFYKIt8V}T-4Vqp{ zK5ye$@fR%yfO_>N?Jj!dm`4>s7uIIOXX8e2fp*WEr2NCB6^)rA!5Mrn-rZvn>5CtA zA2{1LsJ5Pju`$FQuDj8U8Z71|1=>tGAra>eJiN(+1#XG#Ym{DO)fW8siF>Q$_s#M* znA>|WoczlZLxq4of@hJy2EJDnc}qA9Z-t6G53j6#t9xQW{+NTq-uahy$KAP=6rcR~ z)55fN4WYm8QOcN5@NIt%{POx{*oETwhuGAsncNXI&0V4^9~A*IQm5Am-AMAVO&c65 zav)#u>a`nzVDQ6C6!gXdlf?z~F)e9>QA@|z^fKnc(hoqTEfYN&nrf3@k9tH^o?y%>%8I-Cxvsb8J*cW7y#xJh)&aw+7-%C| zv(3RIxbbLA?6pgKACqur+(?ERqB0T_AgGEzfcM2 zUyV*b!BzBYe3t(*I`J*^|14$}R=7bYN|!ImHQj74b~z!>&N+Rm_kgX(1><$6T@zat zW5QlhCS!OvbnpKCf5>Gp7NdBn41iQDnX{qL>4C|U7{ zG#Aq(I*`G{cvHIE*6yLeWbH97d~<$moAgB=evKVZZh%>h9M}eUEBmqm+Y}qU#Xdvf zJVHrp<~iT8f2@VtP5=bi%6LBVl1Q`f$fFLg?9b>otfSKod)r^?a1#;pdc9p#4de0Y z8u6t6`{`8K**D+>9G%P-S)mj8%0nT>+QN3!64r<)eNL<1p|<*I75r0ggQ4#p^_s$^ zbX(;5F=*^DhAF&Q>zWIwD;U%oczuqbSz?8}e@c+Fa160If8AP`sFz@HW3XtBy^_e9 z^lYsm&{%OI+otPX2NtA!k%hm;-l(rx0{f<%E35O^I%?9i?_-qigy%_2O?5}a91+>t z??`%m#3zNH1Wlw_UZbCnmE*WsecoByAt9thnIEa7*KfM}YCw@sX24RC1oA_Xs1Fm9 z&*>R>gCFV++l5hsL`Xjj;(*tfk0a5!)cc0_T^tP|3m&sv! zJ?mUSd4eCPUuavF)0{@Qf%>1_dNl(S`3t&%>VjcG9|t#W8s4A0LJ6LXjQ&Q(9r|>z z0+Y5rnLsCH9x#M?IT;wT+WUcY0r8)=qNlCYt~@^Br`|eOLi^3F2(h&+|I44ZJ7b&z|*tF#szG9 zZn~A&Q_=0Ypwr@T$=*ywp0QTpc~OAB~Z)XRxi{#G$j)LB6z0vG7AM@g+F)KjT%aI#%ncUJyIh1>>XlN0D?s zM}O1ZVKIh&^;jkukwVCSop7i1J1UXD$3~wK3Tj=PS7;8~4jNJO zuKsb$bOXpSNjBdUTpzHP`K*^8KZSO`A&q?yzu-#xRhkl|?jno%3OBsEaNiTfdcrnc zadmt1uf4`5C`Kk5z3X}Z@zFlve({I^Ub1tBVzd-z88lpnCJ_~96Y)onAviZ-y`sh@ zjv~w4pi0~dHYU$wsDiVUbl0=Bz@;# zr88#DH<(2_^8%(dM@Fv)e1@jLTV4_WKL_3}(&uo+O|bx1ayv;zwy#EqjMHO~&lNty ziABKNqs&~jU3){zl?H}nInKC1Lyn_q|T zCeTE_Bxms7tE(i>@<(>@eYj1^E)mW-y!st_F5EqPyZx>&vI~{Fx~}3JUeA{qv4wV& z|Lt0pggkYyG3B)*guH3`3LAoHhw3c?manbThy0m7r(Ys*7z_bULXm75 zHi1Td?r>&sw9z@dA&kX%q5Cu?tdKv7b4=l6igQ*n(u8z|K0zTbEJXerF5zM0`fs=- zxi$mw8^FTK^1sJQ^s4V$l{>#$WH0jCD=3XZne};vfrk0HM!R37@08RQ)&knXD0t*pidqjMYoFfXUG+hf9 z)=p~vU7RKTmc*G}R9}lb37mL80sDJYvsOk7tuNF*hAV=aiu&4-FH$(Xy%#1@vv}dy zmW~aS8uLN|tJHH*0?i<4KXn$mcqE$Ml}rl=1ND9Y5M0rmLOm^=2WaPoTgW-8jl<_) z@FZiRXJe=31UN4|S2p}gE8NMZP^Ar5$9~83rK1ExNsWk(^_{IfF{KG#&3NiISluC~ z7T_l}6ps({Af!{sJHjau3t!cCj}sw>@D3BAhc7Yxhexb5Lf-ftlBNcg_)Y0I z6~riJJUGm!l^|;PPk@*xXJ-d28*C0F_6>|AAA4UJl;h@VV<6{tZR;o6@HjN~am3G~ zgseMXsDu&33-sH(F3Rtzb=?@Xq0z88MJ8K1Kd|J)Y=3o$T#2cO49UqBLNMFiNM}bd zLMk#`JHiFULD7SSh3n{sXJkNDLEpx~6|q&`z)~Mdd26cElmne$qZCd^5DBMwCONwG z(N11ogmk)=yy|-T0nr@E9TVJG4oK_+U`^vB$0^P9;zN03EJvDPYHsu<9Vh&!qw`+D zCgyK)FbVME&4!qVaokWYhbJ_k{o_9>V}df$M-f!_id=%MXfY6#oCbUb#FegS1s1Gf z^|Q-=vS$DG3I~qb4SU1Ceqei2LnFev!S<_}8N{Xygn6LfIY7%~aPQQmQ6WcZX@--_ zS}`Ta<`L;y%Fr26N*G76XVo-5`&dgNd0GRlr@Vr}HMB6Az*HD&{cY5uYW!_fWKG@| zGI-ijc3QRJ^Eg^Tau7;p;GPt3g;~&u3qyXas<&-t1M+I#CE-$I2DSdEbkB5aSS)|K zjHgMWV_Clm7mx~6AdBJ4{NzA%Q8K4r8myuFM%Tci1P+D?g^@dhGsO5)7=o{Yq8}f;QHNkM^N>L%x0H-;qKB@$f+1u>9F-tr+!8c^5d7pm-->ZcC-F~J!ftvLxsq~1z=od2&77!`;%?6LSFJ=e~ z%5LQsD5@bv(060ymTe)B2no3v`8$Ux&=f0gqG8fmf5AVHTs%GMVt+_x;Ik_c(3X-w zI0uQC_6DQSiOr^nPim`32-p9SQ9pe@0qNm3Ofdu~QW7B_1xI{A#s~tS@|-r2X#U_s zfRf+MiaD&X0`jR&tBto`uB+?(Nm&Z|DG~QYNG|Ytq ziG-LBTpOlfj`q4(NwF#$ktgJf2uN&eJOYo($vd7Hw?iRraUz0{!qT$)$Dk9wlET-D z;RXiSA1@hElY2PZvY7TD>Zb8(P{OaD9`&bi-Fsgg#3C{1ZiCDRh9ZEpRI-Q|RUA=k z8kSE_izwle@fsQ@vWS3ww@>Me8#rN3?2oJB91c7-AHL?W)b5?GFq~E%?IwpN#wiw` zuaMJa$9f+9M^O@m`VE9N&r=NYUwf6vKay^s-y)YTGN-?rP(sN#%C$axL#m?WNO%1T zJA8JyvTPq;tKt_JD5Sc|G%gYABS!%oys$+1&nM8|EbWeqpi8c5DF)(%W@Q8Xh=!yo zt{AL)M{WtOWF5TB)WjZp)MUa636aZiXa6#jRw2KS>wf*o@fWs90zGZhS$EE#c~~$q zK-m7SzFX?gd}51HAF8Fi0+n1Rb%fX-I%3CM6KAR9*c^!cK_z8&Yvva4;Sy9Fj_?U@ zLnZ2wQ%ka8Ocb2&G6zXSI7AEYG|YktXl@Dp;iF^w2DF)+%+?s|^0=KiKfYvAvu72# z-ZDI`ms9V68_7{hB>=yJXgL7SmoW1NB9)n|rcW(NG`|Q9H&x(FV{yx+2djN>&W~d8 zkHJlKUGs2=tjz*pBas_fNudUzn~`XkbF1VeK?B5hvyj-27I2O@q`Jj_$V(s^I=SO; z)SMq%l9b@FS?3Vv4o2cpGfG7&=U3*jSsMzG>q#JzzrKKIVGOzzwSu^n;c@^qR5L_4 z94oZE`4T3$JQlST!(XmJ(8t7wnl@f<&s~H|Ahu> zWiM2sfJF$ZnuDn_xconne8hmT<84|Wl)Bp*GRzI=G-h|eP(3loutk1aTdcjdYeG=W z#nG=I6f9Ocm}a;V=X#7JHpf%BKgen_!5t8WvzonNLpEBZ^i~0s62pri&gkI7yy4T5 zDPBf?lxCo~HKyH~n&S{rqi-IXP2y+c5IlZM`5=@pNcA*7<)?=kB*g(Tu5ss}eaf>E z%RTjuyjY#W+6DzU+OO6q!ok9Lyq0)KN-)+G1KQFaia!lWTJ!scA#hs)DN-kb9e;yr zy5@xjGlb+DMiOQdN3hU{z*P(svU-PKEssV@Yrad*YGIFd(`r~sLO@L`E7lxSn}(*X z!}*KAC~*XdmzJd2f*ArpKDRA+j#^=mX3?Mc1o_xOiB)sW zMAQ#)#e#C5h#F}W4tUI@b>&&59$OM;M@&*ekP<8EIEVl_(I7LY8Fn=k+ForlCk3!GZBOsi z|BZu-Znr%xJ(sllz`SI*yakt*)dcN(%`o0dAmQ%{I@#0n3c3hku$(H8LFls}j1XZG zDmSpfxC{-BFm*L~JA%19V%+K*XS4kxYgX$7@$(|PK=DQVWWdN9rUu3Ige;OG$cZ3- zOI-{b92^EsFB)L&%|XgXKoHiXfB9+YBO>fPn?o0gcluFem+A(X=s_#_h4d7$+gHTq z8dnZA45?|6z*RYm{M-Ug6 zqb#_5xa8M+lw~B|(%f*Aa=v<1(s0RiL#l8%hz8u*fF)3b(kMMZ46nqeq2E(fNhdg_ zG`-{$S0Z2a@0_^Gk5pUG+NFrO+|X}g0%>6SZ(RwI>XBUT2+h_XB2SSxE+VGL8MZaD{6u zJ#OXGgEC+iyK(OaxFvQ$>EO!JbP)PtT6`^&MCCLVWaC!;rIBug) zi-2Vn16grpcVRWkdhk|7BL_^BU4k^7)Cw_x@M0;`;$M z@RdRnv-x&`eCBfkKD5{8c5^RPLG^Mlsl1vS&e=Ih#6#DIR%D9x{SP zvrD>Xiw`cTGvFEO*-^3Qj0o=FN)Jv(vd25muw6lLLyb8#;JFP$ZqY=k?pPjcCT^tO z``p|9;m_2L!C$k+i7{`i1x$bJ9Svt{K%DDp&t30Wf6L0R91FP36Y zo4ygiVJEOqs~M-0rX}&P3q}6hW?p7*cp0#_JL8#0D~dK4y+~%78+wjYMwS%0U$4_@ zoy!X7!#{D03q$caIVKD#pW7w8zmtHRpM}TV%-3fsD?q=mQk~?Qmo3u&puFdm79FNK znID@wmA_vR73lJf|5}h?TdW!&-R^9>U+dkiBkmR?4|L$Cb=_;{Sw2_;y8T_%_`c(8 z1XrPhijYD)=gqcMMW_5?onwdGTxPNl+~_`GXj9s^HM{+%_+~Cv#SBsW#~Q)=IQ!TI ztm4^MoNSf9I^;_ikn5HDS&b;H~9 zGwNgq3QtthchZI~oSSPn8+@ps9a>&6#{PWK!&J`R(zu+R5NM~1#PghEs+1iU1#pD%vcAf=j-1J#{Q!#yQ)oqGt>82{#I|Jmd8yk7K%{M)nuL?|*gEc?b z29DIYcN7o2G{MgHZeum6Zf&JK^gCsH#{AGbY~EA!We@8wBb*u?Zb<#UnYXpwWmXjj zc6!|~XKoG;?SCzsS6$();`@aMMr3kZmUq~D&-%=>Zt-}1VHvUW!P zs!TgbR{L^5gH<^C)h#lAYrh`Dk8i7IJx`4%OhxsuUE*Y;=c2IRDEv-YzeC+5TV*kQ z{HhYKE$c+y>7*b;>YgA^9|@@(hYraGvHaU9p-q%S0DZK>F9>J@I^WWM%#`A06~fH} zO@hr$n5yvd>3Lw!+8uMDJo?h;i%cJ4$b%tocNKHFap%c7s8hJ-kz(xy4${DAs||jn zl8FbSsS|AaPM*&XIzXcEhn4!uk4kOqsnWM_m~ev!C+9zyA~kdb%NcxU2DDPk=q#;C(qs`*H7zRExNUdcNA#ncI)WL zjX0B^0yIwg;#Z=)xzWnn>Tnk4^51U~i6vA`w!H^Ty-CvMX$_1{g5i#r0@^33NR#Cv-&3)sOm0uhDwYirleFiw{Q_5mxpoQvEJvBP*)FK19- zyfSD>3xTYGHH4Gv*uWc-%S0?i)aMTS;7>@sxBp%P)Wg_@P!MKOjVauzDwVB5-$>Xq z9@arg0;+bgRF%uwK@s&odF3PS82=K(1|4!)onG=Rxt#&&cJ{Djs_Rj5{mlN;jOPB1 z!cXIaYw?$;w_=}z?EaHtiUrw6MeJi>(~14KaPwNM$7t7y3OE{~f-_gG@l6iM6irQ0 zz#wo3+;2kQi>nPA9~AF53%Bk?akCk68~WHBLM%3rZhil5eE-i-7iZZ%cO1gbSB+F) zsW8^$xZ~*XPCcMpd1^4VpC!~SYH`+P9q?QYyKvL&yp3K;fMBJ1+VB5R1)}{Uda}NH z_40%~u0N2!+hkWo$ts`D4y=Sp`3SuvzH#r_@2$pazK71)ZZ{SGc?}M*YOy~u2QAP7 z@$$yab;!O=Pk&r9VzRu*9U;)p5KVWvXLr3fX^1X1sBGGMHqY@lx84$pF_-BgYwl`) z5?M!PVzHg;i&a|RM}0FX2X;dm+`D`wJ5C9E3_~E0-xrWQ+zN3ZJF?Dp@juhgGGC3X zcv!}-$ZhhozVwVmzERrBqNpWz<9^ksXT!|%sL3DdTr8Zq0*;f0_f_=fT^gzHs9o9N z%S%u#dry-TIH*i|T<{h+=54xB-F$p`G4buWhzshamddn(>aAuVzCHfyFxTee8J0e4 zF5bFdEhEA4;9H03QCFx*B*R+o52)<#Ea}s*m9Xpz5Akf_Vsq|$<}Jpd$x89pw7b|l zjn(vwl_k|L*A3(5w?wCc_@^2o(4$0*UGQB$HuwzM z#r7=pRqdkl>*-gkUvaY*IQqLF-eZ}$kmUP@B=;2M-4@mEx{f5&TCzeAG8C6PD%;JCXe-N_mD z^wRr*m76yRpX9+BflYlgM`4gVn01ex@!v?}K4tnjX9(;S_6$k`5lJ6t)bEr>Q*N(i z?*BLtLVkV%=A~L?3hgevVQZ0*K=@2f&94>gUNaV!i!P+PC*DDY`2Pk{;~+FR zef2ta;$U|?h1(y}|HcW~77cU(L3I6t&yZKQNePSz_621&1<8Odjx+A(&0#O7e*xB>FMds1DNBjnTqd1_m9%T=BMER0rNdUb%Jbm&w2MAYU zh%~C3TMC1k1l_ms7g1;5|Cav!(2mf}^HuL3Uu;hGHa1E}Afp?k{smn73Z_flw-Xc1 znW3!+l((&fl_Hlq*;A7mOet&MuJ2`5)Pxtc zr^MCxA?ddqrq5_%<0S*N*th$^X5@KsgJ&a3Z^M!N#I~IUJ27%=Na}+MUeC)QOj=Dz z>kB*$&21~p*x%-vwQ>z#dm=dft}P=SuEd9DA6b3Ik44)F}Xz$m8)bOi?YMx z7zm@<>cA5C&p;h~iTLNtXg3L_?oExoCM8EhFBgQ;nV7{>OqU*5_akmW+RX+1;+k=*J_G#{H;g z7Y`@rD%aG~55ygj%N;&=_0Q;QYfO~G1qQ}{8Jkl!J-uJeXahBu25gzS@mYr}50fAM za&G66Zd&^8k-fTSNLJ4CpF92Wy0GxfeTc}4iJY{$rU@4J<~ZCX$SP}&SYJrj4Kzop zn)>By+3tOQ?Y{9Ud>7^L3H|o%btLT<7uZ*+1;_s?wMY{S`idPev$Ou6v4bl8_3AHx zXJ6!aV20RkF$V%c2nQzq0AVM9+EIjPZxF`GIl9;L@3tj_TiWC4X8CV5HvhWGSyZMW zGHh-2MBc;1W?$L1WW>*b&lUzVQc~RwblA-~1CfQ+B0Q;J21)YURLUeN-LdZrRaY_M zz^V<0Xme^Q=;z`>xNnl^m^#;F^8BNG3Rg>QNSC;ZH9YBUb*cylr8=kH@06-Q71NNe zXIUAeHtp!Fpo|>zZBf_*6e-3S0Wm} z{~~_F${AD_V@;2_mj(x{v{OP}22KUzxA1Oi7Y;PUg^T;{2BeOX+Xg{_{y^T!go>Ul zfg|iL&no5L)CnO_XPwh|w7(^AReK;=r}?HuYa9r&NuJ=ObF?+juo0}RDl|5lVLMp+AOR}mI%49dMZ|xNl)HvWFGQm7(NsmF2`a=>v?)m6!naKV zrkgtkgLFegHtJ&C!fP1RZukXZ=%!*fi0bEBz3I7kP&gxJfy(3sAlDa zo9noo;EKjee!)1M3mn3`AyjaH zDfF>(u3j3FD$=9jvyjJ&QgLzQk#+pUr~Ov~aYtLPE6PFVh&EXwg%)vyZB|9`-$(V6 z_#YzmFBqPTL;PhBR8guFB?}|mz3cRrMvQ22yeP3`HU!U_O>aABn+#4nRGSf+7?5dj zsx)?ZH_#aQQ>^(WrJ3Qt4>@Le0$m9_D~ryr+VqUQe3G~+1qh9*dx{b)(!x$C1ddPA zL{7}uDl&Zaj6DQp5b$fUc8G%_5f3U_H)>`FWbrGw^#LMzass3|H8SIY+;IMIiNxS! zI3QR6dpKYoa{|rG}tTMm+Iv zZ);%I{A!KhOh*xl0aHK7{+vuRjs{zg3)@DkEk}MXvPPrTT*Uwqp$uX!FF__-^Nr!qT|4vo@^igw6u6mM-lg47GQh8?BA?r&C{3 zhKQK0znfsJCic`vTYd{nc@V^wl}dflV~Eyzb8dnyRokeSCv6f46t)^LJ;Lpw=}QJ7 zCY#V2r`rK7EMnaOV{E#B2A8@ktmlv(tL`VjKugM}uowPoM^hPGcBv*Z3MSob0}j?% zTLjxFV=oUx7b5nbZMxBEfH|+1iQ+PU~7Nox^&DkMijBv6Lj+b(VZc8rJ9_)|DT-2FX3JPRFWSZKGlQSEy zxH0ju_CiUo%pfS^@0JgRL6FO{%=h5x)g41ftJwp=a2Vu?!I8tEux2FMF@<`fv5-_! z&K&4n+9mTan3KIJqacYX1*mkHnbV0)F_nZdqm+E`KBm1=MrvFp5n8;n;3W3K5GZwl z3JA#QoUhR!WJ{48fq}IW{pys~&T>j9zvDPeL^3B?L_~C&9uW#q>Q+c;!dLuZNK7tm z$!UOm17&)%0U?W(CNtvEH=j#K0jq|ys2 zok-xN?{MqHvxbmRzngQlsTpT1!jP0NnW1UysN#(sd2ZX=38PN%p+d!gOFwSefz8Hc zol3b>>ef}TU(l)Z^V6!4ikr*vO5=wpg`f>) zGC-(Z8k7pN6fU>X2p8?G*fIQNPK*Kt;R{*SA*~m1(1QRWEW;@cNS%(xFlbuDL`6$5 zWt$!nF+v3|qgWkgNl-H9uB+4_(FQjwF)?0&*F@~grqiQ0g1VqP=m)4slPak|>GFZq zYC7rf9Iy28rD~mY6st*W|!C zD)kCywn-+Xj9^pcr6Yx)+=fbqmICPK+P48v0=)ti&Dlw+!j zfLJ%1_Q}JzG6bhsEE?L$_ASw7f6&BbQ~Q%-uy8VBk?na? zQSW9)V&= z3XY9J>38UwjX}isIME>}Vwgc;HL%eFC0b>%AvtO^8Xn>A>;AjpJf^i9k78)jEaRGC12+0KVEV+mg0SA|F>oeg(l}?j+Rh)rPT5^KpYSKBy-7(-F>js2E?? zv6MR5^)}uxP_1=~r4JjuUOp4UJ(cKx5dL))0l6v1Q7wE9d_;&46=Pp zjQz%Nt0h3Xg)PDy!Gh0c=ta@pBY`I74*tHwJnnGixc14e8F&xQ-m<=FeW z2Nn0VENNCy1!KLi`j{IYz(@J~ zOkiTTJ(TFKAJxqBaa(o-?w)$yo-eOIP4~B$9k~&a+eo`}G9CuLpf7}`(dE7T#xM%6 z5R{<6?UF#3&i54eJy?5}pt<`Bbipg%jQm-N@~@VM@~Eaf{MUY|lwe*>f$XarH5M#} zJp!qGvjMNDvvH=2)TB8xg0$Y$uQWt;AKd)DUy&^r#!J0S3o(tB`rA=DN4L(-U)A|$ zH#62s6c_wX26rwx4vP#e{9BRu$c?wd{yFlh@XjHiJyvJ1}lhdM=T%v ze;+{Xu;h%h86O_drY|-FR|BDNnQ76lr4BCpf`J4zLiiDgmwUJrQ_`Zf|1*J06kG6V zXNCRS>;{^%9UTAbE)PKj&d|H>$hZzbi2MBj_DPFlAcLl?|)H$iC^UQh03G)DIR2b!ktULs}n9p#_d3#PIA zDdegN;_8|8C~d@@1@H1Bo=_XEvy)0{FwIbN}rW_9gD9d9qQ!G6s9r#ik8sh;PRE_*AunY|EuZhLXJ`+YzGl8=7g`JS0Bpi-XNul=4?OE@lj%kc zTms;Fk62YdLCUv2dO=VGnn}|s0X9bnJfC;B+&1gTzSW@}?u%u;MNc$s11g~$r*v)t z|8+;AB!ZrLFT$DemjS-F!^v&PN&E7b+oS71iyUjltkjvl+29^3BDmyUcMc@D#^ zfBG|e#hIHhK*f1x3F;9sQ={wTJj~s8emrT#9Y5gf8L*f0?)COLeCAr<$~*n={S7dD zaQS^6^Z40)b}H9`fB9*@Xb(q~m%z&0+49-+H8cyF6-QhO-g^kU?cr1}|K}I%e(znc z%)wHQ)D7Jii#-h;_$0>R3Dq_kQ%yaZ#GxdoKt---%6}xyX+^G^fWg^)*Z$g5tnD_R zpN;@QQja{}upyJ5Ark18`rBKh=|5L>#r>xS9i;eDzM3A1$KZ7G-8ftUJr9Hvy^?j0 zr!d-F#H(3HqRZ{s7{bZf*$RTHfnD5b7|W1{MZ*tWn(6O1_)EG$50Cqy&No-zsPcfl z`3&v-hi12yGxnY<1ZKmB65o{LvaacD1(MCIT++;n9#-7`Ib&-=U9ORp9ha@Xvaq$uG zeaU?BCmIzaS?JOT0ILZdCs*}L2iGXhcX{$g6L(M1#bC>tsm7qQ?ybgv02v5pD9wfH z{5%`FiC+yoqb;U%-#+sAewnlE$=F!LseZ|+Gs0#AU+!AW%R82k`z@d(CW>}xIz$JM zKIEAVdndoE$B&fUTCAy@(y2a7lkzcrayMGyNGm%!N5<=_^Adi!ONB9a=J*Ts;Swz#L+*D_O*IA;S z)fp)c8M%%Xdd(P*}{^z0-NL0fLgPcZN7an9^V`*(4lSMrrv%K9z#QE+>@ zeB>@H=$hp8*gd`*h&-0;V~UEiv_Ry#CQ|Fg0lUYz1##0$LJ=DgOR%TK3LvwS{h(BB zaof4MB?udoADX#)Fe!(3m@&?F$;|K)H(YH@#2|=0(d|Y+gPgsayH+(|cF=AA6YB-- zok?_pcg(edD*Q~n*YY3X?2p!GoM{y_xy(KH7X6Wf>mGfNC`GInmze7}N9?V=uhY^o zvip6@n!=_Zfr=hV-qZx1X5_tH4#i}9zb<&^$B(dkMSkhZoReRh+YRyEd5rH}$fx+{ ziHuF&$CUfP$@;CPWyf_4e_o4(vYu&_t(|oYLrq-@M|1n|($b1qj68OUx8Z?qbW$x2 zjWLT#ze#EEkQQuI9~xExC4H!@R&-h`4%3Yf&$Ca|KZ2&nx9-i7=lNQ^wD1pOBF~r6 z+3CK?>s(S+@4yr<{?*t^?^L)#CcbXe?{eUMJ>9D)*oPvkEy@eX#>*%O* z=VxonZ7|TDu%N*LLI4o}Gb}D(UA?JmE-lgDU8jO+~P~G^e_a<`^ zm@}`1#g%$qJMg5gNIEYBTNd=A?Y9?P#)q;LVQ6-Z7g&Y^)Dv-1{0BbTG%oKySFN7Z z09Ta1TkasxuJfk&3;c2RN;Uk=B2{f3{Dx^j?D6%_E}@l=7q3J4_n$GB|BRoT`Vi<_ z3?=XB4tjmwSO%^APRA<{zIOeQla8i-N%{NaVP~~Yart{(b(;BNO&D%b8Y$Kq za#SO+_Q|+qzC-BNVj9QypvUbnkLJbg8G3}&guEWN2ga@KW4^(#FLgIAb=k3uSKJ49 zSo+_TuU|?^=dC$YuPq>a{xwOD-MW^x%7!R@Z!KF7tg47rUHsts8+v+Dk-L+Z75iQ& z_O?#(`nB#|^b@WzRfz9L*S;rgR+7@RdD3Nuh18#=J+jD_-(#HXuM5w|v)~+|HgL9L zk}vrFt#Lg*JRpcdJF{v1_Ov@zZ65?UPJ*_MF5A~*tF~&4ekl1Kt1f0J+-bKWxji=WD(!fCRSsT1^nOul4VOzQC+Q??RZy}Ak@jB%A z<{`A@CK+GK=|eT~{af1c-us$w_%d6=F#6Jy;lrUoP##yLI zD8)y(y>VNzYq1-5i?GrC3WqO=r|k4Jt2Dv9XQ1w@ye_k@UT=|xyZ9r5GL3swuXv1< zczVx$K(x;b|E$LS@-825KeO&N;D#@C?EFN&{4oplpRXSqjFbC+cU9v0-> zW>q{Myo&|#SS%wi5=r#0oLBj@_+Wxs(n1r0nS@2|d~&XR{{yrb@I?3t5Xdf$P|E6W zzNpW-95pMB^-{gg`7Wrdxl#GOP;?Bxe;}52N&$NKWngsplKK=8KiQQ+2$=Qi6UiZz zQV2kKWhf;5584yKEu><;(VkRUfzg~8g^3XH+G4&T`eJ9^{KluasZlCxzpZhJ$TSnV zE0D&z*QFl@<)Uob-YF)C#-18m^?(N#mD+6s%L@#Qh07aG(bvG|AraQ42>WxytYl|I z1`QA+^>OF3rawf64OK4pYq25mSK1K#_^PWgxhrT2cTij+3zm?}AVB4HB9R;%Xv2Ya z!QepR*DL=iEEzK#5N6AUbYc}jfRd+S>j{@%c_^KVQF(Z>_I2^#j%ebiR9d=CPAgox zRZGRFI<#_$T)JI|=UBQ$ARN<)y$`xM0EE$1np4T+RO(X6t-dY;(Q1(qRzPb zpc#mBdZDGkrgZC7gU;~!-ysRW21HaG7#=|mf76nXA2!=fg9U?=LiYeriIaYZ!YGOF zaF|vwlqA1IGM|3OVDww=ip4MH9+n!zj@%%C1-`FIamq-kB}~djAe)7%2{-IooJWb< zFY@v$>oyT7E-Y1!qc?G!J0I};bIc*)k*Zock1#XRf)Xd@4bsMpf3OlK$>5GI8!^4 z67~b4T3R@WIX*r3d;Mw+!L%)__lvEpOGM0N#RDX?4>$#XJkK8Bi~z%V5XEf8b0kSS z3^l%^>J1WUdZ0u~Fl9>dF(%Vy-2|=ml3ron^x6lOEg?LSl3J$|UbIqUrQ3L;pg|6s zeFDUDdciP*{KAmaA{`qMLS|#aC~(ST`}r9amqvdCFL5RgiR zQ?5qJ8c$(=Lk%uf=0@^2OZbigGDa7ZgB}8+Lf@c;M^+C^vXY6^C1}E6{)iRGr{Ll& zuiXu8!WWgk(6sr6MHw8aGNBwCX+lC343`|{WZu34%O@;zk69 zvq=XVt-uCgbB2LSfn<}?Xsi(Eb+HMUp_2Rj{sR=2JWFdD9X3;IPm8otqZXAT)1lu; zy8$n82!Afv)E|XIhqVUXo%t}I^EZ@Nmfawl9L9xadF}nNaC9O2CmONN`oV8EgO(Y8 znRqJf&QbF_@E_2y1eG^2g_Pi(A<1Ne@cCe6Hq{P*4`)UNC??6|VmwX7;$C1jbX!|y zWK@|I#kV_o%{8SmQOz}fx5VJ)UNU@&V^~`bw0>@?gy3M|d(c&>`a<<76foD{E3Fnd%+=VQhW!3Ua5Iy|z8hRKPEMO~ z2tV~dlX3(I-$>x+)l%$2%=73DHISkZID6w^Ro7DuX*ytJ<*5errF<$|KMkJ6*kkN~PKV^>W_PvB8IYm;3 z?A%$vmxdbhD~jxANi`)G9qDgSSwFHV7D8L{qs;on+78NQJ!MJ80`hF>3z|YQ*#i+z zc4XKuV;mc#mgTR?l8}$1MsxE^3-GOih)>k6{U-A3z{D=Q1)IZIO&M1&;n_dKl1dsg zhPIzHlFi%OAKgo%f`n%~?GjYsIl@Mxiv-*5QMR-+0T(5Lk|W|vJrK zamY2g28+@g_cn+Za_Xwqio^^c%`8oj3fcvUQwXwWF-uywH$;e1sIi0V0}8_a6$HoR zzkX}C;lRShXhX9mQe24#iZK%}wC#{cuPef4^24!VC;I5PS{2_xI zfxK=P+Qb$(|4+Eo3Th|;Uf`RiJlSy;NyR%I31TEFq#mnr(Reo4n7AbeJjU^JD793k zDtVfwok7f}utTwP4!pD98^94Tu_UG^FS=^!RMyIxYwsIQ#f)v6w%7&8U)toD8&1)ZcnSg+v)DBO63 zfUrH!D!7$Jtt%m`zggz*dr0etAcoRaRxL9LusO2G@u2kyY70hoNZ=fc5l4nu(J3Ha z3>*k)w%3kEm)=|&B1?Ot$dqjrgx0IGGzKrn&ID&6;W-2C5yrCh`NfG(VaJk4Tl;Sh zn^?#$D&zcie?*bE=e;BD3qX2g8~Ar$^7-ELRXDKyv3&jcw$Jt13k^s7JaV`n2AEEc z0sn5(fOpMdg8*nQ;0meX?={75^q1&X;>SVh3{%rcdOh0$F|5P6%|HnMEZjrABR!mu z%4)3h?2x{xrkW5_bKTZ%Oss0F(|(T1#vhC2^m-*W@V`U8_4i8{v!i!Q;_o);NgjRZ zJYIacyfVylO!w&)0(Fw$Rjp|~75>!PKCYi}Vz>Q9jBn1*1F$^2Xl3yX*(q|JPY->9>O3adV_>Y*JU0*U<#&0Hc zU&Ch|D@pSC`G3yJP>=ehpCZp?hxBo$&n;RpYWpi&n|}rBAr*zxS5CX`>2IVCV94CF9;r43b4^+wM*HRd$@FH2p^D&MWx9XE0UZMDK0!MQo^& zNfH7@0S`VS(APXSx#$A(0&fqFb^>>lIh;aO|KDmbDclxGck_>FQoWo}7-sE{C*34c z?^7xc%jQO>@#8XivKri)bsmg)jQtOz2#_0=&4^B8#bq*QHTYxJnLOq}n{=Z>wO{nV z7`(VluB--UW}ORT9%Ww)>ir^xVc7?d7rmB4zs=?<<~;Nse2w>Z25@%4HbzOE_J0zql$L4P`c7_RtCT$#j-8U~cPGz_pa0JDo_I@LmufFVX7R7DmLj`6 zz4F_Gf1TB`YiBYtFfuSOFjdi4G5QGD9(Dx!yu>>a-nxo)Tdw4&#>fk#*CDt80UHrd zRFhTnHErjmcNxS>MD@vn^~pXWew%ES$P7aTtqTKMt#gC$D=Pd|ktOOpTJ?=w@se%_ zS%kJDvzNOk|FmB{CWnf`1PWdqs&g+N%*PHV{qH7|?i8wHMHl-@j=C`m7}yBwE_GRk zQi@w|F*Gyw%2oC3BfnL4wOa2337AE_65@pp$t-8=1nDUG@z+g5D7;kQR4;J15s&*j!_AqYQ%ANZZD zp>bM<`eL8&u7EXKFV+ftkiImp0Uac;9To6tG1I?A$2+pq##MKq`OYgqsq@bQ=aW{4 z8m0}87Sv<9NW=Zt`^>@qw3CMfhUMT8_L1g1W7T@IsoQ0_Ed!WLv_jSqx0j)Uwyj(r zZR;`qg2xZRnLxA@YPEGRJ`ZMftOXX=YUDG$`+S4)@SR9cwj*8iJ0b;Qt$z)|mLU`9 zs{C|ALCVfI69{{-=&?iqg2Q*Nfvgcp4+rrJl=*DCIx+dE9G-np)Le$$8&o3t-3YW? z;$2vjCTEE#LIPDj(#DlO=G^BUWn`kI9Uf$&!yQuO+^cZUKgCT?bBl!Xj4=h%HT!J> zyLcAFW^>7dIL9k<1nVKo@Ff@r%p*$@p$V<;q-`z}wGEL$ktU{qr-8<&9;?9P_4W`l zmoo95>vW~x*nzDnsUUWRq0P?A``eDKYv1yjD1xMg-MH)VgcPArNq64<5A!`z!Rw60 zr-mA;(Da^)fWyu_Usty0GmG%UnP_-WO+LRVU!juSxj`|Xb+(FYOG5xry1Oi(iED%w z8j+t^YI>ca1n&e0NR9=d*@1A?mpJ;Kts;6Nb~O_!5s62@JV3-sW<-8A&EmE0rT*pb zu%H2E55tB~m(>UEGjYYo_1?(-lfKUuTLtpJ?j52t<26HTBg;>z@L2<}3re>Y=vg&YhUT2Z^3wbm0{2mV%`qk7{bIj<2ig_i4{R1p1ccD&mB z=h5Pd6wW6GO#i5}ao@F;(YSd1*(vrDxprk0WOn5BspHwrpz|VQagxMuXR!VIQc!O9 zQt$Dp8NLR_V_S-@3ww(MlD%|6{<}=sED{~Uo5T3(8ojT@qG^M8LO#uC92`K0kPT=EEB1Z8NRNQlm>cg19^p77q$ss?&4iY>TC|3uX=?aW9w(N3eLEsch5XWPsRfulrr}EJ4Y3!?X+OR#UuX&pY-mH^)DhNr>g~Ciz@Eb$N0u8Ug=KdSlZ9CK76sX*70M(Ea+mJKO1xe8D ziL_|S)iw(}-l4v@W4!~@7y9&~Ab4aadrevB@W$*nc-o`&py}cZv-s_grBcF)CS-Ob zHR8Y#4{5`WGCmD`B=zl_rCqn@ap=~&jY~q7+~OBCKbOL1S~$dd zfe%Vo=GKXKC#DNwJD`&RLeK!|6QSS%so?snRXd;iX}zTyu|yQ#3$bCHM5WaX7KmqCLtZuAlkO`f@b;kB`wxj!D5=gw;V6y{kz>QQg1Jz+H3 z#(A|cl68NxWO7stx2&yPcsJnp(3w@@g$o$<5=KbH7@rYp;T zXS6ZR@?xA5n-uea_3b1s7j(GyU=p0D5R?l2a!ik`I=nl%&u^Y2Z0sY?`Z^#ArSjhf zyLEAcQ0T|0h%Xx-gfOPZsS}6f#!mC|55H}7p4OfJWBmB%|9QXIN!`#+-u>G0W&Z@g zx@8eBE_g?pwtJbgIfMq6Z4vL0->sgTiR`9*_A|e~uSC8=1;0LpFZ4(j?*6DG3_Awp zk73?RZFoXxZ?U1MX7j%Ezp#2-106-x#g6FrpsoxP$Ae0*bYgEUN2riFC7p#`lr%4j z#r|8QiIS`2OGnSEe3a*+@>!n@{1N#c+uo(ATaM6TaD7vjrwz@dRm$(!)m?XvGw8G4 z#dg}!McB#Y+uG=v#_0Y10d=mYDL=Ej%=2}ElOE=x**^>NOk9xFd_|cFpEz$NEa2>o z=CwX;KE|**XGy(kT2LHK$fw{#AX68=nBs^T;EjWL{Ve zy1e$|km-bF90ed~z;AxeMJ#P_0ViVsJ(6{hsQ=!wqMkH%b*FowF=nRu#Neh*Q4_T9 zYv1`0lh%8K$F=n^T(RxZfzRZ7lCa!-gVkc9xy9fXMb2ab>=Qb47RO+>-W+jm z%@4mVdl2H+XjizoZ$MAF}bL2TF3hM+AGxRE)tcyIEs5NE}|D^}xns64_6&>^zTN&bT3B+tL~4`{Tib>qxmzXx8Zytr>G; z!m>p({5Ih66Q>3i*e^2b1dDbDZi<-1E`%6*_c-{s$02@HZ%oa}tRFXIHGbzv>CswxE0*=i zcK5*+^0EK2lV5tA3Gcl%p!@31wj6D?G-L&^NsvJ zPd$&1mD_p=GUhDO`tM^2_!4lrv7%O}1HHBYs4YZ2?drJhbLhoUbq@+OZ$;Er3j)Tw$33fYRG)L|a!gux zRF?O*>jPKyBh7|`evIJNx`vytZf3qjDSpW3c|u|DJA4}pSe%He4tH?$dYl1+hAtQYK2hfNRn5x0Q%fVzQ-Z@JMa z0^PIiKQwP<){#;VQRv4>&#W_+0i2>kpJc)9?bn_2N}FxXQfm5YBE$z~!E3{NxHEd! zo||_e%PzRIx_n412zGYv{}=Xx=YIugxH$f=R!&9wlT(MC_FLE|0?$apuavM5+87K< z?2u?aW7Q{Qw1OD+^CUEL64%{6Ct`VQcQVPB6DFbiujo!QyDQV9u>e>aEsQ zMc<^tOLkxSKUxuuMO`{#znv~{rz2I=L>3ti>x2Htlo`o9Fr?%PmmP3uf1~p%LXy$7 zR&V3NqY#GnF+LlNcMkXa()+4pn?osDP_9eAGQ^EYJIKl9 zVhI`3il_w6ZgpLr!nsc@GAX5bjnSY%2+vIdgPS+Vy&30R34NU}Hein`N$+i?@qEj6%!F-}Z* zhChA`GOJc)FDF*(HTLtfb%q@(U)~1!ChMNtB_#Os-^r)l^Go@IYgXII1=2;Au3E83 z%S)rfK=wUuR!G@dX1dQA2k*00h!kyjMbTnFbQsw z4t&j@-VMr1C08g?wDv_=3XAbx*gVNAWAvi>r48D_yzZ7F<7b=tJMHpafscVsKlV%^ zn&6WszNxt;!~ZE;qaAq9;uPl4_O4Wu^tQ2p0Ol*0UCxel>7ZPrB{fy42EwWxBnBVl zbdPMNlWSH}Y$VGZrZe}Xnl0fd_}1BmQq?Xq?6Q%GbQtlGACMW#(Te^QJ5b~&2BNrZ zFP7r|(I|J=FrF@VFB;6HMYegYbeyPds`i_jcvgSUE?TRpkBBkXOiJ5aQx!@xyDV!> z1S$m{oX3`OU)z!k1XTX4sV+)4Juc)7A+%O#!a&S9{VCApu~&onzPUIZvYV#=u7`uQ zuD(ikL}7Dcy`99dBAobMUD{e=1Brp)J`iCL(1i=Wy+}4^P%pqh5>v+87}y|P0+sS8 z=8Jhr^g3>Jp=1OpUAt<~7h~MmB}&j-4_=!$ zS%6K*3iAt_&ft%CQwf;LMOkD48(4W+O^F@4I<=e{F3#2>q3dJ48!WnZlN%;@GSKLz z&a`G|n>M4>;I`PNawXYeB)8-M9cAiJJB)DD{-*|yB}-*O2@PfD3&c^GiUeK?U%n|> zja8|}w48}jTU)MVC|Y(s7=Nm$0@`lOQD5Js=_7DC-aY z$7o_zM_3!{8wf7M2h^L=Tj+FBbEz5EFkNgvu~uoM3RfPr1TrOyX=1;mN@W1|nmy$Z z-n`r5%`a$>QI;+gkV39`-u&NL)2em7e=s2FmAyH~dSi^wAwZNX>TIm!p=+uLk-b$VmqfS!T|!KOCSY;!s$*1 z0;7q~1pB8-!3h-yVSyh8(vJL&?Jw~RXqCk#NuNE(d~tNVQGz;G%2r6qNw z(V;8SvgsEr)s>+Z0tYkm*=;AVApeSL(2tGvi=?XyY7nHCvQ6MoXlV`pX)dpgPqEiF zz7a6h{{{D*Ls#p9`N!}dQAj9wdWK{|v)(n)PpwrrG&Wpe(L8_@$&#MQNrGTfOXMUP z981fO;2Y{N967mHd31@-3qtQf|*>{~d_|{dc`pA;eFwoviVd+7>%9!KC z_7rtonb4G4u<%4-9>j@cdViB@Esl%_QYv+{a~OJW7lsgF;Z10YJ?rY7r7FkQv^5x? zq;FdBrT4 zv|P?vez8n^$Gpi*1aYQf4uz!UVjtF`v{AFG&}yuRR7Kkvg(J}xa~#bF`CX``T~+*x zsg)(Q6VjQKZK-dlQv8P0cENfPrcgT~ziyzRmUy;98y2LH9Hv4`=TO0dvNsVad$ycr z+=5aVF-8iQVf-r+1Y_G0(6|dFc!J<)UiWuuEHw_c@Y1pO9Ww&b3^d|rP>n_X12z_2 zMs0;rg#smLESL|;;GK+HJdWsB130pI@cbBmwli%bVsLE0{&3M8>El~S3#AQgBf-O@;HmUj&I&fmZ)>IhM)U%LcjiU&zH`Lyh${()z z9UnBc_HqZNH}pn#h`o#=Uc;Z#B$u*T-xyy83}m(zc`d*(a`MEa0|(NSv=_2{Z&~-TNHrr@-=PD6(+2ocxk3>rAgI^%|xP_$-%QGB}D}1q!SntB^2J7!kG`W zktby6vIZCCw6JPe?`0J0w0$y$H>+xMvtLk%^GccvBA{k)0dB&*u0m)Xf2Q5@Jk+vHfS>sGIN!4E_qMqWylsBIzZ^UEypR9a@9F)J82EU; z1Aw>19wX#=xPRx5mt3E*wIH7_hfJT3js}ZOhXt>Wpa0&3e64r%57%p&GbJDV*bXA~ zt8mAg1_>c!8P=p+x*5Ij{~yxcGN_JVYa2y_yF-v5!QI{6B?NbZLvUvxxDyEO?(S~E z-QC^Y?e3iOzE$_TKfXV=YVF=LT{Atar+ckl)zkeva|Gd0F_+DU*XX*2e5h~M2fq$q zl`BmTK4y|SwGO*82jLP28#)1=;B&RV)vbiEw44F)%I(=102Y6hXHucgjmX@#ZalWk z2BYl8aM8NPb4&fbjuY|cEhVRB1`lFT@e0~Ig*jw?hM*ra4xvT(NX|&nx{^~mo`(m6 zhy9cl)w8qMsk@pT9nXD5X85}9EiBsa%VxU&sJ7lHApW=hknvSmkEZ7C>&>ptye+f2VWuT&*zv0_k%E+kiSHkVQfRcD`y3poP3M4 z#{=oF&6zRgk3;U#Il_;bUJ<@7dDova(+?umX5&>cfjhh9DXU)ft;hM3#^9cEZ((pS znI6W)a^zRF*HTpzeT;Nh)}8;WwWn%yU+~nlf0IUXo`RQe)}lO!IQgqY|7rTg&lA(kSFfYH4T4UR-L3y3ujcQJ%S8RzGgyEEsc(%P4RO zs1FQaFT1x!MN{W1_f=Q?b`{6RPM&8=mtT=N7!$4uBw4EPH<9sHv!6ytQ%O=NvN|H9 z)DDR|<54Ie&kZv^`kgyIvuH=(4v?9m&=+k~J)}uuQBJQcg$+!*x+V~jns)mAY5u3h zfPKsnVr#-We_OEBk{yZZ{y%M9F!!2ok!AVChFy9cWLo_HjKOp^6Rl9kl9{^Zoksn^ zT;$H=E$e)FBL;PEH{EmdyJZCaMzHa$r!=DR^~$EmfkHWTwF{3A4WJ*3GJ7C)YZmS3 zxrR5Mql9ZKWJgjJhIHU88E%@pXe%YPqOw_a>)%tkA_9zMxH8#v-x)l+J6`vHK8cq9#4I6x*4fa>hw2WiLU86;{pF|Zw=21n`AVyL`v z<{qbbT00cDipz&I_rG#CJ@f;nf-HSQXi5*H2G2k@N1AT0a>G%OYh3;~p?vSILUc8-xbW!Bpt{-6Nez9Yb{R6J4QKA&vwm;NBkPhVxD0{i{9Ew=}6})}C76 z(UZQt@TW&o&yhVmr93Ms4iv1-nFKPW_YV<|w7=3^b9`fgI;hL(0&+WTE6t?st3m}h zxM|~V_)iv$2TAEITnuF5Eggp0nM*OQppMuVmAmtqME^zTk%Nd$M9DoMz zX|6wK-Z<$0E}B}pV8d`>qh?RaWGgCna8o~NYsFqy@8zwV;@aV_vXnjOh_Ut`sbuDL zu3jqdm0DQfWWQkm^>y7H5)K7}m9@xXzxj^or=`kC6>aNc3(I0z@SI3MwACH&I(>Y{ zs$+|9z2}IlaH*jWx+A;3j_G#9;#kM3;|oN8b0XguzV0Rg+2$QCccC^~uoox zcT-`*#JQadH)l-4M%P$dG)>f;6;AQ#FU$&2`DR9Rtae_XdsIPBzPw?2odzuwi$`g&a(RSRnOU9cGzXd(Vp;-iY-#}c$*-v%I76;SocPd> znbPIm8{{TRpTzseWj~6=bizSrkWU0(m0TO2!9mG$4aSDg*JmhQpS}SNEFP=MtMInd z{1;tTnn9j(zzyQP5kvXL%IAhlYijRS}6O%?FZLtJ_Lf*GP$VJmmJmt-Ij=P zg`PULp2=j|Hr+5W^oO)94|7{D{@_)VHgbmAh9wZtH(U{ExU%WIO|vnlpcZT7a4bf! zrZ7tF6&FpFH??ZuW-GqCtDB+JYTxSGbsZgablD9ByB6z`oijU#c108CX+cgbk35ca zUg>NFp5jloe=)mP1Udx7W9oZbs9xya9K@VC&z`&#t#bt_q*jDmL{|3?A&6s(-*v3P)5>9MFMkz0bmR3DD=AYg-dzk6>%I#OWVyk(e zOh_3dC~T=LFl@eDo^MWPr=l)*R{HPMp_&Vce<51b1xAJeubSxFxh ze@iaON>|4X!WiZDr}T-3`VpAv7t}da0RP0<{Iv~us%UHj-1VI{+6u6>6w)GPc_Vhp)t3|>0h@LV4nincn&|?lyl9l=rc zmS-W~$=Ug#Sd{XqqV2%c9FzbTwk#%@e`QSr>zKMbv6QldaTL2l=+`E2?ll2?eZrUu z_g=jsf_7mYwChdO&wz8DX||(_?B1jbcf%}O{cJs0c76q8lb3n41QsR44*Qa-tS-V? z!f*ACZUtkVmy|x}(&?SGwF&xp*B{b7G0N&V@|g&z z4D$2ecLeGrTqlR@>VNAalXY^6`q%}%t|LCtPD%Y*`jDY%1Tt+d4jPv5I?~p=R%*0v)mc`0^|KsXqSFs1N%y)_7b+9b=3Ea9o+-BVD5F>sD+fB zu|2onPcQ0W-u6^mw4VmN5mp^8R}h+nd~aTS7>EnE?E7B_YInG*-*%*}(}4cweKW#| z+C^_?664IXvFm4Osmj@r$_8&W8yE84r#s>&`fd4p0EBS$0GG{pR>qmCbIwx2!7*FD zB{b-`G-P_9bbn{PTXR#i>_+eL+0dP?wNUr*~+yP)E(zbMBjas=7nn) z66Hb_1ovf_zym}>Jx1UeU3n45ucCb};25>YwT7X4%GfLKJ&D}3LZ z^h96<_1eQr!yFiG7>H?9P;LsXbAo|-RahRmS1jd$xmUYedK&A{$2c-iFX0Ou%LP2* z{51wV_ZvB&A3L~)x;l!-_{FLb;IeBWK~Cr#%+69f)6NE%^mC*Vp^a4K^@h)reaF|G<6V%}xXeLPUm`<^Q z_4*8f`!A29A@*lwU_nNm39Vrh4yA=T&sf<~&{yX#{M!P;jq1A@goYDQRc4ZUke(&a zr>{RU<-?tvydi_#)a=T%pB$!75q4TsYRF;&e&XpTZxvIPKS{DO3E<-Z)#)D7VdbY& zh;&yt#%{;bRt>-7rMzf^3Nz|{5R7%z44B~+%4Ytj`34%jti;c8Y!(@p+eQyRFRK0< z0u4jw2=-Rb`UufCV6-}w>gMnhH|XqLw*mHSavJ?==NKc>J4F3@{yw_ zvhQwsI=R1cH@~Ex2iR(BcUM{56UtNP$-J~krO7{D`d!ju*4I0N@ z1r(Wl44d6b6CV>Ac2Qv&SL3+F6P4SCifh&sF?_rrw}mNJJsiyWPZ&qr;y5xld}AIn z#!d)OxfCDTV2~rY)4WISOeLSaY^GYb^I(46IC13%&6q`d0$X<13Fy#a4rBzeDtO=0 z(q3zB9Jp$NFpMWWw@6S6#CGLEb&jB;K~eFS_w-*AaRv{b!t3GYq1UztGGFg`l>~7R zcBDT7wJ1NO**aD|nCNvxdL(OBJ zT*ldz9x6#4u=p4@`f~FLu|F3k6TEW$5ik&(A6~e%JCSub>V_iB!B(N^dl+CtwrwDBluCG^^u+I%9Ch1r<}xs^YZ3~6%L*9hd|V$JU8QdJDm@s zxK>EI&0U}W0K~01AjyyxE6D!+0TgU?UHHdLKtEIi7uop?0$8eME3lx*7p-cbK(#RY zCB-hpmtUfbXGN;1i&LVDVBn8{AZfJ(lwwXOfFb>wRrToeBD-St!1;3TK|;UAg?0bb zZ5?{UD)@Ob-9i7e9C{}aDdzTaAOV*dqd=!PeK-Nv1~IqKIs)+@CIYfLH`iHAodt*h z?A9i7{F#EJmfex9wD!ky+01?kP{4`q5D_r*=NKBq2>1%@e$f9(6kY|Ph;eiM4+BXH zF$hJBm5J^DL=hX)9jjn#wgK%c;ypy_h!uMS55kdvkYfSo!}Y{5F{Jb-3Ejc{`3;3_Oe>Ulb$z5k>= z#7dhU^kPfH73HM4F^0v^j3a2tr3UZE-f21tKzm~geG|A@f1-OvEdL{)DXyfMDJ+5X zjObuBXJ+1f#*%|DtCeEM;HLisTAT$dv!$toXDFIj9MLr{s_zTW07%K_{SB=9VE4D& zMd}OueAf+2srJ-K_?j?>-KyOY#;f(?e9*dqX0%h&mQx0hN-~>gMj4+lL z(k+Urf?28TckE8O>uR1*Kks?8^8IL*;fu1SHzBw^RG4@q3B3bcu$5(Wg1Ylasm@>{ zb?&SKT*r?^g#vYEIen3uk6~G6SKf(C*y_`|6@q1ns&yBsiZ;Uv{fK_VgW*6^fI&ZJ z24Cj9A8ZMT19dBga?--?et5;^p61-DkkMR>fgSs3Gx3~{^dnG1(NQ>BfkD&yf#{-^&(3=?#bqs+{ z#ZkMK2Q*N0q}H#ntkB;oW)_PM(fpFm`Gh1JRwS>T#Y0aW>camUhkPa^D0U#G%ebz0 z%k^&D&k2 z%!ooPYF^oO1p?tQz8uHXLXb`S?+iD3N@#N7!hmvrue)$bhc6gcNk3ez3o4e*l7^8_ zzG^QU;TJJdsk5SfoG>1T+>jjQ|eJdg_G)^Oj1StLLet)gHS z&wYTkHr#3T(?d_HH6~Yr{(4RIcd4r^^0hpYB354CK>a({!z5-!zTU=T-Q;5zIT1oT zE5PI`ImgMAJus|;o^+AxVrf8%^VL4446#9%u#Wb&TTK2f!|f48s)u8X5Ur;UpKl`) z{_YS_Eap%Z`*Y|MMU^EgQl;;>!IiKx6G=$Ayrk4nJ9LTaQrwrAa%O-TfeS&mWlcnTeNP*DhpbyDMw9ZWulG-TL&lq`8N_in7U=sEs zHCMXXuz?r8QKIDNom=0@Q)89*Jqg{jV1KEw_s0ApxBavU3nBE!nyxm4p~yoDeG(F! zyim#lDkjaP+be9qYuH708mCCqR1+7Lwwa~(lZd#j@?I*sKKV{^abuVEqFno=~S#CUB%R;9v!X#f za4*pzDV3GIQxc}%zXI6AnC7}4JMTx;gKVle2L5uRoNb7ITS`dS&VUd&y1oEKQ5rc8~ z(#;_vl6(su#S!y{8ULihOLMjMw*mKlsYJZuuBl;-#Y ziNV0$~ypO4D~9eGF)KT24czEByk2or`t)w8$- zp1{=qsE<^vFNyK4Cpn_SoK9JA4MmanRtbTM%!eG5s_FCYhc`0w-z;b%6N8Y8qyF_c zsiMYm!~&I%hN%VofF=zHD-dUdfeInMrFNdoNyNf@%@i0S0^2?@u=h5Yfkq6XSNY{a zvw*^(p5-=7L6rdMHvA2xd_p76f0mkKft=$wkxNw6+y_Y$#NC+Y13W5`{q+12cC%&um8QMTSY1 zR`(vJz|)09-GpR;%Z?NdmdjB@5LffoqRKh00;7ph)6l9J4Hur_%Eqh6hYSaUF78lm z>cL3912ZL0hJ?!Uea#UFwHJd|Y8dW!x~A!Z$-}=(muVQarimwY${`7~l8WzRlMnSw zL90OQ`BDckx1ly)CO~C@#U|0jMA7BGb@hpY!0V=slxV>?29=J@9xer2K_96S|4kWi0`C_e zPX~e@XT(0w6Lx~HrN(pPoE>IQ&m;Qpclv9%Xh06{jve4-`0`G?cER@x5o~W*fTi3rB?xy*WB-@JZs5W`byh6nde1{9ecl z{D9XH?rLr$%FP4CwkG2cw9OvjPL`*$-mw#2F`|g{164$Y!de&{>5No{6G6wQHgbMVAg zOE4p$zvu0};d@6b=WN5e{fTSmN3Y_=7l8bBl`36IQg_qyT9CvfcHn&alV~hm$3>54 ze;d_LC8i`Vo#|~4l*ITZhrfa345;?)RQ6-$k%ZO<>Dja|#RS=5+DS`~EO(1qB>UQt_AN9bD}W3~Ohx3lXxG@-PrNP%RP zu=vnCj3{dcZ;A!Wrsof_2#`ka5v3Z0Q7@ou(Vk)*=hn1yo7FshGCwUFFijh8Y*TDw z2Gyqc4U(&I@soyE14KuE1NR4)tLxmAZ_$pXP{zF{?n%>+7j}+{zn$g7=|o#Vc>-bd zLHN$p>!}-Er`E5H%J|O|GwgxUu}3*gxj$N{7|N;*z4{EX>G*0dn1HQVcE>o2b59N; zS;rR2GZhCuDCN(JU)U2Dv_}2kXULA#%UKV__^|~789(ZtKZb1!Ha-Wp4Wa86?2`JBNJ@U{Sp-)_?#&bVT zyVDNV<*EIvV}~@7F@Pt}o4a(axayXC$qctwQpgpuOn%|(?AtFTx;P)j)$s1aJ|sN` zd3LmVoPxX&xb-+=n$mb++i*@{aj-REUp6?eyf*%}9<@MCn8Hp>{T=LmfBij&Kl}*w zoAGok_B4@Vgd>h_pO3Um7Fl)Z2TR0BtSQY>gsEm?T4C&1UldUHuZ1ZctI1H}Ieu)s zTiCpQt3jguPa8KcDlbqJChxu&AT@caE4KGYsYc6xWvMsqlvXv7;b1`$zS3wQ4jorD zAHGK)K*h3|Qnh9osKg;~KYm`)qt=vM;JZt*uKZKhYnAa!heLS0a>ptoN2j6Pnb2Tl zRy+KxTr>cv7gubrU$o^2(9ph}9Xs`g6#V<&qe#e3ReIF(p{dF74jX&- z-ia#@keD484lh32T@Sjp8;yr{?)zO6kUhvk+&wR_4ZU|Ll6Nhd-<2_`M{>{g4N+VV$drl`?=_)(Lmik@5-GuCGCKIDTP4c&BA48v+tmugwt?O_a zn4X92?QZ$KBX}}Zil)IkQ*Q>nqPZ#x7x(m=V$m>)aH7=dzXhi5__5z z;~V6JuF~rVzfvB7tTWXU)MMHEXNyY zUg0EsL%8S9=)D=!3)!7R;l%Qy%)=zJDJX7jRrV`$FMM<2V0?#bYoHn))U!4Zp3=2; zs*gb|K#!FyReaaU81C&EyBuQWCoBN8jc3`9tf_@o#rVra@!-&b)IMu|2R%lnmqg8M z;1KPZ)D;$Em$Q>q!^qQs}msxUkrRzcLW{Gx#ag8aWOFZiaqS*630A z+M0L4^n!&^)G>J>vpG$<3d~Yx|I8Hm23M|*IkY&kXeul@}SWLF9i@SS8}gR z;sq`2o)55p&2H3WY;Mu8_E!v>PHAfEzh8311`$fT##2CEXQke`P(a$;WR>16=W#C& zV|?nUO2z2q!>wS=nNh3re$FZjXHcE`VdLqQ-$BwcCYHJAXfcwL$*C)`{v=Sl-gbEz zY8(*t&QnLc{6igypYiPFDjF#3*Ryw9M)sHv5U0eSr3;M&S7@aQ5D&^>h1l6e#L=RifpQ^R#q` z#~FaA*0HIuK~~Me)(Ni&wHhMSSJQv^#o}z{DO!j`ILR|jG&~D_hLq0XB&6;17J+m7 z7LghyNiKrfr9t+`qbtSM@GU98ec}o zj)f2r)Gjz*2G-6Mt6pIl&iQqi+Il3osXJamSJ@@Sq1cSD!3;b74vH(6da>J>`m=Us_eyZin zsN*(kN*>M!Py0{aBf`$MDOY!{mD#nFGg}MTx3R@JWSe7|`%eLiqMQw;is2|$T-up< z^_uWogbf97ZJkMtBsb5->pwpeUs!1q&Nq#%(%CkoBFPRn;i=X)jp@+X-XFyn%Dao) z*QGE8-OV!w#{#1Cr>b9fmS>4tLS>g&*Yr~MJItmg%maKRcGMGzpr@5{KTDqvvcfPB zO*#e4Z>^XeL;?Nx&opwRUec-9^NZW~D;Upm z3H%9Kz(;b7iF{(Ea3=dwEPcntYaK+K>^5D+gXe&uv<3(SiK4;;|Ng!szm2?%&VG)f zqJd*P{G9m`S&w|;HoMi`LJwKHk#}Cuz$l_-)}ru*nM@B zTc(JoLG*N*>shThWc(pSCtwHY5tp(U3to9IfpIE?jAKM|QjWfb$1ZkKg-)~qwf05MmbfpDDPZ* zp79fmSI!nSPCm!@-!-oJQexVaM1M}(U1Kw+176nto2LOfs8HRQ74=H}>KRbvwd)1ww$gH=$feWRg2#&B$x*41p>SL%~kf z1`=)sid281ptAli^zP4JlE1q+(sESDR7%8GFm@1`43^-H@`jL3zp#A@aUjn$a%w|g-nCsDZHp#qj+JlImU4h>c$0eV5Hc@ zT31Ja8SG`jA)9>RPzRfR$YsMJw>cj3?8WWx4hUL{9>l9d4LF|_l(puxy!guruT2aCWd45qIO{sTTzP+ zj@N5z8T)C%XVgTxe23GOp=OS~ffKTJHl|GT#gV8$TcxP%Zs*Z$T*c8@KKvtkWDA9M zMb!9{?6y5~)dlR+Rv}Mb+T+i!h{@&n4@VeP+2j7B*SFBCrKdM1($~M|Qn&=X;qQBV zwpFW~hwN#V81xnlC#>N_H^+q`hjaf|CI~ZaLPoVV|Q@JB$ zMq)ENygcHqH~gv@+_$awV;)dQY`qFQlSgEbF=0{yaM3wjs5>;nKi ze{on7M7oXz#m>&e{9o4fZ%RnS05|*p`N?BVccg@F#6F$i73B`5@R|@@1kz8qfk8?t z0}q8x8@JQMaM$mB-Adf`cIR|>ykhYMKDRr5TkU%r%TE07)uwK}M-FVj~FUyB0G-YRxk4G|h z>w7hxWfmQWIMOQHZ^nSpl77hA`tR2^NEqfj)7CUYjgjR-bRrOgOiWezxDp$UD)JsN zjB|MxrnDSeNRSADA>kj?{L1^t!`@0X8p?P-Fi{%;#8iDbMYJ6bAx-PqPgJFm%f8%a zywuU3iWV!OWAG(5ENh+!ElQVeag9rrqGG^U!n-EtEV028>X$X7*N>_45O>NFpRj(; zSa<$P4Koz#ZdXwWYoN`?X^X|**xB42)sMet_-v1l{wWCc=ZWovuX-drG>nCagEE#V z{3>X#(#hvV+iU7~?jmJMzixn|k0dOTYfXq+IM{C!DW{wNDw991oO0Yf*#AC27%ESD zV$P@hvUiON$Ag?2;ipwDT~a@CHXMbJT6XW~^JbC@qEVtr=da421-xmERt;vGrT!C_ z6V*5}&{O>ar{C8kavWXV&IWPvX|sMzpd!@Z0}MToqoGP0LGJWUVC46RO04wE2D!ax zhCZ89#gf4bQQdd}LB3r6UeGgExHU-f_lREKkQ!}jQWGvsr2BE+!+)B@K(G`uksIC2 zU-?gVgT>2pRrw0#ub6j9@3N>f8Q`UB^#Fa_+QA3if1eQbXe}M1q|x%-~feC`3-$jr$eDn8SCKW9aR3!Lo|5aQdPYsL8K<@|V8h!yq7FrhjqNk-N5ueRVd=U|_O;%R z$2%m26an)U9x~vgHe*Nq8v}9K<9kJR>HrT@2eBB5YchBnC6NraoCMCfH+4!49LX@l zr)S|pcNkbWGJQA0^2Ax)+`q45BKzuD0)^M`X_YI!<_5Znr^{Bc8@EBRCDc3~&60dy zt>4`@QaXN~C3bJYQ1Oc>^8`U?M4&B4Qd{`s3rwwRGwe{FuG%T}A!%8oY#AgK_Pr3| zRf-e6F6B71Kl|6X{H~@v$4}jUKzCQ_+M!6A7B{&6Qfo~PxCShXD9ZkYB{DC(=42Rn zEbag-33bGe)j^H0>a3WaEI}GmrIb})eF{ujFYtBvpNpzLMg5Ew34~L#E%Sq@q3jeB z#h49V;Nk9|2GoKNCFp3YvWL?)}Z|bNE zE-_DOOTPycN&8PGs$1Ke{;bKd5*Y7})J`NGk4{`fLPBI2c09PvFw9_q4Mz1b4VHTZ zW_9y@yE1YxmSvP@zR|F2VEVvN)}%WNOg78J2^h`gUxS-=hcO;9FbpW%4Ej=2HiAP( zjMDOf%Mpu+Wt_x1`PLn)I5#X-Uucs30}2rymO=vDa@ZE5tBGvLE2LV?q2X$8hEBrI zfEmYdHpViCRe%I;tC-0*#MI0X3=P4kr^xSB1@2dMiaWeN#HZ;Dphio6O{hw#R@zW$ z(kPIJ%nuvCi3#1@)XShBMrtZhSXlE8LLRn+Kkz!Sjx++r@~)jppeTN*=g~J{1vbZF z%{8GILR)0WI)WL(eWFf(h%OJ|EV0j8q9dyf7R%iX4+(YddfWqsWO&azNo1+y{0Hb| zr+pCy8%iYq0!xw%FlUfxOr}YVDHxm*P2`=!~D1VM1ZVhGTh_p@C1AD1QNG+rUKR7m~pB^E7Sx z+6>N#qYcAs0hV_%wD~Jkwzi)cYEX*Af3;<)mxL36mSu1(?9;3sSh+^Lu&vPy|Db$x zNSv^3!*CuDDZiuQY{~I1F<1nXhva%=>16Z=XSd%sFkKrEYRCl^Kmi|m( zKWWG;Zt|Q@*e+#^nqWCnM&=k4oTZ=fc$5f}252;yKQHKJGofJ3jvFTJ_GI9(XgqAKzSo2 z_wT7v%0`6m%_(HDMAY7(l0eA9*OlTZyWc(i@dqr@fO3#qy&ope(!m%^Sf#esIsT!-8#gYVBSxN%wFLu~? z5%>USi@_K59ID))Bs-eipsJtHQrKk*U=G|9I@3*b5=&+*Oll!1h=^EKC@epUx=v%E zMWKI046~{kh)|8^lNr$A(#(EV!TXn#D;ogF(l`^A$i;|Q|C0={Qwde?Q8g!v(ufA8 z{5Pq&7qXEFHZlJs6+CNe1IH>B1kWC<#)0JGD5b6qb`-+~{}-Q!9EaSL6O@Y#%B?^c zwnZ+sCOzGcf#;-Z<<28j1IrUVCP8qNA~Z3Sbz{&+>n&-Qwe^Pvg46{}34awDM3}vkIXYvT#`1j%3`$u z!&LEoz(ho$?s5Rf=M;;Ca0kuCS#FI$VF*X?2pMXZsOUYi3z?+}b-v%H z+6hi-Ey7zKk`o{=7Hwe!j5b^Rxn(4fN@8ecjlg+=%}B zytU!;K`e={$%$L3)6xyrA<}(y&ZnXJJlxKk<;a|HL&oeliHbkkR-@nir3?~-8T|KW zG??G1cp%otOc5v7fml`z>Hz44HB_<2j!1cq`#=r`!ls&yCfv9~KRakdD#L)W(G@7~Vt2dLZoPJnuPeAzaOKXz67= zINv-7xAG(lr7IZdH#QOl>_zcWHJ#xRe-su6h47CK%^L$0pORjHbOr-X&Rt@ePcC0CgeJ$2f3He3dHuM{L0 z56B;#HxUn3l3hf4@uORvH!eZi`M|ejDqp(oL`qT=!tXolbpF1e#3}>zQX1%u4Y!@{ z3517TJaSLe!9G6$9Bb3xEHjiNFVAwr>1z8J>i3O9jc-zAPXX~(H^qssmOTnoi|ZG` z52rV3tIRTRiW5)bsv+{x&=Wv#A0D=r;C4)BI2 z-AFTj<>brD@BC4S#LpQ739LGJM*}YOsFCDc9PW8GqW3vY=n+3(OZZKo6PHoM*HXU}kUaEAM3EI)wk+{pvplHRC zg?uI$o=sx!t%P0dLtP+a#o`%Z=@pJzPzCX9WS;rU{e{L<*rhdw`De1_vE^^a%@>b7)RPBh5D#Q1Az4_6tGj#h(QM^l11ar50JBC@j!YEzsfSLP)w_L~f6eEsQ+X2P# z?WJ!vE=NmW%~X?cD&5CY9!lL)Qx=M@h#56+u-O=SZs6H21a9=|gC0Mn4rWHnF_in5 z5w=vs-B}Vk*BHhUFUNwq5e@|BKldKc| zPUe1-v=JvD?M-S#dv_1?#&%Y9yRW{%AHU4a>!o`-3hf(}4SGv62=rZNgqxWUa9i!- zwua_1Du%Yj-HPU!{+%QbD)>@o%E}>zB`$}`$nnImXUgnmV#ye-rl)RYhk(~JJfLw; zA1VIWlrh>$JpV4hx9*upT+BF9MR4aqKFi1RY&!tBwdh>o-7UX#PuaO3c3QB=q{v?F zXHQbkgBU~A7)C0_<@YoV`S)41)`^w)(JcjX`(Ww^OY!)#*F#G@Fcls9W^AV}{}d#} z6@(^scv9VxYo#MydC2Yw{Eb73q;te5xk#Pd5l(5BUTg@rRW2HU$)_GuNenfJ7#MUv&k%5t$k#kli%`w$c@2)1;PD^)S|Lbws z>PRXn@tl5!oUQ6?pK!-joz*qCcl+5C(3>_OYplJo(3HieL;k|x6#r6P9X*>ka!laN zjc!TQ92C6I+#%IIFxk9*S&fpTOL6JMyczv70kwLXYr^@(db<3PsiR5_RU>8C{ZRY;@2J5$?+pckakWA$n2cA_1M z&oG}pRG)K=^OIMq8z{mktz5fB%->j95K+jnfTf>(N3n;u`4PkwXxsV51w&`7`m~-c zXRA=oks|VHmns$IeLj5YwF6L#*>z~vlX7x*KbdR~u$^jWm4Y3#rqn`O?`0c4f?S2d zKIiq3RG9@-qSM%3ED>jfK)!*G=eg5uVQ(Vq77 zLD5;V0wSZ^&|M&E;@Jegvv;EM-0qdZi{}2@8*Zi1#`;0x{gbY@k9g+B=mF046Tg=a zY^Hu!^i;*Yy_e5NhJNdT+4+;Qr%z7?aoIuQ@ssYe@$$X!_BW5)olnK}R7TOHQB*l% zXzU@24^&2Br2AAxp#bSTmC>w&$Nx(tW*z=7LT<^8UjI2%D@u%BGADsddE|G|p46{z(Hn@8+Mk@utUY+AGoT+reFb?S6-EIO2RLls%%6UXh7yOQ!t25R`Eo_CW(w zQdI9#2e&zY_bH}Gxeoj6ioHJPITfBJ8uu{{gl#NhZHUF4|MBLO4^q9iVZTz83CpBL z6;vhh85a&xB~n=8+!0Hwv2zRu$whlOm#O{m_MbP>*vJ07f8tVAqhd> zxbLxLOm@M8$->X)RCNTyJ7c;RRx4V@n@Tl#Fl0V5#Ww`HPLf4W40xb zyZ+L+KP#A0@IJ*h_7snKQaP}emqa*TYAP^%()rVYGBfJ02lMC})@S|v&6n1rTEYc_L9>{bu;3 zF~vuf|DubRDgVuy%i}laus~UsU-l2Wxy?^h4WYK={=W#fCHH@&wz6{mW#PMEUjChU zIn2L4rEla0AgE?mSbBeDEqL|8&~DExTUS)Spe%ien|m2LelxlAsqqlh{QsHl-ID84 zQPezVwP7Q8cy_+{T5_r_8&3VUvJu1sbe!j0&zimZcC^iTyo7%OpFg8GadzGAC=|R} zev$kv5UcO1e@@T|@~r9eydTd_Xs4|3`tW#XEbt2Jl1`cl6+wD>wC3GI9?7)sDNG7Ek8Zy&1~cJSHPuo ztr1>OMPFiz;LeMDmJW6&KHL@34Y4Ovxw4HnAuA=_-9D@Hk5Mwbt%_X7?c#Jd$p>*Q zR8TAuys52;qmzTFp$+ITu~QWm7LtjD<$oAnIQ|PD#`ORFEHS4$RB<+JlMXW|c!*LF zHU}95^9h2h8l1r8hwvwh2$FPTsPQf!v%X0F%==uum>h)H>V8dB8MUZ})jW7yH$r2m znOGClu^aIrtMkhV-5rkpH&ys1bx56*4f!#8ZA>wPMY-2>Lfi2OrszEYo9(A)q#=_Z zgqujChIXT(O`@Fe^|`RFPD^Sw-^_bDv8uxBkGhid)AIjA*joTavUF{OxVsPT4DRmk zGWg)mpo0(I=-}?|+Gyi2z~Jug?(Pmh_rCA$#`nc;Y@8EMSDnbt%Bsvfl~I{_9*l0e zek>6UA8HovV|F~^;Qb;fIYn4qnXqeB@Hq_weKE}w%-tjn-rPzoCo`EUYfJ-w1TJWp zV4PA$acLXx{>477-_{40%KHf$9oQziHnxP;c&AOh=3;Y;Hf5ePd!{ zZ}V{-R5{&G1C#J!|1HHRzDroV;f`+izEvxYz+H@gV0!5RIo{@5d+eVmS{PC;yPx#( zfYW6II7MJ1ZdL*hSnj5{vH8j~LbDO3BCo_ocCW&YTBTSHvNaHGPa1?E1sb8)nAssX2$q%bs?tX<$0RDggODbPC z*lg=8=hxuLBA{P<5sV#r0Z*yHE2e*?y1w-+PF|gjt=wHvajzSxug$&;Z0}D=08MN_ zG`XCpwDBku2XMadOr_9>eydSqhmkaXO5@o;A730pT^IiYvK&&?1#0S$`u5bXzkYBE zA@m65fD}6=d8rRPYYjmZsT53Z0GVm7{2o7jZn^wIRC>iduYjKUeW_JW>h*rinWbL; z3M>@l(iiBbeddR)>fsMO@@p&tNaueS>3v8Y;TjZ_)B#JmkoAK67O|OUh9oi(bxm5H zB106qY|s#5Bvl<8zjaMCMhV@n@A@})T|-*KOe49GZZID9Dr#|ZOTv$Wl0zpKiBepE zbQTTkm=g|B!jB7y7*h4jHc{6#ly8q~ZiTj~%-Lo5EK-4#M%LBpmOCI25Q>9#Ldwa3 z)(b~rXRM~0^<{s{c=A^oVtgx_H@I<+BW5r2b}?NUEd&@M#`0vjOgtSQ0dpuIcBQRG zlw$zyH$FO*oEQOyA=Q%1G)%v6cSHvn9C9zNJ}e<+M8{vK^e;&PH88S zawW+AbhC4DOd{na@VSJPfCPWI23M)XPv|ZnokY)!6r;9?B_#6{SZ>GQuCS4W9Aedr^4J#NDK#2b;c_|r$Ndm|y&lQR_hBi5o;tlu6Vi> zFx7-;YVbk}u~;;bSlmTY2sjML_866K++bxTGhf6FY8 zb764uMf~Zufb@qmi7TCgKOvpU9an)&ljSlGtRY^qMAD5_G%T$U)L^{=hh}d;xAnWk zk}4Ik!UM>vO6E~Wi9ugRcZZ_t2l^vJl_8UVbzxl6wglIzLlAFh1^tB`QcdY2{sWVA zf?qF+_hXZ;of(4Dj}J;Z0CHSguqM+gv`4tIkglLfs$GZ41<7%V=+NQ)e$BmqQO>dmD%E8Ty!Gq zhQ74r*(j6!HXU|x;Szrl&_Voyx)%pQE zqV#E|teB)jqkqvMA0vc{Ry%4nl>7oZVr7pVdNBQfvN_%Bz4geT1ofEXOzx>bga}MZ zgl_u6z|{coDP+*0+At$ujR?f;?L7px77<`k$&T?*t^5a)%s6wb5D!jG3?(F6B_Hn& z8g(Qxo9t{!Fl7juGk&b2X<+#1f(XJ;zH%PpK_Ld8ED9O52q^(D9P6>%dWJZ+-;S3If*SOWlId)0dOa=I% z4l+lQDRhV&SMa05)6tuVjL5}5MxcWaWrmj=mXh!PlYy72IzNh2fMzZbyz$Ukb3Jz^E_m>5jE;?T^E|VFV(Oi_R=rm^?P+zkL#? z=zg%hW>mRNO2?hoV@p7A1W-(*ZtSClC12RUS8-3Q0c>>H7MXh zq(+Hw#Y-+t<|=7@4cppC@Z`M8vn)=N@IKU;rwV`&iMEx1*hMriXiQIvS_bH-a9P_( zE|n^Z^Rd3R{pP^rVWSi0b9^$Ii&fI&)aEQy+gC$A>U9lF+JRz=qr@`RL{TjX36qDF z$v74A6IJ&MXQtc`GW+{0@mPo2Y z*RyVlAT)3$k>bl#BoJPQrDM9n%Z-5x`PsHc`)iU~)!4-?^AQOk<{bC3N>`~? zE}y`m90q5SydADEH#Lm9KFu{50$%Pe-jA9-rz221U&fjYKi&Z!7lytc+#h!tAMf`g z08^|Z0%6_j7{KcS0AOx=*L8mb_&5V})V`gPG!xfdV`I>5lBD2TNyqQQB*JEN+(zWQ zu2pxuZRdQLg3BClpca{uR>@U!XQWhm>_wz6xN%i6+39r(Xc8}rKXG}l94`dQNX^#j zD?Q6T&DyZzA8E?M3tGrTNI_*Np_vU)^@l1UexMQ8A<91t5litnYtQ5{}l;9BDE zG5ObJ`mdY5cgvE9^J2ZP2IR?Ia~KZQR6eC91w-L9tzHqqZ%!J+hpVCET|^}z$7@L% zLwt89VlO9y>WB$xizq?fkdPkRrvpSnsbN=TrTw8H0p2ezg(g8yZp%I^`OLab>ki|= zovJ<#%wr|vDS*Un4qBqRCnr_H-9q>kd()02FnztR3@P=w+Iq*+IOh@!t$dvh`cd+g zh+1nca!n3$qYc@?bw*W844G$6>n#p+BeK2S$B7Nc-OE^WH04U_8KrD3HZ5QZ=wJ?- z&9sCZ*eOE}X3Z>_xb_h>;(xpB;{KvNr5YJ=g>7p$cP2d*cqvkEs$SqPiocJ0vSmQhGstu29~s z*Oe8=|&>wHMw)Py=$mzKKV_vgzT7?f@V<*=?41~Yj>W(3vxNg{J)^P%t zT6v9|QV)+tYYZyFgr9N%Z#_>OFHyfPvO9@flmr19YsKY#)z70V?rc`Ye4ZN4R38cr z3K|=w#jjG?E%eG}ijm&Qa}OE^YIABKk%1MzB=5q+g#ynGAX7j_C#W)B%~L|9UIS-i zcwE<>)ZxZpznDi-HX=~D*(wRsID7e-GJYZ>S(e>vLhhLV*@6EX;&$@nK)XP!+!`Na zC!`B_x=srjne4KKW=B;ZXCV{ejfp4VWQJlK9G4-I!I$|VW1a=Oh2t)u?nZ38!^)Ly zsC#%Kf@-+c^4v<8F3kDCQS=tAIwaJnJm#z{Fkr68#NH_SMaSoOnKdIjH0!VDx%m2* z3czZeyJ^n+7xO#dxn=oI{rK0eO1|G}b2EH^f>1+O0S&=QV!2!3cu9GQy(Y{L2g$p# zjJ}o(WRu76V>NDhXKsScztD3>vt!e%V=yXCpN}A8Y`6h-`}C?)dWV>xt>oOdE@peZ z#0yd1;n6Rtd3`0<#ZiAEMyMd#l1xYq7;~noXmYeh&uTc~oejfrjq+m;8V7~FG;riGbw)7l>He>3>w-Ch)5rx{q zH`n{PY%c6>eNT5yzj(^{;G{OTq_xH{S1WaF?qbpyx?Cfpz$N)G-?Xp12xy#b-^6`4 zl{inXeuiau?frXj0vi-yM+v>sgg7>@XJt zIyx`^s>S0GmZIh6p_Rhz?17rnWUmk7(4HlKrgyMUQWpv3gXgI8H7{7!o%wS{BT;E`9j@b;V9e0GFZo7$I-*Iq< zDo9%E{QgBs<>&47JJV03n{pPw1>B93!^6;weET13Ah)N7Rf?922U!ZYqsK*ZldVTd zGWQP;SGO(w*I3vUKRrTtF|E05CqNS}QL7pMSJUNE|p*<45#Trn;k0Z)#nh}1*KfW*0wi9}` zsD=S}=ut9KW)$J*bDI`>jt!tsRE&Xg`Q-m3U0Oaqx&quVfFvD($GN(APi;SeT zx*{e`e!ceKVQUZ=ZP1i%DY78hacbU-UE6qPejBH3n)ddgp`ny4@4g|eEbpT44Lx%l` zK5y0@+Y-fpbVoTnPnMOV_JrMJ!Lrva@Kbkp>?bRisZk;__}Y#yr$v1>!H;?&s~!M4 zF`q9sKYf-soN<9oDM+>EbMQH-ai%{qm=BkfSGAJ3D>-%t2Y{Gg|`HlMH(c0&U!w_^or5D4 zt`_m#%10)5g z%s}S+dJCo``3!#bt#MDaSo>g9>oRkalFwG5awAjx62=%uf< zIt=Z8OCaEy$+tD|8jIw!whr)Cazc+>VfWOK|GZbG{CJ_7x|cVxHf6WyN$|1l8{oQh zc}slW>%jN+D(b6c-}Pt}=F5BKusKC)Y{GKpb^c9&Jh~vzhkNkRogpr)dHCMOVDMli!;^8U?Qv4Z^=^dtM=^g zTF1p5m)%W=r4Zgs3RUw((M0vh>Ga;G?~PriR`h<`UoJ`iIm$g1)SWgDG!J_9askOW7 z2jEO+)z1=IB)T`XuDBVGt!K*6(M&s_pMRJFFKb=iXmjAv2H$rO3ziRCklvYm`A9s% zQz+_w%cRW1_7*NwcluQMF8~YbrDn1tO97uxw@CWB_HC1^dfdJ(tMa5Jz4PT3*RJ-R zwu)+_j+2T+_rBKW&zpBb%fuqghR{vab_Jm;{96~(O6M%@gHFBkn(pqqan^=YgYhO2 z)AzoGD3Y72TDUj!mhZmH413ABj*tMcf>*$wiNFTRqqWJ{4J;*ySO4`@ z%)C#agle9r@`P&Mr_6V9B>;L!XXw8kbNd$8@i~I$O%lfN_GE&nm762Y5YsbU*agU1 zzRa0-yOlm^d8tqZm|>KVhX2f`28RR5$?>0k3*a0n-_TG90i3+t|0`TmpT2zc?cis) zrpr$n_(yf+c)zV+e=sErFjRph=Uc)}i40`smUC2Q^ts2aL9MFx$hqN$fkPOyEn=Xr zymXYhxlh>fm8wpa@_Ge^2~@vjh#o`mg8qP*SgDuE!4v7qntKz6$gIMa?&M%JG7A`L zp$`21sAh?$Xlv18lI>F5)Sg(eNU-Jwq z<%g#(Fja`{@Y3X*JYa?er4Lod5+NkZ@Qd(LSmG9P#UroL#tV}=zU+R_6$lidzlF5* zxO+_Vzy9IJ2rCtc7)#+g%gMkSW*8yQ#2PP`o63r9znA_hGzfGkX5;y8{{bkMpWh{% zG}hY)Po%XWlZG2@l%oqM_hn?Hg6T{a4KoDF%T9U3CByqe7a?A!Xm&B~QdU%>$EU63 zlBS^q1nds4R?2vof$_$YYQukM!RZHn(7*qxoJBWw5A{U`k6?kbiTt>mbJ9xCm23jZ zZ(W-e85n}?i{6>B9L&9pB>~!sTZl56!RCVkxcH%dCHFI*nywmH=t>}>VrhBi&rUKGOX~E#9!xEWP z_7nY7<-jwh8C7B#=-Yb@G#ot^JInR5!#7Jkd*doRBS?@yoGhA)z(!9TND78WeB;3H zF1l#c5pqP@Qu1+pu@=dp{@5S289s|I`|c{n>DVzas_XV&eiw0Gd3SMfqIWVg7kB8O z{glEo3LT^4B?aRddIgj%HX0*$bW7bvo@2Qo$;3daQdA7h5ZIthFW^LA&7Ynd5y09q zbf(KXc|a3<@ro>sRDc-z2q;7d=1AFSQ6B3d&p&Y^q#V;Mn>O>d=y@RD~wY?jQOwP+KuY(gBc;pfHjpd!Z<8Aq1NLmb=|mYJH;9FOf+NAe0mTukSL8MYNp9Nc`;AjV)ayIXNyLfxkV%qx_*{Y0yqA4;}j&wsp>PS7w#^j;l{3>LujEH>;r2! zN>C{m0-_N1dY^z3YB1r+8VioBwcy! zVrNn|IG{7ic?Ry@VMi?;&@EC96O;WhHbjY07Th?gwdBdy>< z8b&;^u&Iyc1<9-BYZF>NvvJs|Os zv;#58%ivFwniw=jwpJMGpe0qBZ2HFE`)EZ9nXes56!*!bbJb$C?pZ zVS2-7)dsL|hNLab&6A?-%%=4s=_8VaiL@{?ves_!^`rUnx#s;a8t~YS)ScFpYX$)U zYo}D|+P5+oB$EcyGWS>e$nh8?Dh)rFzx9ClmAzT2k>qA;w(T)UPUk;~+#@v#K=T0D zo$G+YM%~gd)Z%mKZ#|=JN!@N+4r96Uutq5!;D2E%Z5W1DdSNNWjO?Rag~ z*os61tguqEbApSz89yRp~N@!@@#nNjbws8vP{-GEc7nCu^f92bn$mc{)THlk^53Ip&jWTB{7 zloQnN&))F%KheBPRY!{!N@LWF=r(Y}pR@gI+;gCm_o3`eIcF92zjem z|4o7{`s}e5MQP2m9#F_7%;WGIZAwp#^&6xQ{ZjMBWW+Q~0EFka&b-g=kH)ETR~l6l zfFMT@ioXpjL2(|Mg9aF*f$mF*l_6c9|B@%>Ju7j9;q+{ObExJ$2DpkxIuFscCFXkwmqW;c;9V zbgj`bpg^#HA(vwa9OBwI#!3!~`gbQpPTB&Bgf%?~hPQfa{AN3Qv%zYCQR=|~c# zI%(x=c|1q9A7lt!rodAz9;+d(f3A@)oIx1Awtz6V8WVx2jGuYG4x<2aei$l~|8gpJ zx44v!M?7>H>C{skM{FqtX`F}z7Y(HB4)WrS-|DFryG(YaC{Fx2bTUa6$P2wJAPPsO ze3J}JH4Ts3wx~ z@oA#-t)|AUYUF3f+v8ct&yU*_;n(w(7{K#R&c~TD;6u3cW#i|@8~Z!_P;DU<^Wu*P z2A(QrUpM_lzw6J*hc~n8mYOj$)Y=*+2dU;7F*Nyi^QZeB00VqpaJk{@wk6<~6el8l zoqKp%SQh|&yBkU*6OE)7`f8Km=TPPnqc%?v{AD(8tZogLHf9C%JXo#tC^}OwUah18 zVo4ifEf`B+79!XdoXyqK!nPuM<4yNo_q8c4x^)Gvlf$^z7Mc}0N(9a(fgh?LtUGuj zI1-q?(Sf^}eq>;3ACJTL$iO6MG=Is5B^a77gvNm0IP}hNFHI;C&quQ$3iNTYd*~;L z7wV${;n$N3Lo-3`4xa(m;jF2jFL%rzSKJ%EZz~@@ilx)RW&>&T+u76nr)?)@E9*)_*D5e|48 zKjz0yM#XN^mF%`pv$6G*T?+-Ofr=B0XsZPJG>V&#g;F}7Se8SU!O8>K_x#zJr+2K5 zT0gmYEh_9xMo4}gF-q%S(H2c(A+D5(<0D)Eq))0%yit-9=6-QrEN%Jt4R@QbrZB6UxU2 z`(_J|GSkHBb0!fS=hhv@paIjgnzd@SDLqA_4~wjGmkelP|Dpi}AM^qSc;+v>^d0yz zU%BIrEquyDvTZj}VLvd${j0qecw{>8gbjQ1bmgH~WK|ti)A5A@3`Ow7nLpP1W8~xI zq4V^*pXuk1KOZ$0;!4u~BOax#b>`!xOd;hbDz26*S>G5#%3VKgt`ns~GU$LKufo>4 z7v)l4&*qzQ&rAz_s4qZ(kWAe`|6>Ox=*9m$J6hMtR=xq+-nrmp7n<@=bZzJR7Vz;# zCFQeFLbFLQu6t<5Og!35BKlS;S~|NU0<%d>vvbBM$)ETQWnR1#C|*jhUrGQJ@@qAI zUPylDB;g~afNkuF@U^I?b}02oWp*@h2Jp=aD5P*yw-8zrJr20s{pEW|zH%jCD8KFR*(V>|zH7}qJ| z8RO+doZgpyjpHUbs>fLHI>lr|ycf@yw6EOI?LkRpusJe^zmXjhSG|%;d?Ye zRt^6=&GBr+0$?>)Jl~x>w9RPyVzkq5(erzJX3xmS0Z$mmBlMq!J(VYjQ|1<1us|sA z;nLC=LfRk*Ri=z8TE%E{gw@bFG?MA;;m!T%Cd8A~VIF-(g1R=Gj&5CFl%@DcIx`kbxU9YKnG-w(c=g<0-vph{E(n$vJ=EB8xe4OA zk?9hLOjHCK_;oTq=RO7d@T|e#q*qpZ5VlN{msl1O3bD2JClxnSe@@9Cj+#NI-t3RX zm={O#Xn_|?oH!ug^Ru0u{*G&HQTTIBzML4qh;XF(C3SmQC!5wj?H@Mp7ntk_#Y|Iq zXWI$D1SB)tL>~uIpyw-&QOm6ahk|1ty4Jz>?L^Rjx*t}Gg5wcZ${6E~o|~;6Tawy@ z-n&(3SKf{9z%O}zXJ0<`fdOD*_4HZ&ZM~)XgTmOx?uKX4^DGUZt9{k6`hKlVP=$x8 zUC)J?`(Zd^6-e~3`?vjOdN1E=d9{uk(6Zp6iQ90I9W*n2mhNSD%BUQJ*0F7Hs8F9z z^r$r+fr?91F(&Gf5=i7Cd*UB>Fh!*ol)@#4>x26z2&JQN@|ViQj(js5%QBeM1~f}v zAj^Yc@j1V{=&NMt6b$P#Qz$%9q-@zmZq`7m1G?F=?zzbYMA{;F+RKXC3raRDAkF>L z`bXzfpA^%J)OoUd(IYl&LF9MNixcccrw||{P%!q0oAr$5S4poSH8l#I=myJ$>1=)Z7v${v&m&()nrX@=>FRt%5ZBN$rA>mZqSH%W zxOT#7_Eae6kOiYlEqWPx0|{VsD}`}?(It9}kG{(Ik@DS<>Cj)b({YaF6?#G3dyyTO zGo4o{Hu$E|yubNm>G7a7!G-!WXOlk;sZ%aQddOxX?V;th&iCX>Pw-y5XEO|{llZY~ z40p^F&PG{DjV43rc8Ym=fT~J%;*+U3fp(pB+ZVwr&})xk4$006kM7qto^PGd7D zb?MFSU)jDP;K{+Et9}cX+p+t2_8fyPct%WGu2OzdJUyy%JXNDT<(t_<<wS2e!e<(esDB7zOD+?7{2-u=Zs%Iep8OB zCWuP1@tdu>mAIU^LlSWB&gY}N* z>x1$pSHA5hL?#Yj4(d=$+J3_0L{rh*if^+I=(!%d)zYU^*A5c#Q++&7-sQoMyd5YH zAeHaxA5n!n1P-iLx?4Mjx(NADk~;$V1bzwh4%nbHI>uZ3rUYhTI#j`;pln3>hECuT z+5ULFeSZg}5HeVP5=gTGHb@!A&*Y7kExea~SMu!oOU@P`K2M%+Bl9BEUer=oq06s& z0z+m5bK~F3mp!0{TP-yK8Y@O>m4ubY*sy1><&88H%NZ-7R1u z%r3am-ELm_PTagIY8eA?>^h{Z_l`>jvlXL1&lCDSBk`W(qt~Nq$;=bJOF`b5<($J~0WBg97 z54ev!W>zQIUzuU~pg%v7ZoFdISpHYDe?KkY9$TeuNc#B*)ZG`3c3UV4P}q0MgLnzk zgQ`({v$D`TCHS%oZzn}_uHBUnHC~?zQ9LFpd^MYxSG4&?kLgjeFD4ipBJB;AYh7Ze z3iisJ%bKEG4F8Ppyu04C-dwAMy#dU}a09GA{d`J;k4#^7N7oHDtQRwClFR1iWnWCl zqr+5}CNNv5>4pk+Lb#;qz6;-`PR@p;qLvF-@1#93vRHHfCBBHg#d0prm#q+eC|+A?u7Z|Wd9pc!yDKYw4|AUyWLliPs|6qoG+eNN2qX2 zeEKIncaK@dXa-^T?&na!Bhz+9$wnDL0mWhZBX?~Oi2$o$;DW`z$v3uYM`yAyM6lrb zn?0tk*E8vO1UT+$8$cy;xene2(#$J+OIX*j5l?@c?``*|-1Cmr7H1;`;W=X*%0~Bk z@>kdFO{|lW%`nkhYN7MAxrr{WNG|@-E_#&W8`;Hm-p2d!+9lk0mWkRV-o_iM$K~SY zSFd+kPS^1hW^ZTZqZjiC)`k5rCc<|JBr0RqvZUZJ&?O zM_V~$XbWKA3bNO`d-54itUVM}9LXni;~0>BC4PKaX}g~c zUFF_6wV}mbGK)SNBgxERGZF8Ou>JW$JioJ|xxi2}u8Ch;v^6gHsuQI5LJ>nzwbS{< zRdES3emsr;764)oB6{`^i0>Rs-e0^X)J=<&%~GRrwr!o*2gG{@wXGPIoc$5jBvISe zy6V|kq86(9EDGYtnWb=(aN8UBROhCVz#A;^mDz8jena5TTh>L@mmWc%_%FdIbf`&o_U}NRx;{Bfyhjz2p#`Rkqizi?Q z1yA`W$s;r<{YgdGWH)=mOkD^DMPnhC<`)I+n~)@7w%c+%Tb@(`7#nox8@*#hqv0P9UnJiO5Ka_Yn_cG{gO_emuqg^>(j>zXhCZ>HqYU zDB&;@m=@la>2wMHF3|J1WAmCBKQsK3fd&eUMpymvnuG>^B_jmww*pkHNqN2 z{)ek^y>xB4K@@}Kcb+`=M9p9xFO_9&&i;btN__UbGJN)xLrI^J0k-tx@#n8M(~$~Z zvo>Qxqr9||K11&d(+h2BH|l^J{d?}bxfEXFIS!INI`}cPMD283(Xb-(1o)?d)@QA% zbQKh`Joj056WLPXS~Hu13a2oSTMed_EZ|!F*?68)%U8EFosq6on1ootiu$`M!3u+u zESlXD{i?F0yDA#2lQnN`;IZMmrCmcZrcH;=2ufP@d^{h6rVS_S06yTG;%Iv%ept(d z1_djsA!mQjei8m>w6xOSNz!fM)|4$Aaq42pP>oXABWrSooUc>mmH2U!=|H`Hi$-fo zs%1US{elM0bvMEE>Z?ZEo&|SZlW1~=r6C+LhL+Vz8x2my%3sD-VIH%e*~ip=#)+YQ zrq512P>Ir0>6DnGf(0Bd=p0d6G20ZaIqOzjS?m}rxVHk%N#Kfy6P$Oi+ab33(_+|e`3rNHODg`m*i!$c1{16DH@B(rOdFpDPUf@3 z{Pr@tImzK~I8^&i(o;&bPvYulSd1dGb2{fEHJoiNR0URm#8p6j+)RdwlGrzSW^gzp@s*y~!^phw`=(8x#G_)XLJ zY%-p|{-7T#QPSFw6C|r^LtABP+CDO5mA_U_RaXK+aAD^QVjyu3=0wI^LI9+85fW$t(CH?ccbIo%5#v12nu^@4CG z>+=y~Yni|=``ww8eCf>wV?=y7JC!Zs&NgLI@7#JeX{(2Pz#>dxWm9AQH-3x3Xb7Sd0DUs^- zjIUG90OrLaq4%1l8&%uJ|FHHJi$^4!=p>|OP^(q24p7)zPFa74)jM}nJTb{s!vrlB zHJ^``HGHyEH{~N=^`Ba6W}m56CqOWS(ef9uOM0_~6ftfL^Od`7HstTrhicWEaq(7U zw^8w$jjN=oMSd&M!hZNsNh4jkoLxEA8!M3n4bU4f$1bCC9-Y#t6gy$pqNAmW8?%6L z-hR8zjHX-qn_xr9hRlNspOxZ~NJ)W-TAd8sCR57BijSm?-=IqMTB-BWKQP5kHH#~Z z`zftUV>YhNl}iDl%DFC_U^wCZGSu(#>UnMI$efkOtGgsNw?bCsx|eVHtIkhyTu<>m z5%4OLpzWn3)qGGq(x5{qD@Y*gHYItn^sy`9Q*Ke8LCsuNm@9gMHA7LvlUj<3|WH>X$U=a&zerS7cB9|Y{kZg2ME}GS8 zx0`>!7cL%Lo~E>kCeA+gJto*VYgybf2Ea-5tEHVeYvns*3{Ya9e0*fiHOGWMepR84 zJ^qCzwSrSLE6F30=AkrxzT$wE(@E>Z4m3fzO-9biN*kAX$jPgE!Z+6^7N6%f1%&!D zSZ2R~rWSr`ogfikp-R&T6%aR2QOYw>yUKN9J8>RWSXTup{OjFZ+z3O|q}^rL5`fu~ z<+PWLY0D^Y3Tu7GJmJX4hMT=o+U!Yd#&+c(><=moe^#vv347uJ^EGR|0_D6`R zrH)il*=}>Hjhrmw!gHTtB|N5M1Dx*lRo%V?7k>06JAB{EfZ9xKtw)p`f~S#IBGL!yQgwBBZ*Hd|DbsAj&J?C*pQ^EFk6vrg3L*Vsf&Im_a8T#5CVZ8E5qn(Nt2JrpL8K-5i>WnLHfV zph11aYRr1KE9Pl9XI6112k1tYm6s*u&E~r^uvTQ-T!qV1V@(0>PmqNxxno^bQnq3# zsdXr5*Qa|iwIwN3Al$zuWOA*@$&I^yzt(huDHF=8%yPgbX7ueYka^eH0~Yg05o5s9 zuu_H0v{G8)4rHB#vN9@HG{}d~ZFwF2kzI0?wa!l{{M(0-arvk=1(?Be&NZcVT$*42 z&9;}d>dMfoPO9c7g=%SZco}Xt4b#xXr1bJcJJ$^O)zlSlzexJ`jV-$r&;L< zOkOLWv!A;L=r(L?Rtm!ubaLmB2oVyqr4)%|rt8xMcn}s$g3+HU92m_c+C|a3Q{`ApvXHOlTkD}EWG2R z>c^ypr5AU-2dF>5ULMC6PeSBZxqU#yp&;m3VuXFNeIi0_U4GY}U&)gh2Gd z8kMU6pyq`}o!8uQyR|QHIc?Bae)6$G=T4KcO#`@AzSm^kSE=)+S?LIz|D$m-+21Tl zkfQ-yFE?+pZqRLb)vRpR0B)3X+RvpwXg*Opt`No;5J2h-p%Q-J9uW7<|dN?%B#{{8aK?vH1uZ61=aZWK(;|lAl@j}&~`TxIWuejYT zO|(bsktwtenBM(QIw6e{3i}G(sQ*zC#v8@sW@+L*VxLnXy6n3;r6OgG7cPwVQ5`p+ zW}C*y&$)2jhUZG1o%Mh*-KZqx_<<(OIU?|9cAGifhEvT-H(>HcId+rvoo+*aiM0=~ zc%y29y>z2obE_xs$nOt^D}a^vlb4^Toytu&-r319Em`BvFPR5!(GzC` zIm!#o0c{T(SFgHmZ=jPD{m#>8^9ANMUynv%zzLJq!$r~q0buR%#91$#&H#{;2SG1x z2D#2%Q-CkGWE|C(y#-5ueG7kkWm`Nd$lM^XBMyz{2MHwtiwEWm*%qebHc)=uzy;Q= zq)RmVe+lI1rv&{!Vp*8b{g3e9=guplG}wEVx?)OHW{?BQRg1Gl@*Mt^OM_w^Zt&Sw z+FUv-Ye>?H|1C%*0ZV^vjks6{Qjtfay8kQl1eM%6KkL_jtkIrgxgqceXLXC7s8|HE z(W`6awIa-ElvatkVwVF|^n(}adNs)!5o$F;D^bw?H3I%?g@vQ}6tYIoP`jUtdYOp1 zV5jrQ`0PJMho6SP@c({`a= zi0Z(^unqQ;5(MfXSuf3h2XC8#iQ@<@6s1I-uQ#UyM?nK4GU8q)t%R}SlmUwBAWvJz zY6jNh7tR^+kD-WQR(P4N5u6lpT!HNMauw)+n#eAlbY#`Hxm{g_@bR}@gyFp6pN>!nDhN};LOBN zc^q5H9x_hIM|rGJoD&vM$NP^(JRil<8ICP=-N+L%011wbbnq*zgCE!-SX-qZCv*j^ zks`Pag0`9i3e15~P4hQYvFA}x%n{aw|?Qd zhHh@;0rY2fn;kcv%G*6EW8WQx`T@OgBEV z4EP3xQgboJgzs6GLGa3{6)$FMG$%seABKE$P9NaG6^ehcwSPsYZBz$?OeI+KTB>SK z!OV3ia)6##AA$d;zYwsX;lm*Z!H7ZT`A>@cAgvDs#8z>!aHDbk58;E$>IUBjb5?0q z`;@>MH47CBmV5AS@NUs9+5bviK!W4hnq5!`!PZt|PY?7dG0uE@&3TbZvr2Pjx6!)y zI)a2MX*`4-R&tyAaLswJD>H++F)gC}ckSWnucPTW^Yt~w!JGib3M*qpL>nFLneES} z$_Gajgd#TI&hyW2cPUUl3eCI5E(E=x)XR=Thd*w&GiySO)(B5KSZ) zj1EeLyNCN$Pke&YMH_h9HB4N=KzLlJF`xeoUfM^P&yLSmkoOO0?4xC|f}_E}K>~un zyTQmZ(4l8kSdjmP_Gvl-oUEzIFJq~EfuEZzrHa^Qsl@gF1ND^RSFBh$v#o@rU?PK* zxoddKQF%$JU9zXQUrg#85duB@zLbkAvj!&MWkLz|O{yXN{{Y}K4F(U~!z`yveU}@) zwCawGb%j=-=Qn30?0$TKye>?90q`?wf3*mEk#^)`yI2zZ*gWv>fv@;Cr;#H|hDxYw zQ-81cu)dfbLBEvE&i>Y*iR=@bMR*V`|9|%o3>g=JH@~M{sb=w zj;^3z)PLBwWFAlI$O*v6FxS&A*F{5J{P~PZA%Ei-5oP=FeZpkgoUer|5OU}noget= zao`*0qG2E>5yPI54vY`+?PrMd1JN8+^Ffv$j6!0DjqaO&rqc&Ks zX=;GVP+GI#;zTS^Ug9;}P%ltlXHdYz1}((6La(^Uz`ViXCrRLp#K15iQb)JUP`>>i zzTN_=t>)_+#UXeb+=>S)?k=STibIMNr!89CEs$UZO0nYZ?gfe`K+$5wDG;o{D$PSg@*1M#;dre;b84w1`%f4Y_a@Dkj+rPzMJd%$`~}Tpbh!R}9M@ZsV=5n- zeFUFHxB~4!5Yc=M)2K-A_i*u) zZce3wjMu_Ei$ud-N*fN50Yosb1~jG~c>PkXqZs60eNXNZVFJGj0_Xju??fCEt>8PQ zaL0i-BI=i<9>UJf~r;Xd=Ee6(xt9gc}MM#8t} zNa<L6&Xu3A%Jdd^IhO8$c1!L^542l7Aw(Vsp(u5@;!vw???CY|0@4T zdm^1GCX_F=Zx=?*AT%M8Hxh=M7GGgtVibAb3k&xducc^$>k_}Qsgc z;k(?uC6PkA<(83=D2|(EzV*{gt)G9Bs+g`P$^0wgrDZ{k&Icj;uFRawocsF?w7QU7 z7j1D4I37EJyqO$bCX>xgk5C7Jp;`YW%IcbIq>sER6#hKm$lrWW%(Z|t_zY)1Y0U@#FYIXcQXY?IoC4<0l_7(l3zUvBzYXMtf({; zu)1k7{~y4^FdDx>r#ia2M#oF+?>*NBvBq`TM~kKJuES*2MkCBc7nes1CjApk4HsY$ z|A5sWgY?nw5Lo>Ta8`G=&Zhx}oiL%}YYmO)h3}4#1Q~j##`L_SV_!cevJsOA=phK3 ze>2*Iz*!q@a%=k9P?h;{(~;Zet;FIGN}mi5T}#!b14da(xblEvVRIciIN^{lXS1%4 zlB4GRH+!S4>-V0SU9taaM5+7P*XQ2RWyDw~x)S?&U&c1HgoeKN=IBX=^X*@UU0A+A zGmc<|h7nNk8uA5n#*WRN+(^or_b;qp+tWLIu|9CEl!^TY3R${A*#pr~rhy(3c?jc0 z@D%3q(-AFxxdAzb5t38L7nZ-`r~ks(?fwl8$H+3^lK8UJgcoz}vz3QhE}A|XzEDTj zPM_jt*3QAd1_BDaw)dfUz%5ZGlKHgv~-{L17PpEzt z2RKI^@hz~i%Murq zsF#f7qU3{l$ni77X^aYE3ot>YeF*qDe=+ut#_m)Ks$Uq^#un-X0pCKRMO`LvUe$4c66}`l z9vN9bBU(#_wQP3h&|bTvG9oKJQr=P8taL;{HN zZD8B;jDDh#+5b(wAg23u=%j~d!vC%7exUi`NY!9D5-vc?;h`|{F?SwYp!uJ058L={ z?zjH{jZtnq_Wutc8Huf>NSSFv2XH9*y7Q?@KZJba=YNV*Zj_sj{XYTn-*J0`Trcc@ zAS`P${O??$XA`WBUi&A;G*2xB&J05S6#-#z2s-~UAMWF3cNg7t3MPxC1uJ1pXb40C zb;V0Ww+a;%;6KX!po!eiI3I;=F>O4MF~q2A;`t-L|Enp0YYMR9g!f*Qoe>4&-ohbq zR8&tf#k_NSaNx~=ajZLfPeE-^L0yUt2=gEI-+;GAbUq|sLwK%cT7piBhKUx+!?yb_ zmkKA!5+lhHp+kt-$3Kn>%%vR>n&?yTa3z(XYgvK~tjhZmCiVXZYzUbnFgFFX8U80g z1Tq7oWU01cAv9E_A^(CxrVA;EZq$rjQ#=w#ycP-*U&TV1Taw*qbE!HKm|umUMA3)T z+u0#Q)TNmUsjgUeNj~e0%i@t@#A}~n|DlF>9&?N%DBu0Wh!`0EI%7H0xH~4j=(r^; zcMb2~t_531ACpZu5)u$8E<{49OiR=_Ax}H)DTs#MjiyQcpSQo)UTINCF?E)a@}|kv z8%HErG2p{jWE5iyGkUs(--H(CgYdXkK@XQyWqpIYlvE1;zI+-{(mV=0=C&Oz6~Do> z54Mlht(q{y#L!9WSETMb8iqLfLUidk%0u#Lt`#ukAS$_~IJb7WIXDWl3hK(JvK)Xh z0iB+N8saj|0JQ0O1>)Rrb$Ko46j)!9etPo42y4L>^=$tIzxTNYIR65CGGvr$I|c>6 zNaPDLHG1{21jqrwX{xEmBZH3WAFKswU%bI(qE=9ONt*B^^c~hJg@9!?@Q;KgBpb^V zS7BB_f)s?iCY?AK5}Ca?;V$Lp^lI#2`#Zf%bHTFL)MBjPqKT` z$%W<~%9C1^xA8MFh9v4FYSf69#Q0gGtZm@rE!Jw`1>g_hk4753vqeAS_z8|zd&obO zcJ33^ks*oX3@r8{*IH&fbj_m@mwr#7-*3E*;Xf2aRsxLr1>ieEr75~f=80!%XU4AA zuea>~qZpTB+Rh?9hiKyYfv`G&zRPtVJebF%K75WfDzKi}P8E^-A9N-rR;0lC=eD7c z41D;ckxHIT3QP6t$93N)IkOZ3=hrI%9e z*PQ$x6p(NW!6@^5EN%GM)AauWmW3!LP8JS38}K}EM&E& z%WSKMJ0|11BmGNabc-ys+Sp%R>*q&O7s!=ocfZJv0za*RoXt9J*Dm&&`8s_bE-D~F zHyQmt33;+cC%YLJXV%hy(;Ily=berf$oa0^%H#3$QQ?b^_mCVs)CBM4bo8^GE=bqi zpRFT?poB2U?X8@7z|F3Wv-v%8dN`-c?<^FId;P5Q=C;DwEbwMHWw+Su{zB~2>gHmN z8Kfa+rTt+S(xGl4^RTxk)^)qHH{0cR(p&?%Tr{_-naTKjy;))4oMXOxy_F*8e|Fok z_4j7@{%^-t*Te4SYz^dOIhwEQ5wg2gv&?^i1Hq9N~!-0FShlSYs95=?CUj!^MkYS$#2>uikAIn;kqGbzDhfYK$#j2)8kg? z@%QdA2izQSj{~B8A5-%d&X<&{-C$1^;&xqw^=>-PSHzAw2I$#Z7NtvPmJkBCf2jS{ zMi9aBQH}wHtfeW-K+JZz!eom>uSe^eO9a85ZcbuU0XOm0o#)bO zP>t81y>{D1a_JIq;E@BA@}bg!G^cifO<4PY7@>|0)GgzF0yqV#(`8h@V3pM1KY0fL z{wdlc229Y7-Az$SV*>@hLimF?O<_LykQvV?Eg#b=m1}7Ao8Bk9RC3kTM!j%OD(By= zZYO}Tt-hvcjOoL=(><=2mDA8V&0XV{Jmye=tnH|m=k9Qh#MWfj3N~xgiR)0$thM;s z9Pa@>!&xZ?rwslP{aJB1x2GwKw9WzIbc)w1WMOm4pe^&z-usII#DF^?s%B4C;PSI) z$9jS0f5 z;_X}ph0ZOuTq_$?n%*bKFsdk|%QIcdFUT`B$dC70-!?9R@GGbc?+4&(;_R-6( zbSY0m%%?DAAUI(SUuswOH8@x;2tXVHF0)bBWM zzPeR`&#`0`#=R+MXpfU)St_*nW7N!>D8)x#WHAIWx_Y!~k9Tjjs*V@dt{YbIEn}T| z9a2VRS=g%|!=w9-YliF-DY?TZvUIi9wxskZyBAR!eK^dU#a8Qazjeka`#eG<1aNdc zxRMFJXK*J2>}0PlGa#?hKCVzeTsf%6h%SzR#Y!rSrzjK)uVD&zSmdfcm|VQ z_A=(=t>=hKC0{d-zX7Fwxv7U8Hsv#(S04QykX0G;F9RuG^~pHxzZO2>bRh4qA#1YV z>XAxexTF)l2%dJ@MK@ozZRJlmf^8gg*VXB6a9P$Ryl_}|5dW@;TBqam{3`z@(7KZO zv&wMAHJV7;S6f{>|F11tb^%}C8QBGr$19|pvqkC&IxCCE;TS$N3Z2W>l~LZMXp@j` zC_!W_<|LA6UImCfwCaF7!2vqP+iKkfg?mx{D)YNHXia&zyXxf1v@PegAOT-1wgnyP zeUVXIvnfo9iVECPI-~YA%%^2w=o9iO9oM66T6^-b*v^7CC%?Ae+LK>JhyGm{Yc?-u z;P_zgz@n0Ecz3fK?bl7(3mmio52&zlf+3bHUrA`VJYIO$$UW-?_TT8gp6DqyJLz>L zWBt{0Sn9*9;|-Q}%^XAR{=pSBb@h|&Le0blrTO_Z6{IFfj=qwd!qnaB18O~%`K%2p zkZVatRig+Oij?K8eM)@ce$wmP$tyTLzh%W4S>zUsdbA)@ed&{puqe>znJ)xzfec_# zlwlke^UYti(H4Z6ZdEWUk+eB08+2v!$(zs|FldeX61!Y6`sTZCaG3n4K2wb-o`80X z7)O=isyl;8RFtcC(dkW7#u7%_4rxoATTLh$>eieImFlcq2pwwHTnP0ltXv7Li>Zn% zzv;WgT4w79$9_Hg7+U5#*9UPsGnUB_9=~YXa=-zT+*_q5Ex|TEg@4o7A@dTxDwOI` zDQ?8~FR3BXpe!vZb{Na3zy+b3%P^wPO=C`On#x!_O$5=Du}fmd@U!joec1YiZc38N zkj{%LqPfyU=FdQ-p+;9L4x@?4<%xc-7_u*THk4frjDFc4@WX>(nY}|$#34-N=)7p*?ectt<2HC ze*N))fz_NJS|~z^(~$VR`6;jNn@t@WE~ua(;cRWaA>q8aD2~$QtdV1Y+Uq>< zOa3}UMNF-E)@1k{7!nTX!LCTYMe>X3WAA~}$+#P`hw0jRPK-*XGfw zW1Ss2^UU=?45F7tAgTUD7(q_XI}^*sbM=Dd==Jxa&w=IllRsvXEKBP|*c?S<2@6bq zy*&IX3hwbKnrnDDl2xfnbfY0)`x#H7FHeL}H%i&TFq`bl49(6=Yj?(g;Cum%5joey zk3nRW+WBuhj|s??G>OK1Y8&qNt9wbi`aIl`2$^Rpm!p@NB;MaVRmEk-Jy+=@qU_!2 zYNH&_&f?Kc*@N63J*%$sxJ>zjO4STLKf_ne-loG&c>nOOf9s`(b7DyYMP{%UG{cPmP?pNTSP=786--yrMDp=?eS#wX@5;K)5DuAJ@M&5 zH#HwPSwz+X37FFp@tlyR*T_yKxu5*%i`BG`9{)DV+9RR-J;Be2EPU58+zo$|UGy@B zL0}e4x$g6_)@1$O>IUf^x})iiqy?>7|EeX|(TBG+iQ%V~vxDC}JE;q>r28w2Sla{U zmN<9OKWPjC12f;PYG;oyn4G?NR!GgJ<wpGW2u9wa$%_GTe!)C$z_mfAl^x5Yh9 zRx8Lw?+>18XSFnG5MUD;oV$mPr8LMil{U0I*XQ;TX065 zHPnWs3qe^P1_*feHS1Wn4zIG4MmUE*dL8-lJ+qZ2{l@kTk)0bp{(^<$W>d%T&kO{D?%J;^UP>{$vtTU0$2a%%61ckiOcfPO{pS+~LXR zjd|Awx>Lng23kK-t@OOJSP@8A6Cz!GzYxN?cK*(hGe60y+EzQjIxliursenXgjN$| zPP?7e*Hmxf3kdTy322(@nWmrKbPsXpYbbtaNRg|uoTm6iFjnYmnQkKQGThK5(_M6U zREpm*?>AMFjcu|p^Xw_sKBL3A&J8L7O_WP`i_8EvgHpCW#gN1eTF*Z9?5XUlXT=Pf z_L{P!!KTxg`8XARE(sRuOi7?;uSggnE`9n5_Q0sLjXZ9X)56W|kQbR{wyFt&yfSef zI%I=Bx@Kf$KDx%|F7?`E$v*Y!WV$|+s$_x#e5R{Gpc^H)Kgd-n&*vSn34VdpAT_=Z z3u^J${-98mgX&;IU^^rU-GGOtZ|xzXI#)1?2s?CQRDWQ45TxBgHgTk!r+E#ruYi8S zix9)c$l^f@TgXfe3LDJa_77`09w*PP-<2*eFjyq9n-Q;o#f9L>3S<+m$i~jQ68xRugbEXhhc$EGgO=rq)PgP=@?h478$F? zpX44^mR6o?t$$T@PoFmzvzcVK1(Z*gXMQx4$ z_{ERc6kcYmNlKb#i2W7p40BQaBH%RI#Cj5+0CriX(5=URbL9q& zQ5oc-`hm}Bgk2FJp`fzu8zv=&|Kk?w+>*)2cG`@OZ^;y25jOzVBn1{fC^8$s=?qjh zxIhD+UR0xEsI>hTydSb``4d|3y*k|1@~o3?2r~vcF6VYIJfRaWeAukF^Um8ZDbG~Dz z;Moluf%Gb-TEf4W45;&8KRR!Ka1v}%w1j_z-wtSV~P?2fvAj(PSyg6R7#jvPWZ5_%<_q-rp$8kdL8cQ+F z(oh0|TPB02Zos^j=Ns&bPRu-)5n0)J9M7){!k;#3Ln(NippClxjeu}bg&66U87v1# zdhH5m{{m1UtPsbECy0GhR7=U>$U;Q(TH#1~J1gQMv-YPj9w# zr;YY&{HP|&A?gorEqQ^g@laOXaT)wJ2Iy}`ZN;cH$+xoj7%G-V(vF|;Fm^3XrA5D< zAHYEoWKE*jWd)3$WXYM(KaSes`1r3Nmaa0})YudGjK*XhBQS)cVG+KR0F+UOlodbP zKp}|3F&|%XL*b*eV;TOWqJl982R=4a9wRH6XU!M)Iy+44kGZ)%v`v@crkDyVqLFhr zPZmr4i^3vW4>u_oc3Wpnd`eXbl$W^q+rgiRuXGtb+i&C`APw4m<$r&ydPA$(RKP(~;Fe@wtpo$yh_6tlHxb zfL1vL3|YrQJmb1LyFRC}Hu4{}vl1!~SY0;l*rGr<|Sl&4q#lbAR+2lLA)r2Nbanyk!)>dQpiT0Qa5>FeaZ&N zu79?z^5~=v{E=#@ar!oo=pzUL<>8#oVDV04eyDY{+V5kSwSW|l#07($Hd@f#ziTkXG z%3mjTPx^9*ZgxKCq?VN~83r5FsTGd;Ice)Za+9U0G9GeEyM9_vd59;G(&5*S*0Ikf zjkEo}X5F>!V*)_3-jYosvJaf*ez03TG5k523PjQsq|pg>R15E>jPi32g2(^-|9W!tk67K?DTv zEtPo&=EFtmYB?y92VkyxbN4iE1x(a5^?6JO)Tc>ImQ;e_Od?cnFeU(1eK6A!$~ z-2O;qZ+Y=T?L{G>{1959T~PX;lJ5cO!zEl{!rwLY=7qm%oJ|Xx zYa~tzb7}~UL4?oLe+>(FsJjmcN2mk)gmwNupppLh&hSPtpY;~{mA(4_Yfc<{qFs-& zuAU0B&=J;3rP)4HH?~EW<7r0IpC$U=q?_O-VF=A{8Mcr=r*^zK_8;6RyK?K#sF20f z3|cLOWbtm4{5Onq5Nu0*{a0TFB{>Tc%gfy;m3_@zjHbk7`KM?Vr7ZQ(>x*9htjPTE z^igs(mec@tFJck=WNX3d&NH`Co@q7ICRE8x==u0Pk1a@=|GXsF6@i|-h2=}p`ZR<9iFz zdK38{>oy?*)|KWM+^oXELOWlwj$c@0HUzmKvfzyG=p$yW7WTan0Gu7uo~Z>B<4*<1 zc)RC3SJPRh`{%163fsTrrG+{4*qMg>MLv>h(uO7mPm3v<5S@mSDEi_~0i7@oSjOcr z)*Wi4g{ekRAFWHS67W0W4bNIUbXZ)itcMr~1SaJGHrw*Dk0}~y6}xa__Igf7kV|G) z@kh7aM@U$1&0EwwOE(#RF~$#`na}~N4|U>&O(&r>!EcXkezisnjCxMz8{PULu3+DW z$Dp#7@rTRWojA+#6pm3vlp+I0h2i8ZHuKM6n%AbsIgpg_C$E`(xK*!?mcsN+abU6U z^wX3-fQ$Uf^~daIWkJKN)tOOq4Q>jOtCBA5Kf#mVhT;>5uZfVBNzV6zKFOOyrM#@b zn8Mb$Y0*tT{ok)et5jW?j6SgLgt2zSfnP##lqM|(?2Gk&;@R@QBX@dgJ;3F{s+p}% zov`Ha<^*CzzUBhaC?_=Ph}hFHnT2)Z%?8k1$8B`KExNw)f-i>X=e({C)BBmuA_nD3h@(u z4s;KQQ){xp<2D>JHLx+@agIL-g8Jtp%O{^gRE?SE3E2qa6H8S@S@1mL3waYN-vs?r z^m41dt5m!bv#L(3gMQngi?9&2$7l)jQ|GY{&bKyj+oj|&n9VEvSOxG?3pEUNZ`@g} zce5K+L1Zzs(6`S|Kf0-EXune2i-!kNdWl-v0R2SrX4%g-^O9vz&m1{OKGO95MgU^r zZvk}D^BrdY?X>r}T9p##f451>sPLUzxEAf|b$MaN!Z`9ZO#sRXvj=}RbOLY&M_L9i$CZ@!?rPB#2RmFk{A zK#5a^X(vp{)$45EDSPQ>!_E?W$0Fn%M*6uE=(<+*y_j9Tw-nqUHTb*^^207Qn6y&^ z(L6{c(U#jVVF zIu5Oe_~*S69LYi&952#Y|2=j?Xms;i(C@R8Hse^QV*TRpBw3fTzA5a?nrco2xhJe@ z3jPK*_3XHUGX4OF2$4PEkA3$*W@17*^ zm@PzG=BRro?2PvDtJU~JAtb|Qz(Y;M(s!yZJZ~+Rq@+Jq+J+kd%DX`d7zXx{iL`uS zdt#DzeX*wQ^7od{(Uf9Z>p%wlA(%qPlWoWkvewf~lGz~c5mfCa*}{70^c(G%9;!;Sf@ib3%d=!PyoTrA@`M9^IW2WPOG@ur0x z6XqYHck%evT*H5^T9&xw{?90(S>ku4dJm24>cL)-G$~g1hl>3bj`50O&Ah} zmE3$)h^q$kMSL6CS0Xlkq!ThGpuZ4&*TEi%CE8#hHp3l>>u^{NG%+CfGL5kQ=A!?c z4oq44(7&hy*`puLoi5%yBSf7`r_8TgD%J7A- zyvvW>)GynZJZjB}D1~D4h$EU1fcE1D-heKGl_Nw$)v+V@ekZ|L6M&eKDV%XH1b+1N zdWlxL7Ndz2QY+BSO?bSF)hv&9MZwcwBL9w(xy`oo`^|^CWn8%Gw?|Hw&YvCjn&9BU z;To5t4CEr}j%di->QA^G@A0EM0Siz3-9F_YIo9Rct`Pz?$CYhFja%p>>uYAuhXDcj zuYKZ|X{E2t*7u(h_#>X)MZf(Mb7p2)Y>>L6!I2AvtgpxEI#yob_k2gpR`Hv1?{xHA zRvv%n8cD}@E<(JugOd2y6p^W@g%nbn_`!>2U(rX|^q=W3Vm zv91t6$}SblJI1e2e&q-bkO>U06X0R*T$o5r2979hYjeU+MQn3n=oCnO?7Da61R}o_ z>l??Xc+Le0o{uO_*K5aT=Dw#d7}%$fDU8I9zIS*+Kv8EgVG|{L_Wt<5&v@cjBuDl! z?r*4p>g)2*Fk*A2kv9V+Y9m*?_xgIPnT{sk?~KS-(wwXN84z&Km@nP z5q&@>;{E`-oodBa2WSwFXiae)SVgnn0VgdAU{Lm<2K?Jl!?>a)9u-;p z!KI@zz8AWJ6OjcCi(JHnzA|)t^vQKjo z>Jr9i!h~lqP)IIl2W+&)(J6v_7%2S8b<370ng;>$Xu-Su)*vX!p0cUW zq$k7l1u)=8!T8em!|*alHQy4^o>Qve9Uy3^9%48=K_IBbsHlW4zt!04=QIsQYw;$Kwn5_KtuhqA#|2&$8-Wjr7sFK(4P9x9geBZ zXnQ!$1CjM^Fy16 z01%Ti>q0o9sUeiB5da#XcmgyPSs0qo%Y^S5sYqu9P3`~>DyxszySSfZvoY%6sU-F7 zeGPt*M=Jo2=qRG#gY`)T2ftuq6oBjC#41zlrE4<~nouY)mc=M?6~qm3Y*6EyhMuZ5 zT09mBu&i4#dt%RNCdwmbndGtQ9nD*5+Q8E*1o$rD5cc$nypJMJIhS+By9Ijn;O0p? zl<#kq(}Hx0Q4~TGkh1zgqe-Bkm%dNyQ z%g2HM8+jfSiY=hY&GB`e?d`!>*!tu0xR^Zhusrxj)^cGYc3V&*Z~+ieLQ?Wer6fL9 z?NyPpRs`jWS%Ck9#XsUIt33Q40T2JbMPvB?EvCc&B~qpksU97cXPBA0$BPl>ewlq> z&tzbL%gH*0oRjPJ8go_9;qLLYSWTy|=Zyi;u6!OQr*tJg$q_L*VJ#Y{rorj`m&Gvs zJ0EJ{8Uu55NvahrUinIMsK>k@1Nmv_m?HWG>bz>2a}d^gQSe5ncaPt5QuJ^hyKWPu`n1Uq$2> z_~$vfd@fB-4Ve(vaP?5V9Da4FiXM?SSkn~DYOvW1zWE5gGM?_xM45%1fy1s~<$6!< zge51H^oF8bzCJ%StBQoVa@NcEJQ-}1HA#P2;skm4Kwx?^Y_IW z^T6u(>Uf_W?*e~9$%Z^lH#kzu#jAqPBybL|a;B|(p*reY#pHgua2r=|HGW-%;(j@4 z8yBRvdZ@a>ey@DMPf_aL>FW&G(gRFoO8(M71P(rN2H(FW|NEw|3;fd=eD-$w{!LLO zm~(H*QX0DjmVNOy_};>oe1!AGW0p4RMV_9}YJf&kd2NP%3pm0#O9q-LWx5~$pa8U9 z9znS;xEJBb2f6m5pMKjd>H}Ybw^vL)Z9`tO-MU%NK~lDRl0MfDhl;NX<$}^qDTJ2l z$2^|~a(v5C$>VW_T9r}^`zNp-d`UDdoPKVgCz@L_}6N;}D#9`bvw zz3KZ%+aUGrXCWt?bCCLBcDSnfJE%}ne7T@5*r`EHV}ddbxuwD-OHXHzP*$qX1>yP{ zrB;-$y8~9={)<6bU-g&X5ub(qguUfnmw*yJI80=M@k>?`m;%3vbm7o4!C7HLoxS9W zMUqZc5G6p2jQS)%oJ&vO4$i-RKAuatOMI}2-P@HLe9O0OaZk|X?j$&dJ6`{!ih6<< znoQ)J(p@@3sE>Q>9;4Mu8e7}k0C@z)aQ}2s1g#3%&d0fu3_35v0tHSE^Cfqiu)RMV2a;#J_0=qMee}|fna|*_@^Deza+O7 zzb<&8I6tM9F}5mm%&@u?$2#zWQnas`#h-Pw9c0}ejbB{x*0L~Yf5O#YgP;SO5-AnOX>qXSn&GM_lXXNc*|P$qThp>{rL!=W0+K zN_a)`j6#v8wjI5`G48iLSJS_{X6cl0lBsn(7CQM?dy)(2jqC4cJv%UMZ>D+e((%6* zBc$>Ih%#&L(I3JWJf-T1Ag^3nG`*f&;`FarwlymKZNmc$N#%w-63>m=_<(>iErgw~ zDWBCfuY2$GlRf3K3{|6A)tJjB(**$6j*!A0Gnls8HZs9N=Uy_w$rr};1Stx`ewVb! zKq-%H%xiK#(VK9V{e#NCSXtS^N<~dB)Qy$D64k|nHMR1QcncFd5KeqLh2iBQwFN#{ z@`c*;;VYML$$j+3f*ywM&1o5Mua-->e~t7iGtVEaXbVe${c+M#VJyvSEFR=Ff;Ejl z?}31htFaX;zq*g{f#RCiE;AaLO)$U*%i2u6uzBRhfiAclTD8t_)Cn|^-}0so^`ju+p9FW>l%S_3+6tKTgtY-gO(pUZkZTdf;2dj0eYd5gEm7qP4IN9p+u5W? z5fSg_u~r5eStfd*+0+uz>@pNx{H+C|GEC|h2`|#{HL(_!RDekezMUu*tS&Qm7@A4P zXavYs7W|kDJ01m-S@;anY;Q6GknItQ+Dvh5&NiD~vBCsO_(B^pZUh z*03iz2ljeZGh}5V%J$C}Ev-%Ta%ZNBL_F<40k}Taf?qyLTSLfOXrMmD&0Y8=MDQbD$mYsuB)J*Mp?~I2^*z_3_$Zcroc%l&xI@;H-y0(MN5= zLv-Gnv}M2*%!gk^TT^^hPFt&moo<8ekGYuxDD!y5QeqWtjfQiO8QTXqP!fE4>|$ch z*!j!$Q2kh3<%P~_8q&-NmOCs2cj0-ZTvnp9Yu8tf6_Wijw`3y8u1}IB4U*WT8ZK_W zgKJEv@zqnWUmC7zRG|Ga0P)kJOJki97U5Spi}5K3H9!c@>Z@&_Gk^?`3P+)RW|l9& z8|T14QH{JitSU9sNBPe7zcXmAiZ@z0VNOF~i*I<_v-H0On6ibF;fNJ=Yos~r)hzKYv64&0tQT);rm8z89ZBzwyu6Cw%B@mQ|NacNan1 zAI-9c7BZMG0kZoKrCtv-Na1!Ud5<}H6Y50gAVnw!jbU&>`_5O$xYhtI+{-$HO3Csu z^wEMpc+bWzf=9jphaX;(H1~0h*&a>f0HSv%2iIX=z`xIEeFO}%Ko>az9P*z}VtkJ4 z#*$N>Qmp*WXg zjzpK@qkXLgMqJ_w3U!FmkfICw8a#zh2-1*26wi`nKzAp>$gM~|%@)q> z^L)uQJ~{l#b5hiS^$zUU->o`$dkYkV6uh6Td7_)9KvH%UTX-#4xPO%n3fl|L2D^!j zKT%FNchbD3jnRU;v5e728*bpzH_wcSa4;Fk;VXh+1~jorQ+6{Y!3k%Z z9|SU>HHr1}8?g?E=0VXfNowS%Hd5?5HI5U14m%N4H%K7)aam=&!7f_ssm*jZr@MTV zD$A)5-SI`NS>swh{PyofPsiic|KQlMk7Q{Z-krg3uxF2iT5+Iv{+dA5p`(&vp zwOMyHixE%I*;JouV)LViFUWR2DOuOKU|33Fn4*kADv{$tw6z^IBbVQ1IFLWJ2%*SG zP`MOM=s>BwpFUZ6S>_E*ehxw9jb2j4@c(;qeQM;dDA&GK{U4c`x{O9knbFI=0;V+++f)m@o+n8Rv|iXYCxWVOXKE{=m5 zyF~_)*PW5t(qXdO8ufNY&H3W}qs&U{#(Ew-H%}nUfbm%l(j970Bdj2q7~GF;pg1)a zVF5L_Lw6#7QRPqi?YZ+sN=izNf;8uby8=47@HiYTf`R|LK;jxA9G74id-uJ=$q^{5sy#q4(*>;{J~!4=(e-jDt0h!qZdE9 z&t|9FGM*^gQ+UG2em9;6MVlcnQ5U!cnm!tMps(KQ8*c6r1A z4@nMKa+UZb8+V?7ngNG5_TonLoitSHshZaWJX+{`28?WEas(F{xq%R(TkCGL#ihZj zpo#|dOyuMs7QfEEIvL28Uzo}t=9F1RRM0nS>k3U)zM!L&66+h)sB>4_&wMJy*E#A^ zv!yfa_gGZt9dg9k*>4hZvVdjIag_0gpmL5~+%?26sxhtMg6yFcZHKRH(u|<+vm=iZS6X3WO8wCrbR8Btqn9=B6W@h zYWnz$zfRr+!Lpw-`b+X(M)K(?%3`N;Vp+D&3=b2C@1xELDuT?S*34F$#^K_tp&JIHX<|B(Hbr-F|XrYS0zN@O7GrRsx1Bx(C^fUj-+~=Z64i*MnXA5H!)Xqs)~lGMH`%+`P{A;1+H&RIMj4)Vl7d zCDI>xVBY{-;dIQ<*nh?MBRF@gC?BD!!QTVOk(_(lyQb1$Mxz=Vm=8w8q|Sbh3O5M-+#jKn66zlvK~;|T zV&(fUzb=)sM@_$opIr~VeR6EN+mKCcA~5{>Vr>7H(z~j=bR5F_I;c=tkHyez_v~JB~ z%LyXj+;DB?@laBeP|<@1BTpc~5I_!nwg8m@&*X8R?!)K=_qUYn_^0?$u* zkP?_5q9+)>ueH?rYL0n#9e$h3_-dg_^eX?^Th+sv(6)CLDP(&TAKO@8r@Yyo#9xwh zK!wG(OO4+%GCf;WmUyZ%0?rNIcDKF%#oKv=xaCc^F<$W<@OE0x+PlDlWyx0(^rq@V zXx2h8TTb6d&Wm|p{scC0%bA%GH>X!X&HyCX*i%3T5}IvLJ2s}HHOaFJSu^ZDlaV{p z8{+sQ(i=evh&+cJ?(PxHi{x0EKqF%FG=A?vp&6JQyJkf3xs$}iI&ZHQ`In;QDPobS zJrEPCy?{Y4s7Lp>7E7!b-t(ge<#^GHkvRUO_Ea=%?K07LP_e*xT za~zFyO978YbNvxPQ53PbegnGcw8mX>jk`AK{lG85zB;cW>X1;l2CgywjgXdD67s{#?p=_*M8r zf7KP%QZU?RYi<6!k5_h9mW|EU_`HONS5RiwGn=h`35DTesQ_Y-<1;f)OxcJm0gJ7! zS@WAC&qx2Pzh+xaV(=#zASX1ZA^`de(%zW*0J3JpTsbuUe%Ib-a7L5C6O)sIFy zLLJ0o7r6}MJeSRZ(unZ%Y1%8xZaoXa`yl@0YQ-q93jC__OeW)>_4Wcp4z8Vx^Bu&9 zl<^q@G5iMEa;cODa}_ZZ#cTHCrcOl)H_7~kt^W=^xwGif-g6E)SJ|*MlleROYZ5bo zA#UFslTylb--EaBI~j|PD@`Bf+e|IgOeAc2b$V6gOIMkFfn=j(S!?rZVR@px@kis2 zn&o!25@p4k#hdGoKjD)u?H(V`y%3PAkc#D{u}*WBEBBV1o(HR_Mw9$#inN#($ph{GWlLk0s9|s@I^$f=|{YDw=uV2p7dURfh7YfACu6hn~JE0QA(i(|)9bm%?$Nt^QwBw1<49 zph4g*^~f8XhOcnP_k}^px72rE>y+nfY{53K17p4oSyTxcRuIl`0UM3KmFJuoQcJ(V z`SP{SxAOW!*5|GvWR2i;1>qwXtZN9XYS)I&;N@eN^73DdJ^Q)sl)5N<3JgIJ)B*uE zdo%j~1BpO(zby_b0Rl2MmoeK0CWlil4!2V-4+}N}GBz={VPp@$0Ru8NGPfjV4~zi= zGBz`p(R~aix7lY81OWmvHkXkc1SWqsIWRajFHB`_XLM*WATc;LI50FmJ`D)Ut};f`Vy9EG}G7P*J$(RqnmGfh&rLE6N3O&il+s0>$ON_xFAGd;NcXzc){q z|Cuv0XXcq_o0-$l0s#Os0taOUqlOeu%d_4L%-(kZ5>FNv6c%Mv~vS*Ex`sVhz@Mz2Q9FODPmfIuz=&bkCZ>M=T&vyC?Hqu6D~{)yIBU|3l$e^e z03*EsYW<|zrdco$dINlZ2K$SdG=1U3iC@K^1gQBGz|%5$LT$t8pI(0)`x=Y&{U&39 zxo5&gykCR&-6qeNdxI*i{9Ek1KR{8|vg&ze!zz6XtfX}DTtgnCVeI&mh!0uT9 zX^+jQyjs_!tr{pjb#CBO^m^3u#f3|^`)xWYq8M)@l=hVHs@~$4 z0QB*fZojx+Cta=ylJ0*MT4EXnYe9fAV1WTW*a2tF7}a{bBfxU~Ne1ws=399Oc4-M* z*|%UKw&58q&v5u**iWIiybnHIqHusTe3aFSm#B*z|F%?4qSRX$#tKBHbsX@mbfyr+ zUjvUQth|b2_Q6yHZ!U}t~ra5rA>WzNcuG+ga4&47<=kSW{Z`rs zgXOFRW-?xg!@AY%W{5%FQ`vD~qj`2WI2H3a3LQZ?{PcUgh3VfT?!Rvmpr54e|1bFn z5w(q9mCb<3|LJjblxOkoPsA4eD$(=mB5 zimnujojDNJDsQ<(lY60-#c zU@E}m{H=Q8ftjJ7Ne6#EJ)qOiVG2S&i}}6hgYBC-_3>{%8>TS*Pf_suPLuGu@^`-P zG?jkeiMD^kbSl_x6((n>9j5WWXm=v`J*m4e(f+mt+j&CYp9;3S7gL2YZZafcTHmSN z4BC!4i+*$#{pc+E(OLAPv*<@>(T~oeADu-%I*WdE7J2CfB6|SZxxUcIJqqpYd`x+G ze;?krK|8@ZraS1^2eG^xwDZqm-6_0AK_mMzUKvxozJqlQu$Y|y4z3Q?a4e(BL5Q-Aqmj}T@kxLGGY=~<@3-LY>3H_f@p;~NtQ=y0a z6Qn^;#O`nnVh>1{&p}VfK)eQeBc_90{t+@D6R{WcLF^4#h;{`tp|AV{^nq-|Ea->m zfE>iW&|m%@vcZYi53WVbfq{tq6?DRN@^^483_=_LxrhT{u>37t2YHBtpa3x!3K3n1 z-@srfLd=6=#C#}!K`ekF@>wW^p@>CLidYQ85KCaV{51@Lk%&W~46zi-5r-k3f#Fbr zI07mWM?w{18H`3OhcWV3PyyA5qri<=2_E@0R6z~mXc&t)2F4*)E9i#t@|WO&TErR! z$3ngQ1zZmeh~r=a;&_-Sp8_vTLac=;h;<6q!&Jlum?nRJ4ijJo;zVdfoCGrwC&MiH zGnfLi5vRf&#A(okI34E6pTZ27kJzZ-Ojv+83l<{IM*IZkz#_yZ1?R#|i1T2v{4vaj zn-Ld4GvW=1AHhPn1@T4&7r~zpZ-Uzp7sKuHNw^vAKwJXL5SwASd;*q23*s%X67g18 zh4?49Q~nTtZbLi)x5H}8-vM_aE`xgzm&3jC2haj*5Ldu`h$~^O{64IL`w{Pi2N738 zE8<;<@4?-$4)GpXk9aR^L|g-#d<5DNABCq8A45C_ zkHc=n?eHw(6VQS9B;q@;1NI>9gy#^Sg6HM8!3TR0+Z1evKO;U3`w(}*e)+HP47`N6 z8(v0y77ikIAif2A;1$H@;5EeO;Sk~r@Vfjaya;a~?p5&5a0GE5;!)TSM-g9wHxXY} z@BqAjCI1Bu!rO?iz&nVq!ZF0x;BWE~I0S!3d>#IQ_y!zDJPhy3hv5jkkN6h_kHQCt zZ^DQ28}JsKMEom!g!ndmjQ9?GBEJsD;8VoE!DonnhtCoJ0jK0ca2&osd>2k5z6W0+ zzK{4Cd;nh~eh6m~Pbhd2zLj5vkKjARkKqS@`4#v?!B62w#LwUy;^*)a;wdl2)5q;=p)czjWOZqT5%yFyUYO)qsXImFqm#3I7!bMJ|zi})IpHIcu ziV+W=t3|J+&$Z)oFI@H9EbCnB66HBomgRHuC%^uvK2@CnkhgL3B<3WX+;s8=fG^Sj zK73SHsjK*xr?)Ow-Ngh`fPRD@;GFt@LG^tkN4-t`i270WW9rA%+tp8~pH%Nq?{pQ{ zc-+-hm7^-k%SMhEKCE=;kdoq}!h-y~!LHmv*9{zSt+RhlzwADl_TIfRdUQ`q?Ixz! zlH+3xdR=ssRuiFC2|UL#1Tw5X;w|*Csa8W#tyn15mh{T77RFC5=#^0@7I}St)>^9% zFI<{fQlb=zwLYuY>Py2*ZKqib&B4_ESBnsO6`H#QqSp>RdHwHEq{=1*=Z^dgU>O{>Wl^CxI}Wk8!oi&-t^ zd_BZjZKTH_qGXsJh1a$*ppK${!{ST}Ya4uJ<<*4+7Mso8D`SW+S}ahiAYbXyC*=E7 zN|)9tlyz8PZOho#va&-Db>8&I2C<=bY_*TA#b;aC!j_ghe1>#iPqDz)^Tto(apn_z z8Dc@9FP-*UT5)-t(knv}AD^lhtu5yOrz3uS=IWB#V2O~bKL<4HWAc4}q@vnJ$x?)} zZfPkJtwk-~mf8-vxlXj|#g?|n$d*}!C~hdL#x6SK=T=yJMJwGty>~LX)*YOBQAMfG zR9;is|FMc3I`=@vr#du=x{+D-uRl!s{{8|sI#<# z%bxD`F8R=!AD23$K`caxuc-Ak*P(SyrHT>tzUZGU zHnGKMusZE-rL7gY8qzSu>f_T;NcdFe2heWlBQ1L6CiD>lsH2zM#Q*|%UMytVp`f< zE@~~*IIJyy;*f?Gaa8p{r8UN?#g-fCSVkx%rImTTGB9lBwTWa|d7FzY8|A6qqX)1q ztE_Hk2$S#4bGLQFy6Qbv0GCqA&{A4RZ>;o&_Edp4YNfqpj|-q#spXUc<-WdyfKsLo zl@X}#U;<_Oz(8rrKrUdgh6~iVLajM0QwPeLl`@5Y+JK78rQuy_SA;8)iDE2mgch}9 z$#b|aM-X^Al0*?p8$MN`6nBv3wg{Ic(4rYzxB?t5tGY6Dm8bgYNWjMw#DVfCp}E9Q zMrGrYRcLLXhH{g8a*NkZoeg3G{!e^F9E55T2O%Ruq)#JG$n$B%JX)Sh%X0(e0xege ziIP}lW5$G%qk_c5K0k83RjcG3{ zNgiy#J`8vsOeT785gnFCV|^5!s^;QOiV&V~?WxJQ40Em}wr)i~<1;@Mmn8qwdA{l# z`Jw7Z#}8HCW7&5la`Lyua`LB`*PSM($>&vnUzU7PrTc<>f!R|fpI3cQe4;A%1ks-$ zA3ENz(!HPi{)zY5W7zxSheH@!oq4y3}IbQ zlZ#c~_z7+X{g~5T%)NNxBHM(m8}aFdH#8(CIOD5SSwfXg$Q4cqtQV`sW2*6#BzuZ~ zIk9C8@TTl)*&#>u_(w6a#vgBsPy#G z4wa1SY(!a&k1X@0j-u!)_xOZmKB)44)Ks?-a;N*YRjVK`snnN+%Z4|}UFvJVjEiQP zF{4jvi-kOQ)7*LKl$z4hNje1YNP0RbMYIgBO-;f2ASmsdngWkC1)B%zXnwBJB0U~} zKLhB_d@IDmL_;<@+NWvhNww&gc+zeSZWtP=*P22;6`yTb8YXbk4c=r+ z`7D`-9I>DSyDOf6$3uup6}8r*B7|c&&AJ-S#ITT?n{F_IGakE4HxNgEygj{7CJ|W& zo068@x1S>`)*K^{VWTxu9Vxwgr=(u}f|1|xCew((iBy4GtC) zkw=d{KYBFwykE*C`+kqZPbYKUTuUvn}(g)W4Y1LgQ@m2CEei7e}=iTm*2`gMh*Cd%tYPD5k z)t7k8Br&l^e2+MPD}ID7nzRy+Mk5FrB_1KM2O(xN#Hmf!T$2=sA2upVEOSS(_A)mc z3ubB+fKs5Afda4_97d3pSL5KJ|(;RI#LA zj)PIf#*uzhA|jOzf$p3lBks)pL(=KD&yZnT4z6Fl^^x{}wIpS++N;|1#KcP-JD1;l z{p{PB(bBHv(y>23`q>M|jz30X);zy%#r}tHUcSG4ll1j-=cRL}9vjCxhqq3upMUq1 zW`8Uhyylh<@7RHRo+9Q0<^tMiG-SIhT3%2QU|EeOTE&788No*}QED~%1lr``EGIR} zIGpBTr#%jTRqvzp^*yD2q?N6$!&BgbAHwzGZctJ3jAV$+X{CS5I@MLOpoX6Y*j z(Uy*$ND8DECXU9DkHKor%URHFd%4V-hzL~Lc8|cb44^CQa7U;Fusa;-xRJoUg_0u< z10B&I8f@7%1G>1GIanz*koA>h9g`l&td|-p>AM?$yR635=M(HS)}>*ai7O(qgrHB_ zkD!(kkMzlm6HSiABi2qlPu`>L?`G1OUCeFR-mshg&iOrV?1L)O-Y3(PZ8P7^h)lZ2 zgEjYJ{K&@Wrp2DMY{Xg*N@`sV#G=O#B}l||vhz=ZvB7vbEC7)|k&VoGB`!qoVhM&C zu;&tgI#3*XN$yzY8ShzP8S*+#KE>`w8`hxR^>oF?s2e>oY;>cC6|_xmK>$OO8>2Ec z$iUEn;rSHCpf@_K20gRqz&^b6ZMd|NiPC6MW)hAbhs`EAlY(k=V~ zX(xUTOV5yU;$$Agd5)rgCxL$sBB8s>Brv3Z(ZdL;CN~=?2u!4kiAPsJyEi&RLkBb? z2&(KsYz`AWwy`I(hPsnrGdUlEG(&&jY zb%*Ya9xy>v_qaHHlRHizSb`J8ai|T%2cogj85m7}Ab=R@v-=L>at5&hw^3#HL&Rp9)VB1zITkI96H}VD-o4|%M{hRP?K^bO$~)F< zxnujQ(wA#@Ntcdpc1)>lTfJ#(<-_+ay?0z)S;qs?2O~M%{(E2e9F+@MxRNG+D!y-q z0#^#*1-{Xv7X&q<)-`(2?bSMUlRJVKqIEhUS`aR)Jm8igj%j2IMt_6DEGq8Vub;7B z4zU@cS@znKC&&6Ly{|m;fWv=)$s4la!IgaLrOZ*%a6eA4x232| zHnWWlx}=!0xn-H}6=}9-ZaP!t_uD4*`sDQa&+ku~I_#x~$hb&md!@vvPrQ2Q0+rDs z#k*e>S)IWF5 zhH>@lr#pwPK6=~yZ;BUIXZ5aJFr;w7=sxKc^Z3}|R=#sWOL^srdiv)~a6blYhhhb(E(7i-ctI^h2r8k;jS)Cr z*#-r4tt@G{e)UUaaxeg!1r6@IQj@2yd}OR&!_JxDTRpYw9#Tz8N#VB2ls(ep7*HO4 z5u@BR`Ac>;%CI{OfRQlSb**M#qo)XUs^JrgiV}DY2U%HN8$DTn&;#|Izz@zDoYUmi z4JKN4@L*9V_M+~iE5)K;xldpr4h6qX?t}U_^&Q0I^v1w2h`AgRy0Rfr=X8>hi3EX097IwsltS_{^#WCB-+4$?RRVaA@Iz zF@3VqOD8y;6H7CH@H$}7gdsi1UCx|GL{pWP2;~ zD}-**-5Nd7z0oDnF(P`RVfm@-uy8Rd)55N3H``4 zQgaydq(a$Yu1*=b*j9qbQ9=n1$TUjaHR9SfyAEw=mKzN47 zRoRYQIF2}}pa}h#FEEezJ?!9(UNV9si^fU4j8r>+12B#rK@U>l2`1AOZ-~^h9H>+# zmeVs{cO(b$ zAJ?i>YR;hlj_FDEN_l+ig^8T6Yf?f&UQhodoOcI$?4beRQv^0Zn-Mx14vuRxPp4HEM z#^?HvZC*|o|04h9E%%Y0Gz!g-PjR!+!p*pU8;s-iH6C6I+9-9D*RAHvCdTA-Go~v$ z0VNWaV(PcfKgSE3G2;kbc|lzyDF`dub=hKmW=GdkI-V z29fK@w(Kbdxbb;YdQaLh9Ce6t;1_624VhFFhf3NR#;7ix!NI{h2yCW2(6Y^kfXBuAV9t zuo^xBB5*`rjf&!P`I$VcWqBTz#VIUA{HC%lD+*5+c7-FeEtoo(jsAm-(SMd1%eU6} z_j~-iJfV?Ci1cXzX8V#Y4#v$Hi1U2xH#UdMJ0PYW<|;Iab9GPJRE2}9yO@YkL{}QDn_M>xa`Xgr(F?- zBg7jzvw@0&zI<>PxUx%c)Yr4wb&Stn#<%)sF?U^<7#M~A1uOJjlPdy@s8}3_Mk+jL zQ~fy%9re`BDMv>66rtW730+)&(HfMRhSRc)>WYl;*g#(n;2x)YV7Fs%kW=4fWAe~3RRWN99M9Fd2vu4qn~ zD4p*WLngtagF`vab<{JtIQ4xYZSddYvsQ4rx+WOA8g+V|$D{8GV8w0{*hsc3Yhcwn zBke2Kk((QL%arEQJp;IyN_iDLhv&2{>NQmWC^<$Yh z9*-~@t)L|~Mpw;VNZna~o^jE~4b86bj=y-8Z@su!V=x#JtyZpvTNKa|mFthlX$)kz zVvQ!`&Zt#Ks6CztE?TWIvYtgZ%sPlu6Sw}3W^Qa1hi zbQtgz1xbn$E|okhU@W|!G?Bq1g-nv}lKyr6Bzog&JW zaFQN8+tU>WL^im8v=B=@@qBPvy7<*!4!`uew2H~~@8?^O9DGfZS@75Fd7R{fB8^=B zC`!WsNzm72v7j_8tQn=D(?{Xy%&3SYzLQ9TZ*a(O2u4LMCRJd6S3DigA~N<->AM?O z{|g}L$8FR*_I9a@!t_eo~vx;m+j#l`Ewem=LR277u0 zSFYvQQxx`O(qi=0aw_aBl4qHSDVkAo)Sxc7JG1vLGGcLC2 z(mE-Me8x6WK5^T_J*liVi7u_cXmQu6VFC;~==RsHD3WdsF*eX(#Vi@>|8XYSl&Ix2 z$z;!eR2qv)T#hl^QtZtEApC^AS)hl@9Lq(s8jB`6mSagGYt*t4Mx|d2LdyF)dtm3O zL`5Y!ULGTKu$nG4x8n5p)l#BU`pePdD`aYpPy(nWDTFFc2a1LOPpObA6tlbI*2CPX?TS ze|)p^<LMIBb}W~3WYNoi?@4cbKIf&48xHJR`}Bd`yZJNz!Lt`hKb(?e z>1Afv($)`1)O-6r{uZsogEGxUnVKQZWdaSaFY)kdl%HD9n9BZ(yDtH6s!IPp=Puck zd$T8P(=<)@Ep0K`uLVxAR?a)zMb0;NO(^60`vkDTs7IOdCvmX^D}N_$OxH`+6n_=DCL+egDMvr(b(<#v*LEcm=ypK>B5%S~tIW`L7>- z^U3ZIbw@xNI>=4Ods6jUkOqjwsl5#s*mdBIvBEjw(s;iQzqal)*8TDe&V6a0u;lKO!s++F`C1gc#UYLXCG!f{2^mRXE$)q{VHtgZm|*%V`U<*!?Z&ll!Qxx?&Ero|jn6;v z&THL&hE-R8`s25My4MlQg8yN==-WAz;xW7Qg&i;I z!%xUyzSGeeE}PwzF|MAa(qbLSNwF~*R|N)j!5lq|U=Pk=2F@Y_bC^uv9Zgyjr-AjX zi3*=6v|Si%GCdzsh1MOKloNJTjHw!nnXt*PMGBPD@4^p%(U*dfZ3oG!h-8sUrIg4O z5{Mb)J_akLv>f;Z2Pe9?u;d*4vUrZ;z`;EQ*-=nG3MS&t@aZK&1f|AT1qu5@mkWO- z@ZCS5z+9N12Lih$n1Y~O$)j;#AMV!fuV;U_Y6#vdVZd5rP_-vr&ujT|UqnFfa_~ek z@LL<`-NqY#BFu8Ls>*BTVQ*oShe+);*N`8CeJ&yWI)ebA1q?&1;+o9hs6l}2!DVZf z9jO<(Rz404&3mV9PgLf!b8!{b^!o1i9_~I!wc^^-k9Qws(4jxxIk$C%;P1W*h3r)H zMj%b4R3^$)k8!Eu^TIW(J@=^~ zbpQ8rXWoDQ_iw#v#fd-k;27bH?tcn@r9Zp$$)7L%^wFo^lQ=0PGY**hKZ=ta6?xM* z8RYtZ-^R&n?}Ww4?soRf2RDe5cV!G;wjVM^=YzBJ)9JmAt6vLt27TGFS_gBq_Iv|5k`+17FpphjuISCE zD*_pH4A^Lli8Bxng|6p4ERzOaZtxI0rxOV!Y<+t26e%;=sFFd*} zy)}KvpGy61&xV;Rcjh*YnOie@YGK8S#^rl}I&;qtR6d&wmQmty@@5&hE~!k$vJkpi zjke0G_Gma63$c)+jA5Ar{1#@r;gNMg-j-u31@1$>zfh=mj(h7yT?0V2d` z9jH-@$+}deCO`&Ifj`INJA{8RaZ<$>ZMarAGXFxFoN@m+A9o50d?a7R3H$LSN+oP5 z*VbTh$76sjVhhY}LWv%oQl~PpD%hJCRa|(!5U7&4T_RS3B`Kd+*~$xSPRQKw;gO+t z&r5g4Wv(c15N?};a}*5h?<{zK%3StnqvuA^6=ddo;Cm%Q{#N*0 zh*T^i!&oMfFyxr4$_v&5VFf5KURPj-f3+eZd0?_Rm~0c@rM7o{L>=tjKKqq7RYa1njuP*rX>Fy#~Q9Lst-?r4xU|6jP_c#o?E_2HC}St zoQBzDWohg5)SHX$sHu5m;hj}^&b=gBQmG8O0m4BGjKM_$a6p*+?ch{XA3j0Si%)QZ zHC~!YPxr&cP)r7?hQ(xmZeUCnlNGqFiP?`Cwh&g7(W9W{YlxTM88=j|@Y zK(aEJ{b{kWiHVSRkSDZL6;vI240H%SnU@6@{b1A0Kl2ZdYHS5#|vw2%#Ni@VHTGbWk0XwzkppB17n^qg+%LdkFIFX&$%1ao%Sz zsGV9ZlBv;opV}gSgX}}gU+{9;3EBoNt)aErC^pJ;!5j4%3q-T$Zgi;Q4jtL&YsK(^ z#pBRm@py;`Gw9C+IqIRZ5-OTT&a0i>F!h$dmld6PsQi|!hKwPT3hdh^d+F5N`jSMK zzj*rigH?w&iB_N~1SX6l)?nQ8?MI8;Qs0%mHTyw-{-19;wai zFPGA4VF|v|*YXF4suRak{l#%@#HXKnsJ!ko<0(ad5ie}P3oAhqb)qDQHK(8)Gz`7# zX&>S)aG&=T6l5eOr6ecGk~1+spoweA#+DOFGE3lcc)(Py4{&@{{`T6aGQ z>VhJFB*TH!?>|{ZH<0bk*4COqpZ7^98G>~#V>u3HS4ue!OV8qS zz2LGibp!x_y`?F9y(lFCNwxklC@JTspB7U?1Cr1R_v5y)1bqgcwG`-aqLCh_B@*Ny zvskT=>cbMW>n?chb_;8Xyx_H*WtG=?($oRjcdz120h|Ouj!4D)HlTT`)HSKiGk0`< z=JbT@iTTlA^Jys#3En3>WlT2>ZyuLMj~z9yB0jY?!fYEdI{h$3(-=QfBm7Fy_Tke= z92iLzQ44@t3CWod#bQjeG}&Zd@G@u7-}=FG2r`Qxg~dDtn`?2UkV~afMYOUymw4hl zDu-%@SjT}cDnYHDVZ}B&oyjc7j5zOq%gjtkk(~FX@C6_S9-$a8jdZwfgNZmB)`0)X ziO(@!@aB9L4`PWQJivs(2EuAj1eF7H<>rxXOh3d9 z#Z$9pP4zo+N}Z0

dIxl!DmU!t{vAmE&t}&8cb3N}pLZWai|u>hy|wSB9@uEX|r$ z6qj0_9Ys4vPLH+wMx_)c>huW(_>5zSQ*VgRjvhWX$~IQmI&xY;q$STcV$#C+n3?7I zHMtQHIpc>Uk8mgPd}?kf!eWgDiTi*kk4BEleV6>14jNwPA3Fg=Vw+9BF&9VJ-GCHH5SldUa!uG zwoI_?Ob~xByMva`o6<_slS|!E`qXlFN~z0Qmsl}t*oZk530VyrrX*BE+R9=|=2a$B zF>RH(K97?glU|u?cMK_wjU6{K&5<`I$1{IIntRs$4GWL2sZcBGG+gd2_xZ+*PO12OUdj3sji0mfWubm6#Bd5?_w1(!lRI@XthQoQGqXTog&MffRnNZ6!O3^AC8QTjf`?S zwe|IqnpB59EzKU2*0l^C*3*N=(~GGZ$$wK)^fS1ZG#II)r&3vxk749r!I5^jr%rMn zMt%y86v92tCZ!r(|g{Hk93)#lLbLMPQsEey=w^(LXPhokDK6#)vxk?}B6Lv;lB5=ZLb zS6Sp&gfDR<74GSvW&~&!NBnS4sW_4!94Up7CULHNgCiq*7;1rdPeE`bPv`=AIs$(* zizE5)t9tQQo5@HByUkdU26h&(+O2Gh&x#0~HHvEYM)3wkyVr0%b{mUDynzdhpt)(k z@X~?fX|=1Wt5(*g&nR5=NAx2H@=GB{_fkk2igjUEqc6T?SE}3D_Q;8N^HcD z5I^R?Qi)|4q(V-QZUBgz8vx?&kKlif?L}}i%(X7MJsiQk5yHuSCK4qj8kZBr$7I@@^0R+aDw~E+ zzJ11+qM=1&vP9IjP(?2TN;A+5Pi{nFi!a$^rz0Zdu$5}@Y30c#qsiFrm9zF(&g3!` zn`qdNnAq4@Te~-wXI1T9cIm%`Y{Rgbu)~T9OX$l6u7hm@cRXv1rs-v6D}Q%O)q|DQ zyDFw^XvjYQUhAya-`cuy!8YF%JSYeMmRfxk>%IlCgQk($1gy~1jjwZ6TxdZS}K<^Ek3DMs^R3Am-6jiMk)bL zT!DrPlI{l5x^4 zgc<7p*O1%7n(Lw4eaLM+8iGc7;t~{w^yu^!Uo-;RP$t{%O}A!dI<3y6cCS-v1$(s) z#BKNC&PXfP%_5+P+BSdp$8^)pX_FRLR4l8@%9y;QqU_e%tQo}%A8DAidtQF!z3;8P zb!yYRdB0oYVVb+VTN;PrW0N<|%q95jn(b{P3U0Y)mI&Q`{L-EiIQx?h=gh2muM3@f zu8dmxD8XzCjr3C>Zw;x1AWe&pg(SWYx6PrY0~15CxcdROBLjcHZ3EpT0=I?6L7>}^ zGdA~pM?d%f8g{$+|0?XZFrI#1Jn2X$wRD}vZn4AKv|GR#St8}&CnF=Bsj1+FQkOXq zh>PzhsOzmTRtg~^Q28U>Vu=aZ)C=QIgj66;EDRDD6J({7;$C09FRi0|jXyKP=M|y~ zn=-%pft@KFZEk;Ew*16vtqbqJPx$A&M*2^4oAy50l;!qkFCKZkqvM(`A`&;_S>LW$ z_38&}*X-LTyePDu`6Qm?5W(0+N#qj{`Th<0`wGGTNaa=N4sj$HAK;FO;`dG9p|*k- zmdL9kkQgtk=e{k)>_sQb-2C#qkH^JT|@>(nT9<)lhK1IA9 zlrem-Lns)1UjwTRM&C%f#TTj8w)oU0@I@vo2V&-=*GJ!2N*l5yK0Zbp0Kz9EkO)jg z>_47byJ`}NzQP~yBZZ3&G|$?-px}FUI_aF+@s9&jru_EjUDQK0-Hzvl?_QZP?HHCn ziC5wEguZ`sK-5n5MOaS;A{!W)2NHS!IG~VGNj&I%K=BTsI2|>3hFBqxCK;k>t5phn zu@)aMO)?mbhIX%vjdpOxVk4!bjYihth-&vbq^uI6l=VN3QUkZFHx5!eM%{L}anCl0 zQFR-pXMg@KiBb1&y8HgU8v-$^a`|Kz-q5gf!LWa^bF*EUlRL`xK321D$Ljm1&x9DY zqLMTl$qJ^eApC}UjVNRm`9A>sZen)={}vYg|Lm=SS0Cv5FCy;|22uBcei*WQ2v~2R zy92&Q^;&PJ@6YA2ihX|uGu_wvC%vxqFQDK5jop7+f#xmjDI_PDR!RzaBPBx&&3GhI zDMo)dyfH80R6gmt7VGWq9EX<8iPt)ehj4}PD1Hf-)Uaq}{m!d*k!-9Qp1KJ*Gou2J z&BU`jL@on{EP+)cH7rfF6dRH8x~@O57}r~DbLWJ*WP`161_}JkVXVe?onEth^D77U zzjOS}d%qPPrB2Pnd(VBidgHF`^H-jHeA|CdmxWD?*d5x}%QwU0HW;Efr4nAKPA8Jx4U%0K>fcj>#bT@sYv8+S|6bU+aTrFFWPyQ-S||(Leb3#`kSuT+ zwXXZje3Aoxv+L&FdnOc%$~#Wbv24jtn_oJ5-#x!SNZRv+ zR^jC<-6uW}F5(He7_Y#8=w9*h>VyCKX#W%M5g8JH@uFDsi}mng&5vOj254l04SC_^ zK1Z?0z$Cwe>Q7W408KN}B!1|S2C?jx|4BH9tG@s1ku&&FY<*zat&d^ZZ|^^{{lUWrsPEV{Uu}Q$`OTN^VwMX( z{Pz8~_hRnl){mF0yRZ4<_e+2GuUfJ9(WUF22ED;xu^)xlG<$WuwJBXEsm1md++_+1A* z35!*a;EZJBADGb(zbqB6=3n>AQn=P6(t2<2FRi__j_m2A7KpzrxQ?E@o*#irpp{fe z;F|Ing;BitQ}KE}Jh^{feDdbrCz}IL2Aw(~S5Po+v7au@W8}5GmXR_%b=j+Ad7fb} zBIXJ?_v)=&^tPt<_R;NMW{{?U%h~ zGs4((*^4itn9E*trN1*9&_zd*l3u6~>7ygN8i~{x+||&%=={)!qd32O(S(!*vxm(Z zmEfMXcH+4Q@7UaS`|)=-u6^LQj62pdtzi0wC|Z(I;>{^-t4^ms7dqOSAjNkI;}$nH zE+n3$rRN{?8_a(w;3wT{VZ)qb_^tUk6}|f?aiCWlk|u3guCG z^c$W%6PEwi)`{LnKDm9vs#W*2K6htX$+AO@kKgHxj2yq|PfON(^gwmuGH!a0-oezW!X zlbFFe0Wogjm!9Qs-(O9C-qrTgSNJ8uH_S)<3iBz^L{A3joJL}ET_ago1 z9dZO0Epn1~ag$PDh^ar_w;b(FkghtrU25YX73lQY zq^3@vGzN^5Q^mwkDwX!KS9OVsyzHfZy*1|? z9&CB;j`mZz3`itv=`pgiavQ6I&g zc+y$dNjmE~#m>6RUYE33+A6(W`m~glN*Q_Y`X(5Tn|0XHd%D~Gerl5+cMCMwK_vd_ z+Nr>77~~YdrC^W>rY_u)9b}`{XrPhut>e zqqKjFtkhqEdBmUg@1rBIG_hQL1yCJL zw{3vn7D8}$3+`^g-Q7ZP2yk#6++Bk^1ef6M?(R--4({^!zW@HWZoR5C(`)vbp6=&?s(68JtCJL_|H2Ql$aO!m-Y$J#iYkt=ju7oLSCP8t7Xjn*{?4v+47&_ieBy zFUn9Z&%VIw5l&;rLtXz;N|z{t7Brb0)@*{rEE924nxblKALka4z$StJeue*Hawl65 zYQ}V{kmF2S4&VmmK3}Uk)v6gyIokMIWX*CRqaC`tbIBrlhnD5?SA|_~g1Z>Go8+_N z>zp4o1Gj24?BT`y*?_ij#_E^mJ@(no1$M>KZn*T z#JlnIKOJ6N&&8F^;0YNpSDV*%fQJHu-rd$Md_=7^FgG)Hm8Gr30_vNpPbx}wQ|z>w zPRzBzl@iQA`5r6pPqTWM7Xw2r`bDm^E6^Yx#)*9E#c>M_CW2@s`i;c)Y&-=O?C!YV zpKp|QbF&tBvoi6%;B$5n0!S|F*NR; zZ;pBjfS#ammq<*___v`BGz~X*0reBl3ErK*BBhRf?Jk`hA)AmOEA(<2m^n9=YZ(7k z)4w*KI&IWbbmtG_@ye8GVxsd~zc{-n7whI!ec=2A`E9_VN8i@nCGR*{bF6n>%=by_%YO-cSY2l^kDfp%t^$6U#xRu&2em7U^*{Yzp zVFPY5>y-5sDn4{UUI77?QgZIPeBuQ{1D0hCRkl*L%>84Pyc+4xGZIJyN3tc@{9Wvx zbX|;_YwSMwRA(qQ_`qs9Gyb_cpMpp z19wUul_EB)gB5rxGN1Ud+*1jUS?T!ce5O=21hv7?=Dy^Zo4`yT6{_rY;u5SGjvO7E zIM!jfIy)zlpJ*ry&4p~VDYXVVfl#iP>&4Lvc+<7ro(QA*za|E7XwU1<0LLsQ3E>RJ zfF<_9tu23^1tyU6*vBt~kP5-G1e7|SO~Q+F5e2xcJ-F|+s zO!g{A6=zqu8HgT;?r{2EOUJBU6fGkg{`FTnR%li(YWSKaG(oU7h+4f{Hh!=`*7LNV z8ydoqK4%Xh`Mw;Lg>r+1_BGkSr@qYM*fLkISc>viiH8Z0!#1jFt;B_#Wr7!y!^GWB zR;)l}1NuQogg#90@WzmGHr?Z01!=tvom86^R*(guK z=pC3b6^D7F4r5W0N9gYfs*8eLKm|2&0k2kUresC>VrrN!btKI%i<$^ z7`jG9j67p`(#O{(!a-d4>1kxeGXupnLA={L1U-LL)4yfXG6qtY<1*v3QZK}KEa72c z0U4O5*|A%nSs!bXA29Uboqzj?enwp0%7#?F*>Bl~+i-$yBJHm|k#zOlf}3J*vNx3@0sMh%V3U53KX7DT?K zKCWJD?0i1qaxQb6q2dkG(N0RZ0^mdKb$1iU-~5klM-G;B*o_u?G^#=S;{?248%Dj+ zledeD*4>Wjw|Z^e*V|VVS&I0gl7=Z}FjAkjtd^3ac5vSo)1GCmKG|0*09mFw+*zt2|GPKy-Rpf zud7_v-_vWgoSU9IUf59D)0<#iQ{L0FY#unEA>#4;=DjtULpJPnUOcR$dVn*Ifl_{n z3F6KxY2~I|7nmC`mZ>3kD^d8K`~#ag|H0cfX#KNM#JNYLfBS;SDA25M%fTB@$kpBe zA0?FZz*%E^sqe?>2VO)L6vchkTHfq=L`m$fdFqOLLOQq48E>ho=f!tyg22ABtFmS# zJQ29v==cf&cE1m$QYl%M(4f!wrCWdRdo)+7ZbLZFLc{B(s{_qV%+Tg!>*c8TLhh{A zv_G;la17<;4NXRV2Us|e$zVpv_)?THlw214Em9eH+_)4x$w1bfRcn8nu*D{X*%hwo zy@3Cs#Nafk2q@!cxsK`89 z!{-%ho#nZ)wU@M5ke<`nUzd&jQ6ZnyHRq=dXU5EheUEYQGcXQ5^l0ChaKnFI+1Gdz zMe@fi6udadj~LqdZd^2x?xAzkV<8GV5sBJyD$x)rotDnTG>ipzrbsy}|6VM_|zYmTb!ZA*52(}E!)%IXq8SEIgpn02YLEd)<^ z37&`Fv}{Zq-LZDuy^N<)rV?_zz&Oj^0TjgKhOR=Uoxn$Y3#{?s$-OfM1!p%wJ0U~+ z&9m&P?A`2O|0BP4xHH^z^k?gHBGGNQ6p}fTOg+tI+-vk>Uq6YJ1{yxo6OUR zUgrmL-H}e2YX%7TDQ|wwUD5yv|NpOD9?d5T8`<9vW>s+6%lk;5$e>jqZ2Q z+R@$!W3j5)wqrvg(IzBLLKd-Q=(~V;`3F5S22{TV_mKIcNJNLO<2X2s615*Q zaT%V2{2b1Sc>iy?ycg2_naD}wKV|bj@>B}U@>~1{!P5Jc z7Z*!XWe9-TU}sZ{P0~ym}Z7J=$sz&M}mIDKM5z0 zyeIrCZbxkhUYe4cTWaVB1$fGZ1iXhAe6FW9n9{nhh;~pSdRab5oynE(B!ff8LArB| zJZK~xHK`Iqc0(pvT%BV+8k&HMH=My5YjLy;qj}Hl>8t!*}l&;&7YkZBVEMs zdl%$0m>`+i7DhmGOG|PmwXBW0B$EAane@1ZK`p5nL`BRh5KF|cip-6`ooxg}jJGBfh0Rj$Jai=`<`(}BZ#Q(AC*P^-pQ(Lx%x ztl^a6X~A8TyYqxE%>FLF^V4Tn+KyVLC9%i~7$*YSzQ=aauBmm%oem&>)(K3WjG&wb zg;(&>zp)0%Dl7}7U}V;6qr)i%JPTk%^E8DUPiO}FO?o!sQVd_!^p6+wLq!`zpG z#pST%P~iD3=MBK+?7iv*c2tEKgxGoB!p?RxDaZHm#df`5g@_qOQImr=Br!rfDa>M7 zqg4r?KQo+t;tsGoGR++P?7-b1Nias4DQ7{)5+64c@~6?VemRd1EoISNtcFLU*UQwt z&(Ud(bb__JI+%p1>zud?s`=t)TTNU>s8( z5c9N>IYipljWWC7xSDlAR#KoRxBVi^rTV3mDL|P3%-QR3qc|O&_*yfov*!@pw>z%1 zLG1+7QnDXZ+Mp+^o6mOOt#hYQmyonU6@8UhxT~_aBFP^d?&xGQf)ypI5jq?DwCu-W zb~)!^dI=;TISsf;FZ3O0;SACVE_i(%F;&zNlWs{VIf499$dgrhWMAz*!snzeV3oO# zf|Kbnrmn25H~>!CcTlzbq#=erf-7t5HJ!NrzR@c$;6UKzbSLXn^z{-!l^?6*Zrr@? zjt*#fI!x|JE{KHLO>XQcP~@-di{E`&+enp?uLd43p@%Iip9_BSPgoYsES2bEx#mBW zt{#$_a8klga$0mU(N&y#&2=emJAU)Oe(N``VQCnD*G7EBN(yd|@(G zvmGtWJhS0S_qnYIYXrOOC;gz0J6{{A*6!oZS=8MOKBwL#3&3pc?d-AYm~B1ke` zE`0+Y;j^eDH6EkBq}sNEvA6a-N^KDiRW|@CuMRNHbk;*ArB^?gA?JbOagDz9x$xdg zIGnb4jbRld7r43>&yr`kY=1x9<-x&Lx1tTEb%wmUlhy`Up-o|bR zYhgC|KF?GP8u?35ws2RM2qFsn8AYp~2P|+$xklB9df49OB^3-S5p#yM8twSDDLD=0 zhbV;wjTKuD!$|UCcuqO35a3N-JGl{Ur?1A`Xo-H+gJlx~#HgxjA- z2c@kY@Rdb?IHJF=zb~JNje)9d`ktv~wh`q4eTQ-vy+6zTmS$&W&@5siW`~JKQV_86 z%)B<;LCgm%R!Jkw(~4;L@jNAH$_pRYMcsqIUfl=0GcJ^e6P{_3z}Zt1Q}*1@AbAJ5 z(RB+RG9Kj2WD#Z~GQC9(QLuLeAErB!8|n4LV0;c$tXz)VAZyOp(J}dR-Aq5W{Y#mj z*5P+CcYXDAu9WIVVu|#zbeqVTXP~AAal6)A3;NH#RgRWezHK@$Z<|ny$?NJWB)x^V zzG*rKhuOTJosIZ-SvMa&KPMHZya$_$uzpfKi3_tyrnX`gm;8!87hRF0M~ESKfRp=T-HzGva&2hq`*Ur6b*)zM5HLto+~I!^ zC}u$QmYX4+c0hl9k^eHc!R$~3)r))|&bub&nEY0hC_VCKT#!|w<@QxuWt|p-+<$9hCKHjt5;(Q-AkF|L^Y!VLP0e1ChpyXhq4mR zAIvdKK>0EuZcJK#aL^!u5ztk(^p*~yU9x&T@#CYH9wL!m&)qGTj?!RJ8u~&plhA4~ z#4Y`IcbxWDB?fhqs#IEBG)OEUh(aFa;_w7UgAIZX3E<2mgyipOn4Q)xu~k zMP99xc4|^N{S@I8hXtc~OP&9+(rHII!kNu162vwI}(x}eyvgu<8A^q0S*5z$S=v4COw(a2VAaGV&G^%`IPkQy`N?TDS1X0J7d`r? zN*pJ$cjZeWNf63FY{{**r3&KGiae_}r`Z$dv9lzBOwd_SWa+avEdPat%j!nu7<-i+ zp!4K{%T)Ao(RpeU1@F({#I?S-)p*K#G48*9Z0A|+^>84(z&B5*Pj{@xyXUle+<4*F z5PjziHt^`!2VSVaD(m~6=w5$bK(eoek^t~V1CirvBrM@ibeu}COvgsc_7=3WCXog{ znJZ8J12%}j>dxy%??LQN7Do!j#<4eZ75*j?K>yvNH`6=$5%vc4STO%>@wNU{Fe)N+ zmA8|_&^SS1_Fz6{^y1+6=?@NjVE8{52aHIWg_7ZpkkZPr~mtRhI`6IGlIGV<4Yf!JyAGxGg z!x)71qi_t&F8K5H;9-bXkNd6ZAsB=d8V@3Mhyx}4JsDa`PDz?cSV3Nm<0a$dcM&^V zUX5(B-EB|N$$Cm&b#U_sE&N3uk{L>iZ=kfb(N|l4a!bbiNZ$x_#X&33bG`Q#AdaH} zNnbVNHYfzy1X%B%`GZ@QBZ9AD;9;kz$5QOz5G*@YUrTlQ-tB*P0DSZEn z20znKv#mYlV%v}5xWhgNLRrnD4mO8F;KIbi1jo&J>1p0;ekEMo3#07t$Q{y*&)1{4 z>e^KXM`3Z_O*>*g<&0_I#oEPg!|38Cj%#=llU`8LQ;EluN4Gsr(rIFjd4gwn@ELH> z6l|GVk_e~xUZu?(a|{it6RN-%OoVKbC)R*h?qs~i*@nDG7Fu9sXI%U320#f;Lm1*) zR7_DCFMn~Jl7nodvgG_`%e&KMF?sWsc;#b zL*aH{)Zh_6&iNi8sqzQ71J#LEI1MI7fgGy|GEVKh$kTgyLtTy)LN%xXze}o6!Gcw{ zVFO5pHep1lmut9kL3{GerDfvS!ag7P{31UKVvHXl2=vihM4C;7zwRNbK7NHp^~G=x zR2OMgMx9g7@n@Nij?<8DO=|SJXWn+|J*K&8^zOV4`DOiB{gV^0`5-uDB_}vnUMTlH zEz<}oV&?FZnz4wp0 z-_7pYxaN5Fe9-Q2%n1*SdN^E)qlewJNzJd!o6F2uD{&wAohJ~xKxqAoxSKa7|`JMOCRBL_#o&V5- zJY0kF0gdB}Id{)G!v8}B%Lf#WFJ|1Y)uY#srgZq-OC=QM4vKO4)plBLGBKFA!Sos( zyUS5xm7k68haIC>J9)}%5cl6rLkyrbmosmK+%bjx*1_{b`ecUd2JbsGm18+VcCeYE zcIL8G0a!*}Q+JVuEt7%s8e`Wb=GGHzeP<*_-k@ZHo{^~kh+jn-rikb;`KOE&92e0E zZhPf}3{gdQEfMGG7xs6L(sixkOKCuQ@)eGQ>`jiBtU}dQAx;&PKzk1F22;8%Hp6X` zd?-&<)-}YrL`9qAnCoHBL(o=gw0^}+tUgKe1#*uY6r!!+7V=jn$pUri@+^l^ZViO_ zgS{Z;SS<#`F=xG`tb`r4pW>{*g@#YVhSoAV}bZZ%Vl%vnrKtxd7wtgGLZlJ zB%-grV=b3K>5qm0-vl{h+Yx^ROVsgrInq#`4*DB%X zk7Ej(&aj^)Q*!Lh#p0ZE2Zgw6gP6s*YpQv8OWTqF?{9HVb){T&#itKVL9`l*dymDs z{E1dYpgLP5<%%yuPNYrJ zfxi4LwhLmPgu6Y)2tx#WEpEm0D>mvi#0_48-X3Y2Hau|9va$lM-|8R=|a#XCDBq;`lLVhcA z+mu|SD4Kap>P(vXdxm>AEL~k_RID!EzGbrALvd@>I+ZX<=E% zD_&l0t9rZ&O4O;aAHn$PLU$POL~o-#BwN=`uhGC7`iELDxu&L1SK*OD5xV|(>O1Vh zd(8oQ`8nJnl2U2u4#nQ)o4QUMW%uH-+0ePxJex1p%hl|t4~Zb_W|D{kok#opwb#L+i1O_)=_FCya+kaP=2Umm}l zc$yN3%dnvCkfp5H&mIk`NO!Obr3)b<(=S@)N37FF`4geU{%Y)M4rN|^STqE@e`)`I zXff=%qR+I8P(N(Ehn@bZWdL|jIppqd#IW5SB-x3Z*k2=%nUp z{G4zNGhkf8q5K!RB%iniKA782-Uc(p{KyJIDUbS*ZCa}yU@8z0N{%?x-XEN)KKLqV z9(dAS;>yb&u&g z)v*qGrvv}cazNWK8T6|_R|jIJ?5{iCLh|QI67PU#i6H|-LUhbp0;rZnBP`xk+hDzu zs_=~UTPvn80`XXOG*P);MRexbZ%F^rPB!OX{U|ewM!3AP#=#aRvx-RUUqq4nI=P&& z2T*nvjqrIRjDzh@n4$>!t7n4#_j=YGKx(^NFhp;8#mr zLGX@RPe>g{!|?sdMfh4LNFBbra_gyVcc|J+(%J%v(#I&gP6bsWWzfamOFPiv=kTr? zvLAhKTuu2iwJL8wcMum<>+X5)iZcqYX+!+1KGwr#S03+9055#mc&Gja@q6v+)-I?- zj{_7PxoSjqw=lTI4zi70)grr_8`NW`=>-`?uBwsU%{D%8iJcb4dRXkrr#g-^i}+`S zZ|;*aM|+t0KM=$2vZM}?0s5Pu5YMxQPhWh*vSaS*!=!50)B2!R0cJOuPJcrhO&CH_ zfLjwn`onslZDP-x*f!1C6D0Ur=9dW~_?i@4jnUfMM0?J%0N!kIL0F>9XZk$&rBcZ` z>sabBPT@Q9T6NG_EvndmuucB>kWjNP1#~sZ^csMOu&U31W&b|Mf$z;$0t`ie2kbw< zeOzcstve$|f;sN8SD1b`v4(GZ8en1w;c_nqx(x9j(5b^;>%PT&Ec7Yfm4hlaEL@aT zFk`J-|cfBRT zifBvw@NO?1h;KI#j(D3{&o@7A`fJbMXIHvT5U#*f{;~A>!%Ru zbz4H1TeH-Z4^lQ7t&&V%;ki)&sCntJTkrwB9|P~kwM=lN7JhKblfncLU!n?q zi@&EicbH>T=v?`HUjMO`9>P}Uoo=Rmm|+Yt_|O6D64d)(N!da(`rD*e{>LojZQ5Ws zr>nwi&3(LsceR1kPx~MU-KhX^uJYmei(v_cEz$3t^$wUPsSbD)>N5nN7Rb$t4~=x4 z*BlREAF@sUa~Cv!n-}e^Kabw4Cn}@-;yzoOQ&vfOpqW}Iqu8<=%H3}R=ZWJ#<}AV81jZuCRSqtShF=t^ioJhhm3T&MG3(_QPKku){O*SKZdUgmT(aY^~4u; zc+;1~H5-X=F?$arN4T&H^+=RiT`s1>@D#6WfG~d^!O|ubWzWwVcX3}$AXvXO;QYK8 zMKt2P9z?WqVcaqheG2^h!_Gj>OT*Sc4XR;J^yz&y6p{00W#oM+GLYy6iT7$bU~qb0 zYE7_H{NidUn7JHXbo&o|o(t+&zR=)(J?bUJt?z=k~rHvhz|+p6Svp7ZVC zIoE)Fl?IZYS`lu27Pvb8ZE4i48Wa7_TdnN!2BvNOpz={cuk?0s&oHfWue_UZuBgxR zGk4}6hN z0d+lL#=3NUOYXK=kbCjowerYeL6Y&FeA%iLg56vAvL@32@IFkmH> zE3;vBQU{osW5i!YH_-G^FG{i%{&aNvc7H0>PGGNy@0|?`?kp?w5plt zFircqEvu`vzm{PlmiC2NR_AJ${l=sNO8P!qRtIQ*6~0VS8~0SqtD7~i!_GGiY6&~c zMa4&d?-zvW4RbozCTpFSq~G|+$lfgzIXlY2^;^k0=UJv#t&`td52k~yn=$fShOBiO zE{m<3D)L;M47Uxw-8_I1cPm`{J{RqjUese`a-F3=|9CS@yfGIIdHo|5+cZ%Ipa3|w zbA7zZ40OYrrKXXt+(NdRwN}BuV456mt?0SNPCH=cm@>A`9at2Ku7~77aLVlaZl--i3w9Jl?OFL2heE ztCKt+_fUs-%d{f7tWi7}{bkY=gxlA~X-TY4>)RTI5`;>VtOyqoL`;^Thr*>q;>|mH#!XZ21 zEy0lSafd5abj=dPRk#fPy z>TMSEZ*u?K`Y!x8H}CP=taWd=C%BNueN4{{How}jUYgxkrsyj|wPnM&3nO3q;T}M< zQzxPH1IaYezlt@s{w#&j7?6Qg+N8B6Wn&}jei+j)-LJD);FQ0bDnH!-dle6Dy_Lsf zeEUcf+&vEC=jp8Pv|v}>yD1uAi}3uMbWEku)tHs&N-=Oe#QFQ>{&iD)N{sFIg<(i4 zYkkOiYxHiqH>t|%ICs;r!P!GH@9Um7(6nN3c9YEevIVC^-apNAz3bsTMfB)J_hgHO z5s{SyPjw;xo%3nOZ4*$bc#*xHeGEriM%rd$Kkf*(-RNroPlpXL3KNxXrh~ZKV~i2c zxfXDCD-qcqc%f5p*0zR!Wav$M|PqrBIyTLFpApTQJhrx#JS2BNW3 z35TbtRd2QigO7^MVbh@r^7)S23rR^66}wA`+dpscfFIu3X_>qgt8IJt z%a?ul=>mS@K0ZC`Z#(GcBVyFvs^fs01vk~2hGU-ibgelXKel6feA3kvh(UW?bpHrz zuJup41H*Rn_X>cn>$?U7`@ZbI4W~Yqp7Pu@pa%O?5INsRl}RrGQ~ahh!rOfP6cN)T zEphgH!THbAIY|#trLdOj&uZM}N z4;O{rt)Zy4+dXOb=ad4iq0!or{i(HEmhA36+M$W1K-F2(o^l|?2}#|y*8Q6UFiiOy`8<&)YpeR6r+ zUtdqfLfeP+vIyKgMqqMlbe?@6({jGqq+feny=8&Fk`IdBEQ_CYV#BhK@mwboXfrCx ztC~>)77wXU9KSg8l(ZM%ZA_Qn=s;E_$bM~QoR14lyz3KTsScBMv=L1PdD@B+aa3r>`3kv6RaZoS*6?=ys%D+m);#T*Ayx2KaDD~M<=UQm zu`swp840d4K&v}F~_OaZ)GsNliiQzJ0YyS_}c13HtdJWXe%Xo zO?DDItFa8EdMgJ*L3Y6=1b>l!fNN#To@y|EN|}}E!<358sC@NTqpvCvy8_wFwEE%$ zd9Xh1?l=nig^^^@9-X;URpxA8apj_!zR_*BCSH|t8z4AK)z6N|QbfdR7$Fx}Mrw_R znrsniU2pHoXCpn6A-)af4g~cn-r{V2nDE>0yfS3nulKdAA~^XV&u!M%q|rrqjyvGd zb-ame_o)>c#dqU3yA^jwLLiaJmW0+d5La?Yp*AB^QkbkN$5_0a&x(mrf%Hs0vLUpL z_e;`+1cjvC*WMEKq;J%oD5^(F0u8nIZWkpdrON|S^74W_+~Wq4 zR-dNk4-RK_Kew6Q!96nB92hN6_SELQ&tqHS$K@{*&r1%`d)%6jHOD>_utW{QcOoqG z;+K7L|8;xAbb4&GywGFmxWrQObq3Yrw#+e#@(n{gKF4NRZ-mp@g+9|6XmILNuWun$ zjKpHJwPl_AbwPVdpO=We_*I>+=yor{ZZ0%7LT1MTS)%Lbc@}mg5k@FB|zIYSiKNz`9ykAa9i=Y|?S3C4r_DetN@k;`3DfydJ6^=F3 zoFVTbM7kl>o{O)6@7g9toy)v$0e2M}Y!YSpkS{xT6(#KaZYL?eW&l*Uo#GDstScmY zrcfl6;?CTxD?7WsT%?A|KlBDeU1#*V{~u`j`p4#YU?t1~&RTdjI+MB zZh6>p$xf4w)yqocF6d3{dO?LF6}gAx(S>^`{VZ%5yHk#F5;IbSa-7dH7Cc*ET;uZT ziR@5T%Q7|LR+K^J?z>TLyYJyanyn1b;^QUUTXh-*4zD+)GqaI98B7 zAKyF&8Q51i@U?S8ko$yo2P?_30(q&X;_PGFgj-aYpZ5I&vp;-=42Q63cl|VZ7H%Rm zp3*M6YP$ZV)W&plIbx54)zoG_q7(KW68!*TclC(t`#RK!jp^!gncT6GqD^D6;MuweEGSns9r&k$UYSEJs$rTXp(9ZU=->>;CKMz}-s&q10Q90XF?YR`Ygc#PV~uWI4I#T4mVl zlDC-S!bW-1-sW4wd__(*SXQU4aw%F9MY`P$@N3t3YX7$4{m~0IB+QKh6Zw_7@21Hoi}EAeUAd zVQ`dnJ42V6zmHa$mpT`y>(tWJ&DY;~2NHUeI{yH-mW$`Ztp53wG|y-wh-dT=e3J{M zy%57&Mqpr%u^3RNvGwNUsROm4Sd?-@yZ$H2rNnBjiGRuLMOS-<8)v+F%M^`Eo!$X~ zOLm?@9U_5ONyfp9o=5xAPsg)`CiFH3sz;Y5^fj4N&WjWFspc1z^I^deM*WI@#)Zea z5kc+&$4eQij@nC^Nnq~QRo{WbxrAw&5oLa7d*OiQrnv#gBitO?+Ko zfzs0<9&?1t77qKUWXd}`*^(1&z&EXW%BVN3@8>C21W7{(ae0_4uZc_O$5V|(Ph_uy z1?oRotx=5Rj5I!s~{;Ay!Ci zcTW>bYgO=}_m*C4O&wQR4*TO7y!)dmtPU=J<(>Ty?7XnL*WkS15T^w0h*!g}ykblR zyP>!QHDgP!Ie`8Wgljd_FAycDVIReObA_2FbHWs%;A2o&d~tn78|Ob6ef^F0yP8?d zMx+#ytqw;< z_Ah4yl&61n3GVgXB?F?C-*g&9c2F~^9;c#9jO-Np zmbe?^adbkP8^paHHQL#xM;92D;G4IGN6l&$Wqju9rq1aEu|`MzPP`^>zeSt<3el*o zzS5iv@F}*mjaI{zy;v8ObpI3Nv4ll%xNSis8n(*UT(>J`5EcAn`~mdd8JgBP1fCzS z*hv9rFKMe4y)9Zj*QxX%d=U$~?ZDC%>MxeX*hn#0<>TAM87$VR^au(@h!M>L9 zOSGv3EHrLvFy{)M`NpVQttBsF&JAyh(lgH=Ak@H&^5W^2*mD?b$i_$o3YzP_fxpYk zNQYf*USdt?wE-FKpUg=e#=P`-|J%glaytf%{+F^`zqQD#i;x$JZj0;=Y_Y^AfoJ58 z3XzZ0B3@r|1j009mE_Cchb)Q=N8nB@l=D}IALknjJ-s6H9y{M+8bM!(aNUBVD|#fx zfGx7WlLw9UvCQHnAmOVM2Yhp%L!y-rL9Brku1mJDQv^L*L~ka_L4t|8ja*M zb)any`0TcBumxz0KO|N!WpigYWxEkCp|=MyU9*ef+ynkdc}QL=Gz&sJV^@h6TiN92 zc|v&>8!;>bm~1Ek`#D*(qKNdyIvvSPfX9Q{ZM4^`xBgm#kKhCMbLQI(_jAoAetUXH z<#HjE!yTx--LfUg17gU_r+xYP@v@Gn{2Y$Fzcu;q@ zZq;*e=LF0c#2EBgp4+*JHT0Q|#o&7JhosC;t4_4A{HiF+KOx);AvN70zpgL8Pe17D?)Z{#X%-iu(8H4}6Ox6;m z-ipq6n>XX9(g&NqOqLO)-iZF$o3!R;qcam3$r%HgSETEGgO|t)cro&zIp+<0N7V!0 zeTGOx1OhV)4`Hp;gWz@?vDoK)$?m}eE^?{vL32uRaaIyQ>GMB<+COJzmQ?@PDcMCU zgcEjXvb;Mc7TSQdTi^eIyJ17TQG-`@D7iT)e5#}$W!yWZe8bYly>x|pww}bF)Scvu z!Mh-g!Ad}J$9)-P9R#2+wJmDNb;kX4fxbTm&@adf^FI1LZEll)G0AXKBZBCQfX*Zp zrfJ$<$0*ByN~>STV(df=VyBoOMn&r^atef(8t<%_;Wco?4hxMXohd}R9y;KxrOme zxoM$jYxZZItR{HwaQhBIS3;8{%c=;=39#?e9BfKZ#oYp{qR1nzqm1)8i+<+cq2nCh zbW4J9Bd&L8i%raL4zUl1GW!h<)4cmhCre(;$Gk5U?hM)3k+%{BhNCeLC4lhjJh8_q z(id}^Lvuav>o24yr(@BWI}%nG3!6pH&)V00r$VmI?7&`d;*-&qw`L8I`pG~e&1dz) zO8ef0^nL|}Yy#MRL9wn21+)$b<4A@By4@4e`sdROimMy!mR8@3fi!W{%;0kyV?tno zs}nIYUAu!mYO|DC-!-N05@651vHlXSjNu%tP4or&b2d!2cs7?atjZx4@L&ZTxI8X< z?}2+rBRprtA)k|;lQG+`+%#H;oLE^NBKuX>2|Q5;-!;HUkkB~fJgv|(LqH4KV}w+UE#8K|9pm_&KZ<$+bsNba0CJ@mmYYoIrb~h} zLPRPLt-muS(r8ch)icT_qPJA_v^?jQMsv zVRb^MYz)(_Ak12kc*4HSoB*1bzdRa+Wc?CD~>g(1}BMFuFZ6a2UbS?SXvbSUbNDIPGOEvjv(~z zzBQ(fZE7|0;#ugM-I0OUU7OP-xH~!hFNJOKj-@hfvQMw`f3%|;L5#cjduH=zw`G$~ zLQD$pd^j2ic0U*XD?6AD|H4Spw1c*QYot^AWYw;AJU9>nG+^4~eW|l*CA2to8Vqa6 zpJ)QfvDempSl0evL+?|Fsj7VoqxmA94i?h%u}fw~)*cMFPVwxh{(zYVCnFbdEn}D% zI@$SIG84XZBzTTOEW^M+SM2>w+Q$2iJ51#KB zg*_7`oJJ+=d;n&!ILJ`VgErt#ODJ7r5MATkj4;yx_~QN8f_4-cy@{VC*O)8aeBA=B z71i2sE%C}=p8O1^bF~c<%M7Ib{~#YWFcT<@55!+x?0WLC6Df>J zG-2iFN%9U#;52N7_PHtxWX7TD44O@`uTuajVC2Ha<+WE5}y-Nr_ zesqN_gqApp!Ef+C6k9$?LB-o7E0O0+XiXomm!I_nA? zG>9bv=GTfVJyEtFhWM%6{b78QpJb7shrB4oa~JklC^9vW5T7OuLD40aWQpHzf2Chl zEFxy5BMPR6U%1~WY2Da&Yu&QF!Eq;%K95p&s|fh3GP4hZKGQ#yG5aU`3HbM-J(Fv9 zY4JUf&Es-wW>>;=Z5TIHK~v8_=1T(NVFZ%Z_;+Om&kah=B_@L5`kQ38_#ihV8hlkh z9BSWdxnzyu^l!X;;Zs8rlg2dt$;|9g{KGN1_)eZ^TNJe$A<}EfI9efNaT~r~J?x4m zF)xU-hhhQA5r_z8FNu=oUs-g)l67*0aT->!yNIidBd$Y>g?7EAsxs_1xV}K^&u;YC zxV4WKxH0RGtWC;AB4=q|3de*_#9Si~w4YRh%se3w+d`_knRc}Ju{E}pw&BD?t)?Q^ zq!D*L>6I6tTy*t&mh1~*@2az+K@%Felb7tqv7|8^m`3OUW5V>rCNge<-6%Eu)YWC| zmy1D4&W1OAH!+s_d*Ev=>r5b*q@3vzBV$bH$Ze30$Zd}-%abYQ{n(aW#_zq}zA%c!!ZN$?__75M0vAt32d58SAVm+@SmCK}tP9>h#{dU-$@n5_mV?qe% z+Z`@~E4G76Z~TFJpoRLxXP_v!9u%6v+5ibsLt=rRjWVf@uLEfQFUc!4%!HRCmdHlsY^ zSNJU$Im_Iim78_x^~JHF-U!19bR<1!!qzohEzG@z-Y2VRAw01!7|o1yU{dw+{L{zR zJmsldpf>YVF5)}RyM9Z`XLF`J43HaagBgKnhtPz4VWq;l!=#F;`-eooFDmmq6`Qup zUCwgH>-Li;3@G64jfc^L(8t5RMK!}Xn#|Ik(#qnC)?PIk`m7DJ+pAr=ik<$sBl7Rl z^+hm6EmL+asLltc-?0o_dOFMQLZ)I9aU7sGE@zwsh{waSeoo0`{mK&bGf)5Qsc#f= z%_^{N}#OcE&zlwX3uM-o&`ENd;9=uuZ>V{@|uj*G0j=oj5WUFwX zWo`qzfBo`U{5fgvh-PnTC4+25LrdLBVqtw_{K>o2zFdM`JIS&sS~w_SAGX5BO9$d^ zmqSNV8Ij+CLIx+QJ|s?+FTA=iR2dPtYBVTqv_01U6^yfE-@V)BxJ6yVwnox<2%G`C zD1YRmZBcp(g~JppHvJO(K1t2k&FIbWsc`R{6%dbP^Ol2c(2fYR#>B(qSbu(Ir?#COq#G=Dzmj=gkm1odtVeihLfN(L=DO97+mF#YPu z?DRJ|FJ3s^i(2HGEv&1u_@+y71%Tp+e2Qi&Q@CE^I(3K?YjG27->1TSm`bLJJhT7( zP{_q1gc{T{(C%3{({E(&u_c%mS_cAW0L?BlXlu-x`F&HA+LnY&E-#&w#v+hUugWBP z^maDZGyAM4A@UjCX*rBtGQdUzjPe{B zm&)ouZ3XRNWNn|II{BadX^L|J32?vPs^EE!Us$q0bdEibYez0pArM_EZ?i8ng*AQR z#i$#6%!r%TnnlDkLrxn=pD$g0~>LjOn9m^iiR6ino4w?K!Sii~YNBKO5%hQ-* zo&-tYNGXOd8T4V2UNSM}(%flfvp!{Jr{85}O*AuJORER&yB7|Z7oD8 ztTT1#r7Uto8ufE8CWMd0R*#}0Faz678ZD*smbkG?O*^D1MT#`A6WYsOVU;u!SIEyS zahd!?YLDKRMY%KA$=foWXfeVJiPPuBhtRvpCyUtS#_S2`g^_mT=E$_&qj)63vgBw* za1cx_*PWEBDl(@|ED}}hlq!uZ;NSe7)y@WCjAPqPDc>Czv^(58zah1ZbeMSgppTAc z{)bo)IXY4kJ5S43J9J*o7I-xWo%@%I3TJcy)D+R#q^00=;-0T7U~F&S8;YDsoPun_bPmfHZE z&E-i<|hVAX^R zo+3cys^#MQaOQ^D%Trs?w2;33EdsIoRT7sYEu!n5cZtdgzcuVVjeH7`BAr;CMZyft zc5O(B$laMEK-Rc@NtEh!{Or#I{Mj>PLoCAYWUjxajJ52RM0pTi1jSQD%8CX#I;_kgVP37ci z?H|5S$?9Xiz|ITmjkWU z;%&T_!x=lCE_x4iggrr3hfho&tPi{bu~8JMOqgM-!aZ@ONL?lHh; z>}Ra;&Fhor8TkkB_PIp!0g^fLF?Q~O`AX}2vsu%5EBPeyzyaXhS4VVqsnx9W#Z?*v zc(6|zygrqBAiR24?k=A(O>W~ZqkJHB#HVlDnVg_~5N!4{*boX1jXV*5FiyBK3nKoJ zzhTwhKXifRyq33N+soVz-p{-RZUKpJ%3M*(C)D?@wB*vv*9+33`NZ-HDO9p9lKIIq z;d+&I3KiQS(zyGY8^8V(Y7bhgp#D2`mCvu8iGNi6tMYfxGoCN0l?E8+KL`Wrw(fbOPY zX!U8*V8)POo74bvfN$b5R0BP(e{i5I!Zk_|yO#3+{KIH0CaD(Bkf2@w5ROpFeS%__ zh}gC+NuhD6FjpPtlaKgi_$*Oh{e6(L_}Uz|Lcl76pB~-gqxZI!f`C)Nys#A z(_%Cy|4R_k>z_*<`M}iz9krUH7jkT(D{)=0H7(G`ZaG^eYb=eIZI2U37{A!MrM^zW z{1QJZnM!xd5{ksjvjZboSh(ns#6ZZxnauOgo~iQeH$gUwUJUL_xf)Q!PGmG_L$v~K zNv&0qD3e!9mf-)TU){Not`02_au$47b```V7JU-yD`u3@^$cJNyZROS=`RqvDcTfe@PI~;mxKg^g!U13MYaD)ybb#m zPV?nyhMIuv^;4ZDUlkC{cYp5#EY2``0Jac=fYg(Ju&xf%D!>!P$F;0Fr$TZMm?eL44c#q_W|72 zhsa-M9y9@wC+uyK9#dFA@`-Od6Go3rTb#R+f~<6Q=%kL_9~Z_R_Ll0MqUYS77j~0! zP5g*-O;pM$KSt+|k=pm=c!~dIC1C~0_=H_zui&>edQf|!U}a#3E7$~y|6euKI7tN}pAz~8(Kb__8vKn6bHMe%h&57<#H11^ zhGrl%5{XVxjl>PGi8UgLMp2wmWA}qwVTbMd`2CFpcXUN+2yF?8m!n*~ZBVyWdi2m% zU<%PDNF0z0P$tOJB#+2{QhFp^HTp*Zs0>78o#YuL9w|1=+o(PHH3R*ZA$oFegu!~k zZ*YC4sGq2R?AWjO9wC-9o@j|RvRoprWJPXF3`#Ar44|(e{rASjh_?lLNP7HKI)h-N zkYfqa24Uo%H!~|F$j9Q4kk#Y^37`rbB)@!;2!nknc>M@s_j^7fmPInS7;4 zbJ!!4sa#!ZkoW;{Esq-e;BW%xFq6@d8NE{G75pFZ|Br6az0lv=$3A&4E{l;W zRyJkwI7*dM=ZnWr=1jh(%Hs(8&?TwYxO+tX5u|p0Y5aXAPcCKdN1TtdUOHRI*U(`4 zl09NQ|9fYDu*I2vt+bjE&79%r;ZVW=>~f##8FUV`9DTyOmx-v2Fc~ z6w<>l>DqmZL<-(JI8mE5+ttPI&QcwJ*AyMsh?&_gqCM7|b_Mw_mVQ1V64wv5#7M16 z?NPF$61%@9?4pEZUkC3Eck1(zFtZWFc$o2#JWsiZ-TWsN{n9^%g9b=Ziw7(4qND`= zYhQQSqYallaof7AhfX*?b=ztoXsUp&IQ0P__?h%|kls8Wx|C17+$&$t+y7Vo)rHUl ziSK@p4f?Zl75sA%h?}f663{)@2zm||>vu5oP% z)?mt$)N6->lPQh%a|!JrnbK$UXqHqKRWcX6%z@KsS`@IGnw)Ev^M}pznBl7{(<`?6 zu+OUgfmWBXRZ25*4xQa$!=;}Htvv%6u4A6QlA;iXMJ=!Ipk2e_(h6W?)?|iF_L*9y zJ!yMPT%hO$GcLKzh}yyb4w8SqsM7pdFGlUC=*MIBYmXzLF2gWw8N23(-qekr_^aB~ z$779Dy%fDci5p0V5UC!~5L^;4^}$&KwPIpL+p4_QkLjOBH`5Jd?=aR|xJNh44J7F>7Fi5qljtU>o=u@Hh#nJE2T{uVT3!$7n)L}x z)D?)Uzh0bVRn}dIid*E&Cqlj+IL=87JPMg8{IEi%k%Cm9Tl6+PX7)ZH9BUR!1{G^5 znsUDKx9_P=q`=&rNQ-T_AlmZV|Chu>TS14BSYyG$!ga}HVil_$L4`3hqnS=q^s5kh zkdZ}E4CfL*-_wQi8ITPV%HE7l?y_O}_|*n-q2C+d8%t&6n^eC{0Yjxl!|Y$SPo>2Y zi|jLGj{oL@J_|`;L_Cj@vYl=k1MVD@*(}87I5_}Oc2i! zB%bx$3(yPY$L)~U`S)PKA}{Yl0@Y7Qz7j8(RqpHzhz!L^Fqye1pL`d}nK}7+`It_^ zOR}XuTeWPEY-+J9akXrmZ{})nF0T%`@4?yUd&t6fu>b-(8T97a! z?TVU{Ao2Rg@$D_$1)Rmgu#S1_asW441Gg{&Tu?X_qz%hj$iym#1Le*0zjkWPZ%@N3 zMqB7@uSY53wcd^9s(akBsZds9b0%OqDR5kpso-~J1X~_f0#_*KC|iarhF#(-BwMvB zwOyNkI>7~iN`9obxChFuu$8c`Un?|wotjz^99N+a--b}5}JXX(A-saNPgr~+nC$^j%NprqpH3K-v~{2$R}*^m*i zv8r9EZ8^h`cl-FaD1%|g$SyD*eKV;pzzc%W`}l|`ds@{Nb8;F3ikuLyijcih_SqAl4^i`sO`+5*QkG5Ja$e`w*`nfgF${v;e7Ed2~>uP`|6dpnm-=6k7-v6+B1+ zv_WsmKG>%w?aL6jk5 zT*dx0Ez6j=UdTE{af5i0;zunyp;747@~cR7Kzo96v0yr_cB6ZeaIu)WFK|=70>-bt zy4t$oJth1nYH-uK!gp{1_(83|wPX}g`d<2TLh4-RID>9td`UKRE+-7`Gu-5VGqz)0 znY^29<-X)nt%`UOU%|fr$dZ4ohVhK*fNqlCgkGz>geI6n0z*0u@(#N1?IL|a*;0I` zx=QkbcM%Z;<;%}BDDjdI1i<+UGr<#%$h&S|Tz?nqj{JOqd+^Fn}~Qu1Yme3 z1Oq>h_;tkzdyIPnyj7=OdR+#6c|E+udJt+Y}w zORy{HgBHI-DYIlX#vnxiym@>s{U=esOYGq2R;7&!;jCJ8nHDRd?E zQDJYU<#f4A4gO?h)FB{0IIq#-Cr+9!eT<&>iZLTAapERr#FUDpOR#L>mhpG3{h~jxtXrGXXq=KX*IRIw-#BG6Asu%)t1?jwZ_qFM4~%~8kZZExR)5Wlg_7`58IE~P1ac2jyX*>SUS6` z>y9!=2J-gSOkOv=+Kv(rvR;_dN#e__%g`6%0S=$jN;^XirkV^~y0)DL)XrtLmDMbg zk-UT7kB1x&H3JN5-D}wwt}9-3EbIqgFCNRUBl$1*7l4OIzYD(wu|bqa6bsHl*hg3k z#zF2!ZVN%l;?_ByDMcu+rraJK6Z|h%P&M^Io?r6*j=r;Jim>Aguj#V)(Y(7?c$hwPH=C; z8R=Z49RYIn6%KMY;nfvRntZ$El{|&+6q>c^a*w}Hp+c0bGkz?{PBdQ_o$^j>y3j48 zPe`uIlnWfjWgK(F*(bhAVOZh?+D>>zqs+Jx)Ysb**k!^QKz}`P*V85W<-z1p5j|!9UzIG8U;Ps2LayDz0iL zMbwRX&Q$~yIJN1c-qAy>iw{k-({ZNm1M}mx{T!nhry9omyC(rJ-}3klw1wYju1wQ3 zrUoeb$h0PT7h6mrr!TeTJqWI1?ZZs}a;>1xsBVWgFS|wL(XXrGj zX#=@@ua*|thWtU6+!e4HxuC7}<4)|4M$0+rtNfkSuEwy+Zp}OV7FIYF4;l9j+KcZQ z$_?Wc!x!IHTN!Zaa5#>svsXHQyKmlSxz|}m(IW5&9=Rd!HI`DV{|^8o~P zB(zPHn}?8!>IIN>RAL=WH zHww>Azf6X=M(tVbviAa}o3WUO6+o4B5LCjdbAJ7GMct*$>6VU_;J=0CSM#pWGf89G zs!Wm&u^Z6V8og-x{@BEY^;Cq7v-RJM@~zAKyz%+#C(JUH`|D)yevj#MLv`I7=}Mov zgh~xJ7xEa9rfosnpge9-`2z(JR~f_~9_IEnfVuKRWS_E*)a1dv4B<{Y89+bVPQk8w zB3SRaV&*JoZm`1jgr=v-LifB-hdwzq_czfsmBiIuc~}NWs*swDBS>GNwJLdCpY!@t zd`xl5tX6q9Pz*ksGrOx4R5&hejn>4oyUpgZYvVN_vXdFx)@Jd6lgdfIQcL4#xpHr_OJn8o@r*Oc9Xa+0y<*wLJFb2ql>rPVoKU%|Cs)sK zFSauMZf8}U92QP-+ z(8+Lh`6DBV;wj(-62pUovBCEa`Rc>GtfR*MCdKa^sp^F5>aQ38-RXZ^(RdZ>5Um9iz$~F&?vJ_DkvgJGaeI9Gj?KJ2w>=cmP&MH zxI3HumHv2DGX0!Y8j88Yu|Cw$Z`mr#y?FaCAwV^5V!uKn#sAj3|zF5uB-_sb=;vhq^*jY4s5}BX4^dQ=nGflhHkd0li=+K-1 z#}QO96>Hv^MSEd4mD)0M0e6QOY3in@hIn3>MJg&d81r-Rw1f`l4ley_m#7Z66`Par zvDL6UBb+zJ3ecMhp#DD~n~P#=jd%)gF7`MzbMbJZ zy7Um9zp*|TS?FMaS$>}IcXsBSppW@$Bh0%5-Byo|4W52h^3~_5*-3NfTS)^A$|F&;hFZ!ahwN!Q`R7T?t;Ib$yzJuMew-DNVD=xr}g z7}Z}a0i^rl1Y!60<%Soi2?I~43CVq5V+b|PQO8!XOsnQ?FJEW$3scKism#rCW8?<` zw0y>zpUu#s%lIS4zuNW-td#W(nh_kcdaF`WNPU`6w3|n_V2#Et5If{*wrbf*BYXT= zJb`o5^>4dPoFJtp{dTXKdb7D`J2^B>CIwqLFSLTfQMnKCcS-QRF#=m&lf_@S^reoEvkL{FRwXZI) zBtPTCORPS~iT%WMflA$TLWQp#OO4wzvpV7!JI?WO`CxE}*{@whaOplx@mR9VHe3!^ zPwB(H=Pbj*(J~_}&19iqt^12!8N#)R)A>7D*M;05@Xom<3P{TO zs9=x4ncZwOVL>AjjpSGS9MbIic}l3o$Xfg2c#2^n$8OzjzBzBLL973vV}Vec1$<%r zJGE_mWH$lWTQB@YTh~HA~RI8K8SkFkdw?dqmZQgFkX$XA{#8!`Uh0F7?()?pGA8mNgiW>-KAy|u0+V%astHb0$#NDpfn67zS`cY?37ns!?d!LI*U_oj|#xX{0$*I%5P1^NonB?0IokdJ3)cLW3a$9zq^U&ft5ns@* zuWMs$UO4us&ApO(09^rgZgpGZDds-dcG6O&!EC)0Rp&guT0y(=dccoc>}ezb@`o@L zNk^?ZN;`f9aJ;Q9m1v#swGXLlSzL~$8wYG3%|8ndYrR9Ye&h2~g%fu+Z!6Gu= z>e+p|nwwF@@56b58TJK@WkVZThlRT&o!Rspf*^|qptd>4cHFVy0YV!t9iJb(!acnt zLx0gvPG_>nqIq_S^+J=~LA~%i1S;Nf0nMMnBCR6^bNV!aP{)lW- zrC#vUY>R~|OMa(K_Ocb1ht)s?t#C=pC5}Uv6?k`@euCue&6ceYPQ0a^W9{B-`eo4_ z{Fp)S%TwmvS2w&sL#=Q1knz6R`bBg92|J;iK#%-#Mt_BoR*NZho$`rvwXrLKQ~s(QKP^ z$Y}U+{jD)Y(kj;%#9#=yke2TMq70Br(xJvkNYoKLB6s2F2BnJekxUlkpy13+z5jxa zgVRGXE;2w?&I!Qlmg~T(E>u7Q7UrCOIV<>EuiXbLg+h~l<@Jod_#y%dmI~xQ;ZOXr zd?obFrzpl?W_r%D^pXhAurMKm%rl`}fzKj@(I(h)np|K^aOC8BB@}jQa^v1r8pH z=PtU~wsGCL>Vh$%^zUvyiiNbH>wbFyWAsb(iFHYC6BGsffpN5V%BxNJX>m*2JMpST zniX$DJZWE2^C3wqgmZ*YC@WECzkDC_D~>yMc#d#3ZR@6Krg@v%ZKvM!z*dAuTmp8! zzv|XY=1W#CO09EOWyGDpwv@k^B7%4hmtyRZfoKSo>_6%e6pUa7P8cyYF*Wh{obNG3 z*&=gv<`|A_Dq$)%y}c8LZFui%ZaH>w-bJFh%GrN|W0`55y%;XDc@ zzrL7*Ap!^b8pfMRMVY-v(oUpj$tL}V>>|Y>X z&?%BBA1xZK7_Fo&p)E$6`!)A#aek3~{>RD6DZ1lI%LR|jy2^S)OH9kDqe^;XMde>) zOR+2HC(*Ol=cU9lV=x+#DDRH$k8elDMI^jOj&~MWJ5p*u9$Y)hal~Ct>=2>Y2Z$#c zimjh*oaM#75E*GI;Z#&`pkqRy=oHpAI=M3I(8j1CvS3q<3$kmT77Jb)=oT*t*1yBbNU^j&B&}W}3%rk=hD zTlh7vbeo2La~0i#RtE8F8|BbQ__?1TE{H}ip5YQH7#q0ed2hJ?JTd$fIlLw98P;o# z=~zc!c-4a|%mb9xZ(zlg@BKls33?6g6>e22b7IcWy{2OwQOEDRe?>oF*CGQJ4|hpG z|L>+h@a)7lyUnG4&enD98J#`l78k!?Y?`n?$#1{(QFhKXaT0a@;EQAQj6_ZD}~>xpBztX}fA9su}IOEFn@pzyvmt`uzb* z<*$x#ZNOj7;9vDW1Ud77d0Wyw+V_zk@E-gPylyAe%ewDw^WhxA;C6zj0>Q*-wCdK9 z9h{K%91KFAXdT_l+s5y#y)Qc+Jf*->+BhTLYnnB__=badO!JR^7lzKB#3bH1QEbwy z10I^TfJn&=*+Iig#QL5+Ws5OS^IQ1MYsOB8j!PY*=UMyRiQB?Mt_xs7MS(G?{B{lK ze>842crT?q4EaDU^%+?mqAX6L0VYs?%cOW>x zFr6rEZ?15&-Y&eMh?MDS$fF#bC)f$pxh&uxXuZ`~%ZFL!v^-=g6d!YJ8HhVBdca(* z^&qbhomTi zy1&tG?aFi!JA1C(z)m34u%3Zgh=k54LL5ts=Kn>&OV>D z;QosivgB80%fI*NQ~1OL6Ed3pw)pm`9Bvi+Mm)}If-c_6rgNP>$1&T% z*1e`v&!eVG9sR`BQI~+rL6{@nGwS(u z2b|oVjHAReiw(c?z;g}gbD6boyT$~W9t!_Ls*L;{=FDt+eYH~*rRIOE;7 zWB2xmJ3n3K_O;c4g><@4W4C%W3G2I9O52`izm)6vsnv|{Zk3Bdgm)>&y}FWISaJq0 z9uYp8{S&Td%q_0%;k-Zr=T_t;K8)U>+y%Z<;ay~)As1aQtYBhlQ$h2r`{269f{OFs z%RSoaG^g*i7d;!vwblO3txb;!t#!@M7O6~qoHtyT7r#8RxGJCO9_;iQZ%Zb7 zydo>h@0QZo1xBcET+_!p1iFaAR4>D8d($peTqDzYCbMUcaI3LiDtN6raJdG1ZDu;C z3pbr-moHlpygGOBZq^;4JRj2yJ0vGyHw`goI~)(oti$@#tQVVq$8%jiXH>atxgTgh z;B%|J4>fN`83+QK4_^lGw#jOQw4jf$2}9s}|LuJ3Gs@*;UhF%!N@%CI^y7$n=H5%C zLcm94V1Q0{&9;<2WwjJZis9 z`Q-Qaf4zcY%pXJ;S5b=KAF$?2g0c}Wrp30OcXflvc+*H&|kCbcFgf8U}}N9$D07V$ljRy7?7&(wC)44 z$&VatY=PhRt-;5gD|%>w3fp=WQQIa8N@;!92maBB2zM~KohjP-5HfU))d$s7PN-|b znO32Df)gMta$(7mm101~B^CABg4y$lie}svS;)(3(os-3R z`+58N59f~Y%suYWwKJFrm9WZM^dqLT_miCwt`mUX-rq8n-Qc{&Mc%-8Ko}Z4!$n4W zg~|)^1g{zC0M#(u^tP3GLSE){^RvA`ld8v5mcrmXan0;M@Yly_7 z8Gs?wy>H(j`+b#!o3o^e=qxbUzV-QX`1}+~D29OY(bz&}@)gpcm7&QpN#IfMF)gRF z!S&9Zcs9A}Ih^3PPU(hIH435}?*w)8^L(Ha9z6njXZI()JH)YJ(P;LYUEoo-oRw_I zeW>>Mb1xy>-ou>=TRa0zu3(Yx3`Y!#{{i`SKbgP_z<>JEV5>0%GiqTNb!$+UM&Q;p z4@qE%Xb3@!K<#wL*&v1rH4AzCi(=@W{ajQa=EDcTF>)7$UhM8%RY1|BXnar=Fce5$ zD~US1%@yd6RDw>m;QS|;bNI&L5gM4As5=cko*M(Dt#q^KH8dEEgrsa>;7&X_3 z6qh)ttI~zVKpE%HFl#iINmKljlX-AHVRCy{g|wC@X2*&YE^s@;-Q~3Ib<0Ds{u{ohOxqc zEAt_oLfQ>K(_tF-W#B6V9pb0QkFDsz7@a{lZn#4>Dm3n`Q9Sl3`v%Tt4!J&H95=&n zb~$Wf)c8B_j|N{xfM}=#BKSdOf^j!DREDQ+1I!>fcBi+`<-kt1rFcW&Ap)=oIq3pM z2QJhA`-W}OpVbXUXT)3MxvU(m3s2z6;7)uvYG_PdqvV?N2G#*cL1716MxBqZ@{ z3}q9i=y=qivO|Xq9sPaDIs*h{H<6&xRM609(1RGUB$Mb+;j5OS*UqR0H}h*W=SUDM zvC(Q`;D5t-NEM-^{e_Le0g13yd4x1th^+*HVHgVA&!*i98e@mu&}_h9>E17L+p?3f z1KJ?C)Fz9WtFBr`!yy!F)s?X$WLw0gdSf)Kqy;mQq#!mV9e+JyWDJC|ykoR;{?owD zHUqT={ntDqa>j04UGwjr;BO*rX%!X*yL5JqBDHD*wXw9)ABB{7MDkpCe=9IoGgU;Y zAkhz%NZ&Mgs0O4+uKgxECGOm|c{eo^5Nk%iLlfiu8xmJoJV@_vuJvuYEtJ-=GJEHC z0ot^e30iqUcG4H|k3Rs;stsgMxF)b6=zNLi;J22yKo4mzW&UzR5%{&3O?upz%|yXi z!Gy}u#=X|3iW|xs(-V#Rv^tIUtd2sjEM3*g63)5R6aIUjm*@yWyx9STwPM!!!ID?X zX(VTr)j2k(VNye*ohkSyR+f(y%(?L9I4XEaZ7vzP8=`+<`m{jIu@UA2RWdDYqFm|j z5)bo0Bor_8VSLyKIZm!ek+x#Ruz!BQB>hyl)(I~>IV4T4IV!vA~P05?339+kd)|#(SDyl2_8!s+i+*TqmpJguQsN*Qg zp5Id3Qr<#pt;PTpUyN9nUVsx66O3Zdx0uV+m%8P+74RsLJ}2-<;}^;)>8TX@SlOwx zo`8Kh5@9^UES;3JDCy*44olCE+n~$54vW+z(fx`l)|$sR;?{sn**?KQVpfsKI$K$@jOw$iVTNE2r;@>p-FPs)-E=U z*gEERFQ-M1UyLCJX&A$iqFLf^Ebm?iPo&P~)#vA9{HKdM#guGd-5KvGoQ+sN7K-9p zRBRY?K1epTGZ$90AB~-ciFeuA!(h{*cG}dZrwYvg|EJus{p=qV*h*I0_O7-*Ln?vR`L4>rq?Yo zi6)c}Avj@()E@z}V+#QYyv94vF7Q5(9nfKKbRixhxM(;k2y}31(0y+jZ{#T$WbhRb z77$n_kTDSGK^!3vCJ=0>aIk^q2eRLRz4Vcj;FzF*%$lRinrPRz-x05tXjR}#(0mB# zwJ&%!FMVk-zXpb{eqe9yafc<_!;IPygdJXiUGX`{GYhgwtU1tNtrEgX?HM`QyfYW3 ziNA3F%k(*eHxcnd(cAK<>REP=yESDv^eas31WU6HYIbe5PEZ3S_5cD_x>v33TT+TyLgU&e!;AtXxY9e zcii&vNr0I_mw`9v-d}dIf2y>8X1}$iPp)17NPCoS0F%_BCnTtjx z8n5tr|MSx~q(S;Gm!QcVporgAXOR67ZRhRr=GF^l@Y&U?0LlY3@pt-x-hSm=uzV>_ z=0L9_{n+GUf_y1^X8+_|j{II`e6D`vV(&QXn}^qqW&;oyw0o#s&buAA_U_zd`;!Xz zT*l_GXAcXbtj3%g@18*|*`6yd@6#0`{LO?;xP#JlkLi>?Xc77(G1R$3-6h*~o)E|H z{UkR8z0>Ob>MgmJ7A0>*wE@Wo$_I{Ti}zBIt>B>(2G$1}E7GFVitP)rqYTFEPET)y z1lv~*ahI^g<*OdI^#r;q-SvrjRcr*1|5J;tPf$A*Uqa%7{%w`e^WWNP8X6*$?C zNh`yL)%jY;;$Io({Z2k9Z^%y98$$QFlG5P9pgP$f3-N$O|CSK9W*M@-_md|gD(>s) zySH=A*NHtn` z2?_o#BLBCGR{;rXNbFiE3sL}D>&@K-7UXWag2Y8p*O?aze&$NPMF`v1 z1YzzYhN%fhW+Vj#yH^k4L2L{7d#r)EE`q(bV-6K!E(z9meMo_E)B0%t8AjYTnhdot zAXYO}6|rmFYfQWN@*$IZ9Pm;2QuGyV+4Wi3D)On&k?6^ZGwZrOiXcx!;Lb!fPxLY> z^NaWAJvli!Q+uD++FtQYn=BGVm}kLGP2uJ;FvZOfEhjOp%rX)#6bOM2T?L09ca2Mz zknhl5T5=A^&dZ#6^3%95`&Qr&U#PO(+s*djyU3G=w!z%*bbTR1_l#9P(d56c})x;%_f|Lp7&><{t2?M&gip1X$fS?M}|NMw*l zjocpG?;{*U?CDIlf_4FHke-~kf5Bz<*N0nEodquyHw=&TCRayR$KCCypOr@P?_`dj z-G!jfY#Be1VQvjQ#@rK}Ar=XAXxjd{Q*%zjq5SKjJ@lbFb0&iI!qtl+d7|imeP{j* zdg~OzdRlxoJPLcW{os<`m%pN%PF%9?E2!NJ9uN28eBr;VH?sxmurb6xIbIr%aGB?s zFSACO>zV6|o;F>be1l0&mSLJhIzkmLbo^_eMTQ_t4+X&Zpvp44F(02Vj+f*`o^G|T zTo_z%|T2#nf#lEQN$;vo#Ss5m$Lp(Iv%7;*gz_G>^p}& z-K*8X7M@0>FHQE z`OyT?t|n%ujAvB}(Z9OinJSEXK{>xcPMscof?(w8fwhCiTVch2rG2o@@ywz&B7Ae3~a&jsX&bpBYQzakrm6e+hHfcZ2!@RVtYjY22|%tlf+1gZIZ_Z zlc|W40cgWVRu6ztB?SX2)-)yqdZBtb*M5ek1cg)W8jJ<-@vtWm79A44utH^s;MR{K_uz<2O>@X095Lo^*C zibzkQ{mqEJE5KbdTr-%HZ;)5*uY9xsag0X#Tm3x5CC+;DOw^95M8`W>SDP~X|z5NNtLyW^dwK7}$RA*>^uK@4{l5WaGHIA+3%)Q;O_aAfRz zoTG+LA%aUxH=Z7_p{4Afa9CwsaMfnD0Q9v&ybAo$8d)0i4Sys{OW9_ZWu`b8#umoR zIW`2QuT@fM_&Ut#X^PI(U>n%(6WW&6c$o>{fmo}3Bbz9 zfTNlEU9fH>yIxrbvK)PF=1#O!`t&HgJeU2k?%3u*#n9gnbIrQOO`%_YDk>=geepse5p>sNTP1YBA*#Oqx?n=flNz<#pDjzUxj{`#YbtDO8HqXpiP$5p6+dl1o#M5J% z(O)-+vPEcnF6pgTTqXF*_FnrA@B8BTU93>G$+|WF{&J2Tq%Cg()K^n2K1JW0U+y>W zf;;9e0&t%{1xyw@S6fcUOZN#q%SfJsisZ4nL%JzlTb?p2DYYi7JadWlPDa54vOoR@ zc0h^0>IPc}+lZHT!5a-L*df@#aDrWeT?}9F_TcS?KNtxX8!^G31&11Sf@Q%nu^$l} zVZ;YV2S>}=zBhO;f62)VHh-z{-o*2Mz5ezl*dtiZj;J4OAgweEHWuDQtYgI9Haf^X z!(@J&%@%Cr6g(Ou=fsCGEGViPR)gn;4y7vBc;jMn5se5?vjli~Et*)nDsi z>#O`}&mHM=c)^z<5Hr<*dKMO^++2dTDnJ#xi=`ORjxj#~mA8Jf@OGQ83 zwRL}tP_Rwa>8jJgTYtb?!5&~wFbzxx`-20(OfVbF0dv7Tuox@{E5P3<8V$VGI{bfZ zvqi8~)sCti!Pa0~@J4+@D%c)=Q`NqzeZds4BbrWN7qBb(Zt(8#R9SP0!Cq(vf?@Q7 z;Df;|FanlWD`H|jqt<|UQVC_DI|BarN*6QD|TD=@utFNPe&|_29pvG+(jbsPkAbV0X zyYyW8ZU=87vwx=qZ;@QkHF&G!g4AFSBQDre_IetlUPq^>{C0m}Wa`r&Vc~fn|aB_1V^(A%D*fM$To!$dzaE+*lF0&(BR1 zY2rzeNGp-{p1xzP>uTvH(o>|bC;e;j+Sh}AAZDb(ld&QbM5c($@Z?dk$rXu+l!?fR zm0KY)R%C*R++XF&y;!c=%@J83BKKms%S2X)tQJ`>^1AoAMP$3k4zJI9q>VWu3q%$Z zhfyYRmVfm(%rfy;CNY-fdR$^ClNie6ge-ehMCz1DTV+~DVlP`pJ=bOeJg4}QO3wJAJ|gLb$tC`rlSM043fq*# zi>|9kkDQf7<8#gytwn?vj4gh*U_x6a2it;&;{<#Z87Ki1LLZON6T^UlTc&cOmB88nx;^jIde4~n7H_n+Xb2a(O z+{(O#MY3z=aC%Xp$k3Y4l`>bJKlo;uuYXvHMMQbdHn~oaYZ2vQGhJ*qBg$76%@n>3 zQU1QzCyKp@a?#C}viA|?yQRE|l#3`A-8?DVjVNDPv`F|qZ;dU=*(Yo6vTzmUZuluxP1_<53mmVzXRqPa?{XO8ZIDz6d-b>urjxI~C<+A~S@ml+~=&tAE#S z6GZvQTJ|Gr%9D^QYdZ) zS?+n+lOoCGuE;*E@MNSXW0BKW_J1#O(UYhvwd%X#mFGF0#Cg&v@@QU%$YMl!qsSb| z1i! zvh05pTsqnR8b5v|qHVW5s z!745h;f&xqR<2`fT_?zOLd|u)oF~H&vFxN_}!ed#U~237oREEQT$cG9ytRK z$fw?89P+M@$vJpl&VNCbi=Lb=F_5Tmk>qk$3Z1JY&XancH1eeSy6IKop0m~GYJ6d8 zN%O+qB`pj4mH2aeO20%32Z%naq+RuSSeReZPOejgUr>?jl)@6R?<@8qg~P;tR7uzB z^HTiwD7;t7`xk9gDI6!|S6@#m=_9t6RSKt;^eNm_GNy2A$$$95cjdEEKKIJ!$F)As zluVZSos~1QXn4+Sk$FYsBExeQc`~nPOwLmIT<%KV0LddNS)SxaRwDx<>yfM)S&fv4 zO-U{LVV;cgBXd@k z$~|-GWJGxB^oWJbj3gklBL_<7d7^w#BwD((I1Uk>dw;BSdFe{wYm4LH8;i3_H8X~ ztlK93SAWI>@sr}WnD52E6MxtW#UBmSw{8wJ52RYff!TrC)`Ym*A3A3UtOP5Hk&lIkWIKK?fVe}BLZ_>GuAoj{yXHxLLU7=b|jKz$=9 z(Kk2h1+EJu8}$P>NK_4os-Z;H!T3qwmcT8>HK84$9Y&MTuF!7d+R%rg4~=GCG^V-1 zJapx0H%*>!)8t7uO`=ber`t5?V_JJpmY51_qj*pfXE@Q&&Q;VWg;s?RuhLY zMB*GGPpCu0-w=s$$ViV%3_~P_A@U?UM1P))he(|v($)~IBe4%zPd(S>QOeyq6`uWK zuWXK2XMwDVSpLG1ojEIWNmgpsxU2zLljLef=7Ow_S!G#$vm$aeIdgVayR1H0J+jjO z2RpzD%m~ORCA3Ott#fW}vvl>vn;ne|!??4#NK27+A}JzWMS6JBMU4K_g zp~z5?;hvP&;zl-Obzh8Y;E%GHArgP9I=d}H2d%Eza)y7_G zUlxq@Efn0~ToV0*zJK2ePE&4|pwCcr*8A=j+^yVv13X9RN_euOe~_Xt3H>X0+e?c_ z@pg}IuHeVMXGA|$ZDN90M)4m4TcNS-bAl)A^@2U&`+VmGbL|hLM|plr_+iHpeAbq8 z$!y_h&Tph>mpXNY-=y|_%N{S9b>Ip6ck0KHI}>YxBOa`^_J5ax9aLjabmTt8m#t_w z11CE1f}NCCt=793>poo#*1;-?$4WtSK)IO=kEgUFe2a2B4$BtG%`f1MDV;&BXT4Iz zdTwb{|8@QchRl??f|Yj(`}%n9q&CI{)tHm;@Ft};`or93eE>eH>)mdy|AUXUQSQ)8 zd$z7{v$vMo34hT)3NFVoBl?K&Lgl{8l-{eBc8bwU@ORNZVsnvJI^(ScHjfd*N%)7@ z`>Vc@Q5r?NucL1o-7K@&8Xn``16tQ{C+Kp1H(}+A&uNyEU-&Njl<*kU*x9y3YaNBhV?RzyZO1wye1EWV>nG^z;B&ruuts4&7fo+4 z*<2~ul~zuhcj$bXI{wKrd#b-yu!%-)2CNaPF=YoCN1giw4_KPH4wzpEzUAD2=3CuC zR=lnmuor$R)W*8S(!6?#znwWl^=2&ouTx92(kiFdI@+ti{Z^si4&_#NbEnkZu9n6p zw(c^^xPM1Vmzf_4zGqf44prKsYQ*xQXolFc1n*Zg>#_GgLh};*cZ$w6w*D@8Kl*v9 zu@12-r}~nmbe3-_`!@!S>c_EjU-9)8e2r}I6!>?an%_28_auA3z~fT^_mcU$hA?SDS@r(~7SCC(z>S><+>db7JoyY+4D z_0789O~2asqV^Kni-($bOB)hTjVnsRUu7y&nczryA$Tu)3R2FsXiMROqfRIoR= zmC`kEx7Kn{?9FV=7*!XHJ2-AzcV$AyA`A9U_|{_4S;V3CxA)ddT=^z)q^jE=fd|Wet!|(2!zRp%} z<_oU9?_*}<9{L+)91eg-L3vU%XR!vJ2A6}g{K=~EYsOga?~ez@(BB%|Qu9o17=N-_ z%r#oenx>;|URJa%MeA{}A9xG;M(}ma%W>>?q3H~Ez$P31Av_-54er33fpx&T;Cyft zHgn;$=2S1^}vRzH{PaqZ|h#Onqt|B(oV|dPEvWShpIX4U#fYD$UD)CJ=Ci2 zmyBv|#RmWA*ymD?7P_f{@FlAK_jL4Q-1(neUG z#KT1RCU_fcIxr5qVkPSuZ_uNsC_PGPQ`)M8r{XOZ-V8s_Pf|0on z%`kSyr(Wb!h+OXp4|7Mo$uIY@*0a7f%v6f#lbFHV8J~`-k@0tkS@mt@52Ae-Fqc#=6z-%R_)DsZohmd zS)UKES~SkNw6&VP?*#8=^!9^M{G>4B`+0)suJdd4B&vpB9rWGM*N1=W->bd$N#3)b z#%3271Ex6}^j-@d#=aRmO0Ch#?JV_Xe9mkhr?in;%F59^c0o(cV}E|VXBbB57VtXt zZ1bdJFLa-GR3lNPvNENv^`N$5R%vYJH=GM&Rc~J7+es_>G;|G?K_cPou%5wNA?Rl` ze!<9ardZp_DktdIH?-Iv><6ac|6ximdYVUB8;|nLrTWjnZQx>XEtU-xjXlii?aW9v zrE7Td`YSexj^1-7GJi6={rXN0YrwdOjgM9yVm!a3-9M4X?$T2GF8Xp4*bQt=TU{8* zTu06w>s4Brg`aou`40Re_)u7N( zwJPDy!PnEu^YAzEHUqpL{4L%R=uvYb9OGXmn%#J?(ad25c7I?rzSkXUuE5*7*rc#u zMyns+uax_Wzm-rAmPlzY_S$CpvYEZ_N8cO&e(WcL#b7e}hu}THws@{XE_zbG0gx=3LiSKU&Dl+H z)LMsTJo%&tnt#q@yzkJoWA*+QJ^I9L-OVsD^4uinh31ehYH#PzyL?WZeDpcQP>KIk zdht53wL-tmJ+J9?GWn+^mf2X|LgXXh&EQKIlX=u_5K~DuUPd<7(%6`$!ec2Ng=Rk^ zyk9l;LOgFJCoiVmjac@^a+SZOt}fadPk-NIug()%Y@5U0>737wPZy^yM4A33-T2TR?1y#CCx3|3urhW6|^? zwm9^&wQkJI{zHOy`_@V;qZH+I$mT>)`*+BPRoG8N9|Bv^?tDtexNDMlxZ|~+AcK{$ zV)NNwUw;!-ta~akRy&C#NX9tJ{>o%uH`EMi{LQ<=QT&pT&tRNW!Rx`UpnIRtADiXu zspalHkAJq{8L%$>s;k`m+%I>$W+pZ_)8c;OyhCTiS_gJW`87mg`%?+d>YLb@MSbdz|)H6U&vqy zXbQ0zrs(gd=<5MCLB9zeg1-koL#<@+Z{R-^V{+hg!I|J<>__N*wY^w#k$t~%Cy70H zH}~7mD|h0tS*SMVD7{;-Z-MvGQeTwP_2Ap!8T>TD!)xGP?)lwT_F%J5(YF{r9y|=r zr+;pYf0B-m?o(e6<-R%Kjf#G^k9o?S5E!GDPO5TQ^UFZt<`>i&h0OtczUmvqj41wD z(Td~L-so!%7j*opcN%~#!E5yUI{!c-Tt(fJzOO_-m~RC)`{W5LrZMAe5&ukD@8gK2 zIhOH!m8ibL+hXPRapk^_#1>I*9`g4QO@AV#A7I&p@jr*=3_JuM#;LSX_p-f=)zX^$ z(~=qK!MM#~Os>VgE-`-zZ-wV%Jbb9nU(RP(E+&!!?oUee#CICgm#vK3VLWWXe@Az; z`EKN-dhjLd9iU_AIGA4$&kQ$0UxnCk+WNYAD^o13vA&yied76qdXC9qrWP|J6Mr?I z_}!WPBkSasJ~@e;pQ?YSgMM%9@I9^buZ&g_t^GZ%6+eDU0-+Q{s-yNE8O26rtV_Cxm`|97^QyfxxO%# zTK8UTnmalsn>3ObOYMEjospt%OMlGW=*zXba(pk+$8|nK{A{3=t=#SZTF1vehqqWF z@xgbiH)jj@khbDHMFz0g%UkKuQ;N=i-hk~G}kFgBr=2kEPraf!4BHa zy1H34&h6Tk??Gp{U>jmvt7C43@fp?;mb*CR8_6VVGzKd~RFn8dYZ9eLDg8MoQ3>bN z7mVafXl}5#iRM4J;|kL5TcC-z@8Nri@Hvgy?g{@5(emAe{Sep-pRVW08mGOOF}Z{B zA45Dx>BUjKe|G9JCbM*u?0pI>N<}L zX0URClw#?`^DW|K*3}Rq$ySto>Sn(!?7^wzz-8<>%>aAI0Qv04eDwM3#1*W@bMRtv z>GPUloYQC)>Q0yao~@@6ejWtZl9T(9bE4{5xcW)Jb5GhzKyxjA9)HL4N%G0#jN9Yf zgPqiG+axb(Kan9by${7q+vHKS3%J(lqGlG$v4i;j6 z3Y*?w3q|uR_!DdrqV4qgf~aW>GBy_!4Pv(H zU_TE_M%et4wk-5tYb)kd;%STKB$m_kn_lyjqBW6Po6z?|(}M4T-(Y;6qLpo6D{wUW zQ}DX@&j3^K{~@j4gg1j;+>hl&G`D-RshH^fhOwPS8-Kl5_;NHoz*XKXuzrYV7qN9# zOY=MMuinTolJxN?ewu=ZXuT;|fPDt~`SkrOysgGV8%AI!GibWMKht^j@^bj|1N=ydvf4$E|H%REPmbqApQM22jmbB43E*RNB#^D$q2BM zwiWZ3`ix;^`Z;-hH?t0V(%<%q{=cclA7GWPMIZ8Vj#>^OsseUvBE3EeHezP~%YQxn zSqZ&Z6-Vgf7+Qas*6*hE0rZh9YNpf5ZSeWKXvW#%>FWC@iy4a zFyL|`T#n_ms;4#9ahQvD74TZ(oD9#V;c7M=BEY&X+3q;$A@H^NFj3kJaN z$UFxW?F`m!Q#72&(u(qh#94`EDS!ADmdW7tXjXx{~; z0r-`o?;b__68ILHpMhf(%|nXTAFvN&vrN&y3!BaG1WE_P{qX5v5RAdHADmh-De%c4 zdi!hm!|?g=nP4KVr^54yXFWF0)7Db-IpFWHe2UWU@Uig!p!IR^Lhw22K7T{4Yv8XC z)g*8@bxmp!xz!rP(r!ns`{CvA4d5W`Unj!9p`n&P1pgzYufgYl^w(aE{s}bCqWKQq zAN>gU=lDEK>2ml+_)$tLh2z`_?*Y;=d2SEB_ z6Tkfhnr+~lXcmJj&@2G=qJJrX-wZMf<`#G#N*@6kJ#!V2xFg&I+=+f2_RN=)24;be z(W3{!@t{L3BC!}rs|^3lqg@|wZ-bjC?FGi;jTP>&+U=g;Hz0ktY2BjN)($joFFJ#L zLB`f(1zJ(?@61IrFau;39Om85CT3>Sq0~MGGH#B$8r_}c?v5__Jb$fN=g*3<%va2} z*tny?TCyLalrfKC{Qb2N_`>ethm++(`_qMvF0ziC{^_ zu$SQZ2qVC_IZuKO!N1_A4wmjpdlb#f*dIVM63%+7x<|89)nxZg8`T&_)dfS}gfVpW z@^;@vP6Xccb4KybUVmRspB22VcMLoWevJLw#qIQ#D5o!d>=Pj<7YTZ2~z*y6;=!XE&w%%M!an-_LRCQCh|uKJR05 z4W+ZtZv*F|84iC=qpiBAZ}`}aycm+S*NWyi&Xi@?AH=>=(SP3`&y0grhtqS3qLaj# z{-5A(u!yt%p!zq*fyJCq<@)bp%&oM$20!`HC-v+ghEv>G&Egqh0j=MTO-pUXILI@| zJgsZp2fm19XKHP)(r;k8(#j%g1;7T3$zDdah*It@tk>|*yH)mBEI*(}^wDCpjV}6* zll8LdeZ046#(&_am1_KB7>zjheN^muBCtnPjTKBn@1Ck%qAv>mns(oa{z+qozfg5a z^ik?AW>s{I>i6fpqx$_Ve}l+wpl_lYuSd@aE{*ErQF9Oiwn^@{ccR&OuHhdWzi0j0Bu>N1+m+&zB7v-V4hK6Z*c zd1*XN!8NoV!scOJxAOenl5tktj<*W%5_mtYd<)-(4bKkd3BFIjkM-N=OZs%9C{GjG zqieulV1M%&Hm&h6Q_|35RW4S&2xeF)7x(L+*N7}a+yyG4I48uz=J za^k#3SD^W8Vi?CxNu*Xb?@JG^@(bS(y@R{T{`y`Mr9~j4VU;r4V|0&LVRtRjcS@_i z(Yn@1eYem`MW0X1!^l)6wD^l?SA7~%|ITXqdx!e8Exb*k)-QRE=VIf9Ye3Vj!ueM@|_PEyamEpn7Y5WU9b2jrhNA5r@y$`+-91ku5>w&auFMo&M zKxDqLn?A{uW${%?FgG!O_?s(e7*T)!;sm*nFM1!{Khqf5IIB?w#BxAnsS4 z;k5NLzVjbV1w|_+Q2mG9ee+%D)eN!~Af`#a*0n7hHa})S9NVIkjI5y5oG%vti z`>)ab20jq~*TA#Up8|KIVf9+^U^kF?v_^vT+R4G5HRCY*_I_f!3v7&j8GozJ9YgwV z%>i@K)0SO~<_(b1u#!M`1n_3{#2b+~rPMkLvhRE)@C9IJkd@##aJQ5>vgo5lyVlF- zSzXT0;ANn@FIZ{+i@k3T)3MzCU(exv-|?*VjPd3;#vwTyayHJABst}jq{*4lILt4@&zSsS^*Zmx=bI{l*#X+hZi~>rJ)C30oiMi=)MNG_~&|T0o5N&tX0a5=DI3ZF7 z_KBUovjj0uBhK(Z4)#RQ><;vZxh&Y7A54)$YoG-)W?D?S%1kW5%brr6Uc~} z5oj=f8$vS?t!oHlxG*>}S7# zqpt`1)<6cH40g(ajDMH`=LBg#3`Pp_K-3m&?2Lt`C*pU9ej#M=kBy#p@(dQkzBO(e zY6u1n6+@hW$sa&lK7}4kWt~Aw!M$PZyTfMlmv z0;5`A8PuKiC^MU|n*RU~1YT>X1T@QlqoLmmTn}I64d4lAx&(U%ctj%f!HEPnyQD~^b)fZqdu1_qv6GvFQ|{6pt6q`DX7V(07p z9c@ekmPgE>2hh4uAJk_e5J&B$z${;xdn32w`Xy5 z2=rf|tp2FUVc@%nvm7!;&DnwYVaU4?e={_&1h*Qn0W=Rn4tfST+pU3Z3j9)ou+I?2 zCz~<+x`c2fKi}DCKq_cIa-A z0S-d^3&2Id#=u-)VETf{obnIZxVivftYJX=i@E|k;AP3BF4zi6@-vD8OVU!rb zERIY@su75}6>Y@44q-04IH%#FjSgxXDh^E(AneMGM_I_hMGxDEW5c#BoF%i+!xrqv zegTLPx6ulFKM*|T56=Uaxt2rVu<-G^bepdu#?bCXt(MG2wasXF5C^3w)H!gbE zeGwS&PcUbLJZC|!4Y@jG?485t6ALYMH{$4zkYTaz{fHBA1+3b74VqQZU=BLLx&S+I zD?rl}HH6LB;0n7Fj$#z7uL6ClnxAlYnGXzw$1C3={| zZc=!dA|d`Y6I1m~%-JpEwhX15F!!$8{ZOk?j;YDcNQ%L@@&-*QDto53k)_b=K%B(} zLvtZN2Yorw<|uNZXOKyI&C-)R8s3(X3|>}nAAv?qsdGi8}4j;&PW zkm?>VddSJ)B*+J#{|I>6V35}Bj(;5X!pAmu1*C?{;Ajbxr)!=c&k7ww4X>fx^(gmE zV7i&bz?`r-BXkLMxa9uHpm~~DWmE2@usN$=%56*L4t(?UbSd0fJ=Gw68{TJRV5x8z zau{)bLY$wVPlP@Zawo_Jvz+<{-6Yg`FXRKj)2O*=OBQm@vR~6W&o}*SWq&&-fD242 z=LyKqn;vjpM4$W!T!Oypf;cD8!%skd9{T6dKR*KTMg{Y1xaRN%(q4zMZihzEITNaC zyf5Gx*POAL4LsvsgnSV_^Qz)y=bS-2Gc`42&VODGwSe3mxD}c@rq1pl^f}ss_?O%? zBV$A^g(^Y60h%7r#6unfTYth6YUsTM&ZDU9^9J$0i!9`m3e0l8Ku=ZzHd35yWF38@ z$uUoSTUQL)wQ+xMj++gQK|GVI8q#U_|-r*&xWh5HizDv^(yX`M{TaAPR52av5onaN7jcgCVtQ_FZGH0KF1MJTYhHxgw^p(oy9S+kln--v-uK*Xge?W^~ zN8P5wa;~9ucR+76r=4F>=Tm6!Da=GOrl;LpY8!4Uq^r54m&Y6Jk@!~YNR0&knVM<`TxM6@SLd)NL|aHyN`dJJbQ?-iDgIfzkN}SWWS3$X`Rw!7R&hrvdLl zoM5EP9p*XqhmcDkw_`x$><&ZBH&9!kZSJD~8aNfXO?6kJ73(06LYxm_;T>R;+YQng z^y*M(7D7G-+4Rf;YbIpFehaOWWbW`Zy!})DePr%6GDq!vV}HXADeuu+&^!4b;hJMe zrW*f0NSGUwRA;rUB|0}STwHf#@En0p8s^E~NmCXS+6C6n`$4d(6#n!X*JZ@4-q zzY64ukZ&+EF8@)WjxXiq4}lC;&-cyf=bLlv$$6%>?SQGd=IYYbJafOwgxt%}?1v@| z8pF(~LHt~>Q-9tH#JOzb++NzQEk>`n8#|OVbFR{qVplh5?S3YvJ=f%^Xf)OHx&pf) z&Q74_W3574R^>efG$pP=>8o--N1bt&J9iHd?3cS0_>S4x<)>nQx6mL;?1z?SqX$ya zCzqf}HNBzzV7O=#G+9QYbyf@?G5JK=n0)N>XvJJ$27lT(&!FzAOdGeD`q;Hm=d2(f z)Hxe{m|Y;7_FgncoxX@!A0xE@m>Q%qahwp~*o@GxF;gG*@u6o_pZaUIC^dH**zZcYa;t$>2Q?yYqg=wc7V^*N}PF#CzsS zkaY#uynkw=y;}-K(7an_l0hAJTocJXWtcF(0<3~y2?vnYtQ}X3717ZAEMO_bYyofl zCG`13*!-iACm~O~*Ch|5j5rVEmq2Yz%*FY}i~Bb3Wz_R1N*QBXgu2boi<Xl2D-1$j;b4nS__fgPYRsjixsx{jdLam#>wdO*X2d>%9Li!Ju@k$4rob7{EQIVrJ_H?df~!GG%Q zOmExi#xt~&+)0z@WXMi(E8vm4j``W z+NTPxu}(41$?7_(@$n9vDMq%dA zPX*3~ejhLn`Q!S#dMXBSjoXR`25)|wi#<5rw3dfE8S=xBagT)h+y-mo`gmWYav`^e z9(OgkXuAV@aBzLxMGhg{rGMaVEEsXmUhPezQiCQ88ceeWj~UU>sybxqgmkO^&|#Ar zTKz|in$Xb78Zlwmeb(?16IEU^a@gPr){6T^j-Fs`yKl_UhSrAkL1Qah`_czxjI4(tqr^nQ4PF?S+}6 zRWpH7D0EZLn<`V4u3he`OkKKm?^&4!_v+T6GEM2zQ*k~~em=#KtM+#T)zbJKsWz2` zHlm&%Q&nnCw^AJ{R}eEyLeQPdGwip#xD{Mxs>3?>*kt&esVROWyalgq4bRAXHS<{Bv!@jyuZ|X+_XrPYnNJ^*i zg;Gr@l&U0Eq6XBKZYJG3P*>_hchNmGh=x%bji!u3sWJ=66MvH(Dn*qwpMM^kR7jp& zNSiP1h?nq;}MSdXi1us4w-WR2odfX@3-rp{WJ&%1{-GQX{&F zZlPXUVt2Ze?xuTb2#uioXe>=DRLb;1@{B_A{e|S2h2#ec$+HT{4;GRiDkMKlvxhXy z7~&)Xs{-o*Q-%ym&ve=YI{~`^djtCe2M!rBdYm&HI0iTgI0N_)a1L-ja1n6X(Dbws z&T8OWzzx7`;D4^+X=4UC`+$dlM}a4SXMpF2PZ%`BxdhBJs4j%TcwpJIF=?4@6<|$Z zJz!&C3t+pnjIrr%M=fxW+XdJcI1o4zH~}~#B3WL#(pa5gXtxFjQ^euK~o;2PjM;Kq!M2F*fSfL9EL>jOtBri7OQ zR{+-nHz+m_Zvo~2cLNV(WHhWFJ`6k#JOjLtF>!E4_zE!3V8jJ_85754L=u3dfl0tB znc4%9nt#B0z^1@fzz)F9z#hQ9zyZL)!1=(1z$L(Cz?HzY!1cgQz-*wo=he}Jacel5(x{}auZA#YUXGg4Gpuyhg0qDsG^qg>NSnb_o6Nm=WkN8|o2 zI?7d5l<^BomNMt>9r6AHj3AA#?4D3Wvj2r9{(m=3EnQ=N|JSUj1}z}&p3~F@i~U=) zbq%ZbFMq4UYx@1);G56?>93>fVqIMe|DELO>RDb_#R~s{ToJ8l^1ouDuB9ouO1IF} zx0SA{ZFK!>r>jeQT?ISn8q-nN?@qcdch>c`i>`^?bj9iM|4}*{J@)&**6*M>-t=Gm znt$(*{_j}ocd!>y*C6R}WP;XdwyueJtXnY|Zi?k6pYSa;~rUK+2D`UQ7toV(OJ zxLbXid(=m`S3R3SG`L8PcL4`NXX2R9AYdOL{8P=zAl@IWd5xiCbe{68c&nmS&uU|J zvqoA|tU1;qYlXGJ+G!oO&RAFMBss}3c zp~O(_P>WFKQ2)@V(6rFp(Bja_(8kcN(2>yD(ABUPP7K!$w+MF*_YaQ>PYcftFMkfN z3~vnY3Lgod4PT9Tk;F*tNQ+44NdL&F$h64Z$l}P#$i~R7$dSldyq7$92fBGLXUUjw zy_j(Fzc{W;8)+XC&W;Hm&~P#Bdk11qT$jVky8-X^oh%g zhRaLQlFRpt2|pbZe@)SF(iVzX7Jt5$U6PUlU4=)3-%2wJe&Gtf0j{g zO`)*XxlS}DT)k-gI-QFiPd-^RT(?V1cxlma{c$njBSpgv>K6?+c4NYJ(fa5zSTvj% z6Td~Fu(rQ(O3d-zG2xLh;TbXEteEifnDB;}@a~xK@tE+XqTwcSG2s}SXn#sE;TeU( z+P-EBi}pvegE;Q$id!1*W!*SufR(pqH2gcrqx z*TjUk#e|QW9@A^#Dx3Bgwtcfvtq&vV!|t8!kc2k z`(nbUV!~I7hTBR^xN=OmaZI>VOgP3~+s3d@+u1SUMTHpFgjdIeSH^^o7Y(*ev}`mOzL{^R}=W`CFAxAI#N`Ca|4 zWchRaIb{2D{kghI*d~<>G3jM6);Akz%-5slXpA7I$$pwY#h;EZP>uJ;Yfc${rsg!w zpN20>O~ZQAhDIu1#Ou0~s5_AAlW5T)5P$zJ#hc96he-T^D);yARlFPZY3H}o`rPc_to0e-4``;}Ii6Z_364^0F3shrExz-0 zGgs#7bPLzydVkb~8*oGF#Z9;=_2K5+g6`zj+=lMro47sQ&9`tzx`%J$&U7z#dL{=hK7y2Y#9!<{CfpLVARs{r%QlKQG?17Q{<@aqFe{ z67f;%<@l2EWvy4^6XTPt)t3-z5E*}h_IsP|_TESB{2sOMVQSZ-)t-$V->>%jh}!LwYOjA(JAGd5^JRXOU*lE$I=_FxZ}Qvx z4!_Iq@%#J%f5;#4R^HA#_+$Qr_wc8@pFiWz`3wG1ZTW=S@ONsvKd8gUC0Fuw#6vpX<{N;ebbKr5xK`8gtgGYL$Zz5|^P5NCiM|{CAo@{sd-UVz zp6LGQ=g}{sUq-)D{@bVgw^I3UwYQoqZ;iKxY;Uc%mK=PC(Dl}P>nVTaZBTX$dz(D< z61>gIk#SzOa%3?tM>*2-b}2`)w^un*yaV0=Wzd7(L5lYdd55UDci1~j3EmOq&Jx}+ z<<6*gQn~Xw@3eAfN$;$3XDRQza%XApqH<>$@3L}dS?{WHXE`rVxigV%<<9aPR_;t< zPr0)K$18VM26uM|?(XjH?o1K_1kWPD z-QC?GxVuYmch|em|K2b6!+YMd(`UM>x@)F-dUp3zcm2v?0x`kJX|Hd%67&GOyP)Tt zd}SvU7;KcS=L1`rrPvm$HSN%rqNQeK*lTy-X*go%(dQkpkyFtYy`aKvIB{Ie@3e_L z8^nDj*%HKkNp&=o>Qh@mr{|4$3&C0)pRczdbjs~W>*a0fIoU~{jq$oLeOI=v(zJdKUnuVjT+Ws^4s;4V!@$clEPO zvh;-K^F+ttSN8lu*LUb?t!CiQP2$^4R-P=K;FqAedtYtIVQF9SY07ls1Q)hw;yC%C zJYF`5g2`<*G0RE)WXf9L03n&N)+S>V%zKkJ8t21dRP!YwBNn#iTa7uGAxC%+Lq}9; zL{&$2V$fAb5z#!jEK7LUR!0HRqP#5M$|AiiSE5FQYtpSog=^Y$i6Qk+DVA}mPTciN zXhxzzO@!g^_L@Y)cxcyee}>6;#hHiDc|}Kdl8ADJM_hOnM|Sgow7kUK__Q3Yow~FF zt=-79Y;0G}@o76(#qlXwUgmw91pVKLb-GN$621mZLzKD{iMwp=WLi6)%M(gn6V~JH zT%*=w1%`4PFOjD`I*wa!qDk(0>(=l6W7coCU%i(%rCw>;_Y?2rW+a8Dl=AK`HKr8; zu{%Epd~?coyt8`->JP;_GmK&y9*|!{ZonIhPV!5EYMrzWw`wm~%Qyk_PdE-S6)_cs zX$SoWlFR68L~HW=xl2>_Pdq7@W7!5OuenMW5;JR4&{NQL)V?&nzwRVarBG)IrzoZ< z>Xa68!Z{}N_8o2-yjR-N*BzZQy=M8((yzw7_uCNHDbK?Juc$DCXtRGXOntk}7z_LT zX+7mlAg@iu)nGqor?UZQZ&K72SLcZrWNYl zfB0y$Mena5tsjO7hM}dkpp>DL()7-9^VIXw^W2D4D8;CLnw%@S)(&AaI`{UU)jv*qdXJuGzEhz_uslF5f4?# zVL8fX5nE|cvkHL>yA7?wu4S`^W8&Gg+*y3)ZSx)eIw@7}k83lBxjPc)L z-(fBAdpT>nIb*)r5yLJBz*QteSNIU=v*YSt!!%hMc58UJ^_9Yon<8`W&&F$Q{c@jY zqSCWEL)x-Y53cm9JZA8p@l&(<2ehuY?i?_+er|4= zsgNaGbI@8KvU6b!Kd5L$={p>6Wx{?w^}CgU-Jb|azV>~S5XRN|`hI@ZP$W3+KK~cL zC-!nKi0kq61w~&Mvb5-8Llo7&Fq!t|QWo;ZI9gkG-IvSCpp=~2jdAi-O7@X}>~Ap9 z-&ZRmMbU`S`#Q|{W+29vzvD96uFR=jZCDYw9k&kX*vi%2aC+eJ8E!9>jt3@`+gvYr zEi%p@f4Gjv_{%KqS#{(HT+QuEUl{CuIR~AC7`GuY5~roi?aV`a zUlga8HTH&ew^1L(9R5kYfd8~4G};C zEmC-9*}tN-X6uC#kfHP+@S-^ieL*wW$GwhFk?H(t^h5UXNh<%eS?AsN z-Is2E;mS@W$7rEaZub=~5E^v2$V&2^Re1CL8*Amwdl|^jJEozxu3yS-Ybs^STH&KE zri5LEn4N46z?tv=T6oIhKo`W7Adxzptq^9d=F^#C6csyJ^VwQQqONROSl2S0&U#7O zK}jnOip;58w=%!w7_Z1*jdcbsq&nUe8Pt9$&2R6 zi`T$|^@p2?i(9q*`|xlOXI=rDF-S)9%{cdZ+v|_SjUF4L(jdya^^L{a# zg4ehbFzmm^{w|U+zgA-st8;|dme0TACH_ir`>Ekz-8=MT*5Fcvx9Is_udDWbuhEdo z8fxYr|CCC@9}4udN@%*p9iku0HG%9e}iPCW|?jgPG_26ZzV$LINw=j}ZOv}ZmNKPNsAKcoA{ywXDoUdO;2a>qa* zk(Lg@W7Mw~szA*870W>On%BKRH&B3EdOp=z1W?rVaXO3MCc_Rn>QTXJ2IKZ*zE}g# zuWGJ$B`30KZlxe2ygG{K_Rf?3IpFA2t@E$5lt2>&)G9ixSG+p&1yO>g(#6LF4JY6N zgR(@*Tf%2k>zqJCed6~l9g*i89a5Z@2D8d6UAWs1T?rYcd`73d`b%(A5 zg=3lKRHWK0T_lJr7*tTiy(H2OWfoOFTY8d%V`^Umvab=euYtC&p|G#Pw69^euZi$Y zKb%#7;7!enwNJ<&A<&;9)1Q`R8~_YQ@Or1HdY}(_3K|m}at;&PC&t<*%GxK+x9T30 zA#2e;5(;`{2fAbjz6(-+6J$53j_b-$>&lqv%3wF{W$(_YH6B7O4yCvC>!TELIOn4+ zZqSk(E;&s|{8GGKDQ)~Eo zAX5kBW|jLi!)_DzG>bZAd0R@7&v>Lak#9d*?2x3!dt}9&m#$s!Wiq!OrQyfCw=7h) z3_tsBCpvObaL7=MHyHAS1VW+l~D*o~Vg*x|75GxVRIX1L%O+?}=WXFRXH z^Y1rCCp?`tmO^46ic3(S{i51Kke3KgkoBY5`__9H^!opp!0L_vF^g^=Snrj+gL?j; zc8C7_iLhE}ky^V?$PCE*cXWby2g?=G+(&QU(_ykm?U}Ha;)6)Ja6V-$>%FCLZwzgrbN%V*dCXHfH z#|hWBn6Q`tr>-ikBXItKAB6r5|DO2!HtHL)d ziaCW;_hC27R2>L!$Pzq2;|pfWAuJ*i6mgogV(6aBvjc0VP>&^6U`~IuDgKQkyMSl| zc8AV;{Jlbx_c*N}s!O`YkQY47D60EqEnNJ!V~{G8wiE8O{~-z)-^B4bzgn8r4jR` ze%49*VwFV%ihjYN%r>Ff&J^8Aa^CZq-sUq`JowF9EVdVql04&_CUA%k60-7WN}Kt2 zm5P#h%_q)ufYw|jwiAm29^n%Y#6@e)5!)$20o(D3R~(}?XN&C=d>dp0kvDq$ia$ha z&K1kk4;=*7Iz`Nhbwk1@mpjFGGEl(JeB#6hXg&}?z|4H&9Y<)7 z1rp*RZ?NJhS(pa`EpWdCL@Oty7wj>(2znK^GhDm9s)Q+ zP61&@;-DvIpA}n?;|1DI&=nvXHxrNFs4)t+7&QVirh>JKvo@wp)Ze89Lji$YR?JbMA}_E4R%E?arhygXq6<4m;8gg5JYB zKzZu^Oa$YP$>Z{Z1>c=_O39Ppe(8%d6@jg5tr15`a_;IUwYuuw(vnssZlX-0CY z#Z{Y#M<#*U*d)hUBFWUEOz>fQS!F}mBqPI%$MM(;BJtINssW3WpOw*?qF7gg&ST)WWh%ECC(hoYR-T!)gOmoPM$1I6-R4MH$*iv=*|{2`lWWzo-K5g z@_Nv}<{QJ82x)X3k?)+i42sE!qpH#O>7zEu{13$8Q~CB z&3Ai>l_AZVcmd#xkqpX`%%3>39RZ)OcdI4RG8xRi~N z#JQN8j&_vYd+@O&#!>9zs~0JUh!+`$1S%;<5O@pS7Uk#x#=k9e@}ovpOcCW1Qa0z) z=WJvgGgjLOR;;1Wr% z!siluTLg$wb3fRJF{+R@ge1sV*#|i&qy|R5*1b^4RUPOKNjX%q+s0;Nf!fihk&xhOYbQh~xT=;*av#4IZYsz>i z-DEUG_g#X@FlWJj+0v_o_mV12%x4ifE_f(ntUSO+sVr@x;9O;*=)P(iVzIBUmmdT^ zAa_AuevSVY=ZtY+z@{h}#sgcJ^(8G_ZHiO?2~})}2UM8b?F~cxUG;)S;4^YJJ`Z&M z7DHNa$d-#Y5kUy`CIStzQcs*RUq*Og&OdL05RFe6->tI1-Z<7rG~mKP%qXh8zeN2k zjDGKc!Jjwm=i3wPA@T7pLoG0Ul~<{CYL}srIlKVphm5Ppm!NJ_V~z>^D@-q+JFED=%?3=8LB=*az-`yUx9^$v&U_P8mnEnc=hCiSD z4N(2pK18m4^k0XITth*cz~&jR^_x~gn!maSzD0MxAHTr<{OEq-5XwjXwsO9%94?m3 z(l7sG^P}6l{!aM3n02J*SLe{BGl@-S{GU`TxwP;o8$pvufpCld;k!r6Z;}T!T`%~X#j^fs39!|@m6Rgo?Zf1`p z4{-GrbnOr{!LclT)cX)uUWLulOjUs(-_Y04wWHgF!_v%Efh=DUar`mvc>AeqC!~pt zrJ2_8v;19;VV60{3AFrOUq_d@@Cm&9-N0Md&R3#O@@GF0p9Y+S?ZbSORqSNr%CTrKurMJLVr(EhM z`HV5i{Fh~Qd?WL|AoE#kMy1R4_HW}~zH6<;+O8QGB^9L`WweP|x zOg_nY(BmtVyjIn57Yu@6P$OiY%Ic#P_k52VG3<;&)s5Lh<*kn}M$y#XgJ7#|Opqsn zAK_u9#^T}G+8wSXTq`LlTfF%vzgJem9jnNt16bcM!!QAHg`F931&Ohp8K8koP+Dm^ z;%Dr79_pdo6PTr^GcHC320sgEL?Hd1$9^dKLt1M(3MLM1`qfJKcV%=WIP5Id{8TGf z_&JOe{3TpG4i7_aOIqL%btTYo!iWfQ8UM{IFtF;e^!hXD+Iz#;hQp74z8V(S=d(7i zg`eM6NbM{?vnLE$7O>7F;|H*@L+vqI5XiyptGp7A6$Qes7eFAo)v-Hkjmp7T)+JP}@3)=1jWObl4r|a@d;4 z^I0lA_bB>)U$)}YaQ|BJ0XRu6Leir;&YVB%;C751N9NEv<|YH*cYo49%mun(#^Hs-vN{dkx_8uQ>TCT!&IsM0{+u)c?CUMqE5Fy=tN86*58Gn-tyT*m;Dli zCLp@&NQj)lw9BF4Y#qW0u}`$b3JKc?tTn!kBjWO4UA=6%p5 zU_$lS|^c*cUcF7syNqN7`)r`6c_Enrl zJ3v>S15}kj54e@~luV#%A{$E{D+g;FKx+TOUtRv%^mujOO$PaWZunQFg!a?8%6&5Z zyEr~VeIQHX)nm3Njj0MQ)~EW8%~r%nD3PbrHm+p)-aww3DhYh3fWPp=kc0v3C;0j{ zBnWwTlch&uU6a!x$_scu9zw4V--5KHfE}dw&diulMZ#`HZ0$pRZ+dQ%^9SM6Q>uf! zSEZuchi*mWmGqLXhWpI2k`~4Gz^dskPOsvgl5}TrIevP`)Tcrc7A#{yak~00x5>1QU+Zoz3S?{*Z`USk?q;B5A+qzxAa_Z;Rl9oCk=N0hwtzK%6S(85I`X*wWgSH z;Q$QUpoBQmvkIcNV?C>LtiE_%-~92@@KJrRJcH_)A{Y)3er% zus^h?1#`hrz&IR0=`JGr7T`s%;R*yp-RC>E;eCPMcva!NKt_V^EC+vVYY-#yz7>_d zSVUL3*hhV$8{M_#|~7JVeS~|@`aPd9I1-AGlxjsd%v#A)-9>h zC9Gz6-I>y*_Ge(-$qc?M0%>Z7b1Mu5atEp{kxYfW9Ep2V{<@@#`fBTQD_GOyEkAH( z65O#36c#2i=mdn7*VTj;R?2eo-38aaa!)I`v#*IZPCNVL|6}zr73OXl~J0SLAgN^l$)5^IPmfP zZir={s1%Nd4Nxv7spz$jIp|8BPrCXhuIJt#LO=Z$!mvNF7Hc0fd-^GqKXKsp^rIuM z^1$v%vdTt$?S{+gkpC$oFbn&J;#FLDhWVz{cqXag#nB7~6M+H@UX(U9H~zvIi$4_g z%XlW`=`&ZCvKaPs0OhbS*u<#1a*6vy58`*pc7IRNn z?|A%v2o7bKD%Dyo)*fsGP;0=*n)GIv0cI1mxQp;7Vi2!RQv0BxDRXUSt=3}c3GyA4 zUqt(up;=|E#R;e(t$k$O?7UWKvG9cbj`#UTK-intI!*8&I_*39XN7D?DhurvI`Pld zqB$(efHXGK=VZ|e($A76MMVY5R~wgf>fuM9&4R;v)J+PCvRSmWX&w^p-*@kMgN-DV zXVn+!Y-w%Z$66`d^6PsfO$w{t{p8$LS|oYD>i&2;a=>_V99CwF%mcf#rA3lb4AHQq zn5(zAso6x2P$C?^oZCqRD^FCm)p_(7F<}Q*0_7=i{kq!V<|!Yd@tpF94JOlk&?FOoKyt1D6FSlP#{5msS08?@~TB zmcd-qt%S#3|GV^vc0F0=nlj}f7TThOnwEi{ULElw7ZWWP-BN*pvR~?*$eTj@YMLOC z{_5HqNI|m5@e&i=IE;vvGn+;(N^5-7cAj=zpwhfn{jmKZ{XGV_1X|uPH z|H7E%`lstS9~(Rom>TETi`GhB82~QPb?5Ns+YdS~^>Bp=f`y?shDVQ69HQ_Mrr~@P+b@KRu!1>%DI@wzKe3}~8yU^vmCTHq$Jrjk8I4||tybvd+ z<)}g>>NekLCx%0S_eGIqs;WZ7XE#^X7VM2vt9icFZRhv}+b|jTi`?*>Z3o5sGlIkT z$A5M3Tk)?>F)pKy|E}}Is?OsiT%4lahLzZ~HZGue{5DNes|Q3UBpK>5fca+xE$gk? zl6Pc1YA~L6d}c5LscBZjN9l4b3``l1*|nU$nIPu;+IwpOLML6b#g#|M0(WSct<2~w z75YCM&22fxi7+)bc6N4%mfYu? zS(5%Qv=6G^1vmLgX z=N9$W{%&hfAt)f-IjEf2_wV~y_2EuV4l-2=MB`+X~0e)fUx^e#CM3a0xH%?hEBe#Sluo|8ba#3e1@cYbsSk_-H}^0a}+LTx4Z3xp_!t?bhv z_Gf&HOt1W6mhTQ?-<7Z3U4X@Bde!Nlexoo|k#i`eZ1(|nPr)i&A}*}Z-FB2@Gd!() z{H;w*98;f@OFN3jiLN`z%=z3djgsEWSp>ClQ>=Oei?~e_yDz3FCx{Cxig9Oa4(Bu} zxE0-+ai?plYOC!QdS+4!%ItMc0$0c`ic`bhuN4oqG>S3h2-^?PTdpooL#%idg6<*WvVK(um0Y^g@gjcBg{_5nW78jR!Dg9h#o)+U|O& z-0ET`1!Lcsr1He|ejLv|hx54KCOEwKr@SSI&<}7K4xhm4G&uBhP#m0A0!`4@RQSqs zKl$#P`VRjcT=@rY%g?3VI$KuI<2zD$e8Nrp(F<6sN&_ut(>PrJDJ`Un4O!?lYve2f ze9vW}gH{@wMAAFrf6f!AyX0Iy1wF46i8&zelLy^GsRW?};uZvcleX3n$JSCU zB@PPrZELC!DYIpJexjeSiH^<3v1rH^lNJ7NlIF!dPbaZxLYFe}A zgs!FrD#Pyjz$tBvBE9)=_a6H})F>naDZQzZpr0=)s8%-@=S!6pCBltX&?n8vn%HydNGx)B~4#YVUcpdoV&l+RQ*_!o( zYH7l7%%6PP%8y%5%z8G$cf&J2yxj1(0x{f1GpzngBj}y#B&TjQGa;VX%qbI!)^5OK z_bW&XoKYw0=?3LDR3Qc$(CCF;!E{xNX&G z7}g+!q=^0{oteLV_7@VQpbY=e)K3f=fOnb5@dTK60oVkUr~uFxneQarvKu}A;Ao=yv{9zc{3Z0+r9v$>^^6wu&*iD zb{G*U=Pf5$71`V+OtI>V8%{W46{&X zZFS)58(RVtSJLLU^?klAh3?!l64w(4oOp81G;IgV*%Jv7zyZXcgbtkt?pG`Fp8M=G znphs@8-_q)hGP!3JG;mG6K9c?hs*wY7df~h_5GYQgEeUeTvC>|C8O`Xv#VyP>cQ-< zG1_UV83K*nSwH*sNEnP@3?g|=?ipu~%-3hvJh<~DU>Zk`{cE;N0`E7EBP32&cy9yT zEKVO8_P=K$?g1skBm-+k$qUvK;1F4f*}7n@jlBSl60sbCy*ByE!`ADQ(@l7*kTG^d z!6VD*`zQNSlo_JC_@;(h{{jv!srJg&+Zw_8O%@+6MOIEyk?gB`B9#p*nX9D*=;%|w z*mx2)dh?yM6Cy+smx=qrYqO;Io_-}zntaTvoF}($9MII^Bd;luh`hu^r7|Brw2;6} zzVRjFitj!3u(u96R-rS%*1dLb$HFd2sidV`c9`C=lIXNvZGM8k#EAZVnoH>=(@|cb zb+joKW&}xLj7?(U*vn0L?N;-TIMV};^%jq5<#z|)rPXs?Fk>9qpNpi& z*Avg16=&(*^j5cgEQU>YsqVi%_Pu5tF%%=+JU@E9a)o(d->h79W^dSf)t3@rt&B;G zDM_YtilYBnR(?5Wynk10Puxe*1|S*A%it)U0RH)=_STc}?%;Gg*gt74j(biMg8Z#p zWkxdL%OOI43=a4fntF*MxN7H_K4~m8|9BF{>v$gef`4yFrgLFB9hNd+a6-)xa7)!+ zGqwNko?2J1t5o;SA8tpY19UlS#!L2s~6n;1{gUYb(Y@Sel_nCRz0V~?GY|&tf}!8Lsqq7 znhbZ^L-MfnoV!XTR6)BVInU4;uEU7a-$?7h=Ny6f!QILh73c=oPFx(W5KR#7Dkyx~z#->5bISd!?=9G_0q6{l zd#vH=tT*&*FPsqF*$yXDk6qN(2+rUKQ7j2rF#m|GgfGj`2o&aj6YcNtb2F4l?++sx zw>Nf5yg6LkzcN7tE#24D_1GiaG0;>OKtYYr3T7gBR9L;jrpTp$gpJ$Uil(_(N>??z6u2 zR56{s_fJZ&9Mjgaokd{PdjGJ2@LW>>zxh#7#3g)%>pdvQ7Jp8L(|+CJ2*}DXbSOPv zZmO0UA(xp z+^0~p14XU3&)WV_$s3$80SsaeSB4$V9hn4is%^Bjg09O!&4-Pk5Jzqoh@_lFUv>8w~hVDgJio!%FWWK81iZ~%}L2f%Sy$| zK+83@S7;&;8$5LgEP4mGq4m+v^raW)J6GX+cTuQlO>7?pwn!{oYa&7zIgZ7cSbN0bzQ zZSH}`!jRuW><|EH~|-Z*jF`$|0CBxHY5 zZgxuYp10_46xL~2=)PWB1N*xEH}pm6!~KU(?>?r93h8LKFo#|14T;s^pK+ksxHuC{ z%uzv!{uyYuZc>&;>?|}X zC`fniM5AoTe-JjVM3)3;Du9ibTSy4`vzxoCg^2_5XYVuvu!7xRQnZlsx6d&vy%=Mj zaaf|pts|l+uUR%q`Jv*}dfBX|qh#+Le3p&MBL7_W((#Sr%mPa4T{(Q}bFI6k3~g*o z2(0M8c{;14I4kC3I8qAqO%lXJ#Oxth;qa8dIHW;vAFczbOG6^ zF=pG%$x)Brq3UuY)v*&MpGB3*eH`Jl5QZD-Z(Mf&lrOwkv@ye3hmUTvn8vdtYkqUM zg_Rz9DY5psD<#j`?er$rFktS`i&)~%9Mc}A%R@R03{^h?*Cd2X<4;4!xTE~NkCAQ_ z%Zn?F&&OA+x|6L;ujC85dLa^TGj{p$v0j3hIiOYvNFC^TEPe{F&*2kbcmUiKM(2Hd zFXASPH^I}+&r<9uS)ZSAhvee){`Wlo8^?cwu+)tkIcOQp&}@)5>6<<}-bYA{wK3HY z{U>C|x!Dq-K-dJ00>v8=#q%kjnO9P;#D8nxD&~Y(FqgJ(J>w%M4SmNRU;}U z#%1<@67VfFRU=J31{~CX)ISk8sz%KQj7w&S5}riaJq)`4*wty+gdf>>5-;76s2gw7 zuy0)cqq^NbQZ=HZ;=n_?@+7+W!%#JTMZ+Ow|Bo^i!=eB093zH9^xwH$42M|xe^W-4 zSw>t>fL&BnluLx0lZTU&U7VMLhgV!woLy3qhl_)oLzI(4Qt1EQ!hkf9%mIlA;AG?E z{r}G|j#Y~!kj8R|O2&L05otGc_u7xv)>i)Sn-~z+m|#1S@?kH|O=U%!s%P>Xo8i0D`COG3nk zey4+rqU&#N1(M!!O+yMJBsv*!o~yL?<4o5;F8bB$_KS_$fOvJcZ{M%V2m>{uM|GE3 z**;ck>;XZwG@c@!rN9hZVI@6SW*jRdnsK6Vz3|#Srg5P2zCwAm5iyW~I4RqEazJP& zi^Q`IHB&`^&E)cc%DIAsq}1Eg&R-+)N=>qvPKh~OD%@(I%cRfE^Q}2IeE*zLk~tDS z0vCtb(7n&_#prVS?4j9vcX?}0$HnY21@U58p^tF;U)dI;))OQDWkb66^TAd+5bpK5 zNuz6O2NsWe=;n@2iWiTa8;I(BYLQBMYTlyIaCy zZ>H zd>+iBEOzS()3mv8mkEac)F!-*d6*y<5mplbWJy)hJGv?5Ms{3L6KYn!~6|C9RH8_7+G>PoQmc8Mg(~YxOW(1YyC6Q*??Fzu35xOe>`uHcALR4Z-l^!X#wrmkX>5`uC1Fw z@9S^pXUDx(je=qWAQ!r<3B5 zle)u_!WWck*CTS6jcP060fx7JpgR*9a#*@l$9cFYlr*~|;PoWp6C`Tsy7d8`eF@m{ z`nzrVw^lA5oYV_E%nN~P`uk^{9eaD3MZx|fW&Q>#4Sn5{sXm7 ze6d|T#3Q=hHxvCYSuos60dSotkGYSSg6lo-3&$Jgi_ibymPlgBO*u&=>lt* zh4BeGACfzHb~~F(1KC#t8<~Nm$anX+7YpB~m8kp1+GnNowT4Iopf2jGLchZ)XKtOx z?4;9iS-R74iC=!XpV#cp#ymT;tx5b08liZFZyh#12C+uMg_grlaZyHZdhQ}1BA!5ej+*6*cw%wL#Uplz)2@DtXE z5vN8Dk$-n&p?%5n$zi2$p2?%L@l;od-J$j0uRfK9_R}=82>N3o+t!k^+y=k&+WqwI zDG!qRfK7RSWjBMB``hZ%(@tDaDAx8^XiED^;W{Q~YyE@{u$>>EE$CQ(u94gJn#8N( zrTFY4mvvVbU=DJBmbg7UZA21@O1#r6JveQgOJ9ByUn@RUVu~WbJk4FMa=lbfPrPfi z4YUFLB-Lw{H>wvl=9e7aD^OZq&+AokvtBb5E|)spBUKum2E4IzqHX#`qROIe?6^*o zoIXS|?~xD!x6-TCU)S_O^bR2e;UM~Rb$e~AMzdT86;uZh;dxlg6hBw7yu1B!RJhH6 zWstH`2`E+R2SEX-*Yc~uTQp-y6sVOk#24mZF~DN>WWHKTK^i1An|#2-R#bQzo%`gX z>ryAi+d}mx+N?mzAR!to=4|8g7FndW?$YgF^u-HUZ6aQ0awO1PJ+~6lLmdQ7C`6=$ z@nvKpa@zArGNXiEi3(bI_@AT&K#r}nfaQpkIDVnh(6i|C<1bzXmdoP}V=7wtwE+{mUm(fN(>|(=f8#qC&+f3WPJbL0 z6#*Is`&ISI`}uAWCPm5FZX@X`Zg%?@zWQgYkL_C*yvm57;}kezf*PL0&1^@kb=RxA zDoUE^`{h9;Ci{cFzYp3RMP|)BAxN1$`;4xVY;iTnHU%BkgmZu26{r2rEJ*ER0>vAKX5 z!=mH$SAXQxGbKM|Zu|R{<~sWTSJ5+2WHnCUFNio- z>pamTm#Zi}5x&yn<)|KTzT{16dvR;eW>f7Zn0OzlO~^TRbD}C%0+}34=e(x2>P~*q zY0#Y2H)#fOE)%?*`1krVVFV|F3-iY3%@vOI8Lh`E`TH4;v$c{F?Lp3pm#Z(%;uFjf z`w>%~7wy3+G1-C}PN4vSpy0GEYJQ0%ziK0}sl>*f+Ue)ZHd?ENSN>+6x@%NlE3c|VYU97}huO0-GM==Oac>cG-ZT;=qcYy+G{qP%pSAAQG%JJ7jLZmUE2o|o%FNC;rcqFg zusqhDU$3%(%w5QLG_dicAo(8XmUY(o_Ik`(_x|7uT$~7-e4fQS5q6=mRapd7Uv*30 zd-#H0A(`D%MxLEYzE1Rj?^7)s&m^U-CGWw9Dlv4g=MUqRc7ccQ1(rE)!bfDe zQ+GB~hWD1axw@+dC-hIY`-DOM`)XxXRCHX5?T3cvSPKZ)?#*l;xTvHAnfUr}wm z2xAq7kiKe|KYvxV2}X={7(#ce`8C~riL2`qqm^;U8QqY2aTYOptFasUxfXF&O#Dv1 zfvPb*`#+uhFsLSE>LOO0&uzH-Yq&`GY;2U+t&c+lY`c6^{42wQU%06b*$(IeH~v?L zhj4#WKP?o@L!z`LN`1_#hx^Y||A(9lKGOhp6Nc75Tm2wA7f{6jauYiDKg-o0dM<>H z1E40%^5$E|)gV6?5?xGVyJ5RAxpIVJ&apbj!uhW@=|2W8#liDw0>e7CuS;s)1QVM& z0-^h?00Hx+MBC5A%g=^=cHSVTO@+4L#!Hm-K0j{~l1(xHpD~vRLVZ>bL`Iu({=rU{ zB>quO7e+6?-v9CY$BfLsX_d0hWI`ObON^2_)s&Vdx0j$MSx6(^%}V zUnLil22J&UvV>um#mA52l4PMsQW+jJu4Day-yNwc36~p%KKjWro{bI9A<|fqB{v@2 zZEXg_{sTWh5=oMfA_;wz#^Q#V7(@=Km3?}Rppm47v>7}w5@(f#v=NtlCl6N{rU5Lz zusz|bKs3@)fTuctnZ~op;)g}PNnqv1s|-t<-!SLkO8LkrMvbPulzo+cMt2 z2m(oR$mRNJ3<0K};{Dg+;;iAg|5-^$5w6nqpOwpaDv?_f5G$wpf0<%2|7RtaBv!8X ze^%D9=HT^3K&*sZuaCyioMjmzrI9?^G9i0PoPXi{tcv@ey;!*+;FkaF%}E067JZD5 zzmxt?u(v_ORd_nD_&>eC|55QLqo2(GDMpffAooY_JFx8V@;_CscriZS(AW_QUC60w zo(q9G5QXQPih_HZ3^KeiL+kHP!b5~+h3fC+!Nc7)!$9i)ne+)0^0I}HC1J&x@yUnT zuwWPT*CpYzoBED^OJ?B*LQHW+!>K`ndi(CMsIKj8dq>1V7Ysy21(`E_ESN;W)Lff5tzAg0 zn_%x3I5}j~vfRPpg$JyozR8h=7tPmq{#m>FLE`IN_h)4u`p)L@Ra-xvW9cr&svUpV zzCF4yD8CEYThhL;p=58pR8?ch-qxj8J})pkRyFLE-+?c;0={arhKTuS%)eh%;658PQ87-9cmjb>cTo;vvs&wbO}tG-AnOO6vr|2hHi~T#~ONOzkjsTvk9*f zZr6`mU*_Im)>!5KDr!Rgu?pwq7AH^pyFL86$HEe~V#DbfVU!)g2@gxIqti3}mju6! zhSM{{>xNS#ou187TdQir>DfG8ciR6`iPYK#n=E#7j!7?S{rrFZQEVQFsg8YrTJ@-6 z&FF-D&jzQMqZ@*!T^d%{W1)QX3xnNBvcf7(k=;exq$a;1yR$gEcja`1fQ}z``>=1)##TMWuX5hFRa3n zVd`0N6{p^xN0zUE2NN58&m5}!m)lb7qWy~bk3H_aWA|oW;Wvk7xmA7b_wLv=7gDFK z)OIMFG+|9ee7CZqcT!?=g&qR}B2$v*N`|W(NA6 zO|cQiFD&%V7(9^zTS!Lt&$WHeCjOM$?@no_4D-i<@4BXW=1MG!0(?ZvDgH}b6L;nG znN{4&r|+3S&;4niaN49Ki!^mIBeLoavOE;-)qNhkNI5azqQI~?uOoB!hw?iUER5fdEY}gjseYwspf6%eo`8QI>hFLuQ&UKx)0MU#mhBsPi}BZ zsyO8mw9%d7!5dE}I$Lyz`rA||*IgcS;Q1d1mVGMuhs|r8(t%lF({()-tduRq8JgkM zC}xTlrM`uV36&j^{c$W~EKXANxn}(wvC+&qgKU!yR#8fy%1#G<8qjU!+tN(yoACQ) z@bjk=0{)99Q4|`OwaucG&J{h_-wR=uew$tU_1ZrzQzp=fwBWm2W>!RLS6DSAJ6rR+F9FE>Qv^RQtB zMdL^>iJ0{R!Z9L$G?wQG1@ww@2}{1mub*QUGcn9@9%czNpKa-t1Pew2H9!xrpu)Fa zG2vZ#W)A$>qW{W%vt5#!;pO4HJN>*%2z4iOHj?w+)yi!9r1P->6K zzRpL|Zze1$k@vEjn)(1U-aTFKYo?r#_cZIW>TBDnsTVNslSd;TT>bgzkI5Ijw0_CO zz7plBQmJHu+$#3Uxaof9-1FYLJ9+q+2fz8{9j}OW=<|-_nu@{<(Yp75fFWgNYU_>l zlF`Eo8!~!)84%E?te%h^X`;| zWDGbQ*!OJg7ZUe7x>r6Odk1uMO^MBMu`H_b=`$sur)%o29M>&HfBEzs6)^rtW3msDP- z-ck6abu5M3qJ0sTS@rfi%6muHxYrCVh^`cW`s=&wD;2icE521^pGch5%Xj8`!7h2D z!|v-}=N!3n+PzNWAr|jxu-;iEi%gz%`DBTzq1S@i2@N(As>i?qAy`!dg^> zetlKS?nlBbU&FWnaMRDEGy{IPtbZ||~UWT%lBCqV99!1BNF5z*BUDDm-{Pq6NeLVCrsG4ohO+1-V1j@w*< zjtGRjfsDyxiG-tj*-?mwXF&i5aLxp9h97eFuP7tOL7u{p2ppXhVgT>J?!{J#@J$A2 zPw|;x^QFs~IbYmS45!vu8uE88A#T048Glc%i-7Y<@@(14kwLzykl;g0{}la$H}+UK zDR)a0z94Vee}IdwSt~-ayJclg*Hyl7m-;kX<{o^rbG7ZJrOKDM(U_gr@9FwI33Qc9hLH&)`?MP1kL zGAv};@Uto3Wpq6ppgbETY6Po0W#gvZw94C}EAZ*?Si9ae!850yWm%?Ar(|uIYhqB& zz%6Bmd>r-#blsmaD7Qa_W`hC89?k7rS-NKN>utsE%a(00%e7FJ4bue zOJzGdp8X)fLf><2pw)xan>oY7%N-~56(REyJ`eMNG0)wQ94d@1`Xqng>?-Np zv{7M-14T#k`(CN-b|Ycig%{`FX$-tS?MC$Vuu;o(gY$bMs~@*xh2lB4@^j z7w>v_DsM;m;(`rU_5J6Ujfxm_uzFQNROKIE3|LXUtRM!^`Br)N25ZL}=g8<;a-^w? zr^aWe-}rin@82tfKRw#_v0r5Tqi>=sts3KJ)vqr>rYhE0y-Hh9Z}+BfL4#f6!1VK{ z7j;3dS$Xh7@y|Kg-L@qx*{B=|H;(v$xQX8)6U9l+_f+8+UD~^t4&hXou*&%geI$D* z!uj(?tg9gNzi0Ov_AYVWZE=xo=`Sc>Kq%UoejZVRQqs+bwro1ryY7VBO<0g5E3@Jp z*&rN&nBrfVne$whx<6sbB!N7`=E*b3Z@fQiqcQ+az~9T4qK!+)_X@J;Be1`mqs1Ya zKct^eSn^+4fNj^Lq{@+p5+jZMH4mL^7a{WQ!hy=;7%R+{Tt|;(G?V8*x|o>7wY`hG zh!|{9%8}idr#_x^NkTs-L3JlWct97~*Kl%pZq_!qhz0+J(;1ZAHE_T#3gga;(ksbN z(8DQ--f406{orQ%mjo}4+W3u&0UFieaqy{Osg_{wRf zV{LaaU`RKuJppWwVTDL!zx0Q7_w!EsK(N_ecqya*Os%bJ${)hug(ZD5>^|2HJDV~` zGAb^hFR@3%@05=7>G3$w!!@C6PA^McrcX)GtIL)Bee6dCjv!l>Z_yp{>3Ak^=>CLH za&2doi?%)kg0;&+;#R?!%hw>4^$!f$I2FNob;hZy*E;(7TgL@X2}#Y)amy=urtdp8 zVEBU+3w_t015^*v#^(%AE4&3W4sd+1>2>IkzJ*2V9`R(wy3nC%#p%DEd6bt{RH5!$ zUejy)hFYNO;zU60TKV=Q8BDosPQJDHdyRcc$rt$@ey??!n=mD;=jievN`9BljSmiW zJ5ZjQ-&0jMzUT|0XCb92AHYaDKDdRaHbp->mmV^fXAxU}-Rw|5i{ zkLZ}E6*=3%~ojghHVlr91nW)-u-KNZ(iK?{MhXU zc#cS~5y89kb`nn{4-Kc0Y_rDbdBlLBaTKaI%QdywV*A*Ln^Jt*5 zz(ZfR+h4af#_Z8OMS+vPPF$*e?5)nBs8C}`r^<;!?%u_eRT@5K-6dN9n}QHy0Nn`E z50~HH92_`MxyFv{(->-kK92My9U5c!1`FlA9sC> z7KoUcl?qQIE}~x-8Dc0xFK8XrUpCA3AJrPhXs0ajHcW*k`AR{ff8nni8*8@0LRqlb z@Bvey55D@kOlmV==hMbxDFu@ZD4vYtIHp0c8=$`R<5w_H(!U=gnjJJZv|g&!o!Myk zU}kvkzF4zIX3ByU`Z}pr=eN;pg|%TUxBTftQyYwhRuXFUS7=~pL%#{v*R@l_hv4|e z*%#- z!SBNIj2)}ioiE@2dgXR+eb@{Ca+|opzng_`SLroJro{yI{gnK$zhTb`;7AU8#|$1m zAbh*0J}gdK{zuHnp@UG$8J@jGML~XeSpU`Nr zK5Uwy(eDGpw>y#EOUeBxUxHkxT|y`w+J%5X7~(8p7TUB)$RsvbULms4#&$W71 zv|jJnz3LtNjYVqf_^S8qlXPL$aaBF=ofu)A;%e0PF@a&@j3jr2|I@5>Bd6*9u#S_3 z4*RwEs=B)_Z1k_X=lNox+2xq>*!&(=wf*NNoe9+(C>@k{Yz#-3ZP*rt#GWj^D1?;Gzg|OtP)~J96F4 z`?YqDPmKWc91RZG$V-EBrb9#L6C5*va3YS1j3C>hba4dbyw640>XyvSL487YM!#qv z&R|&zp^zU8uw%?fTLSTB1i4*8K9*BbJA-03#W->#9g~|rzCUlHdrS1TI7=9Xq9j6d zme|(vM-VR{Z9M8ed0k8*+?x2cZBa@_*@q4WRRv*J10<9Fc2yCS*cmx-o^iI%KqV% zD1rkv%-LOJsc@aB71wUP*YQ0-0RmEFIW%Su*c_65;^dzjGJ$kT-3>X5>*ED$SKt3` z3iyEOw+$%HMsU06Pw@b7ppy8IXq!QRYCs1dN*5gwj^m>txp;cJTe<9?E$=u|*OCy)IJu{j+qOERhG)RT%%aswM}oiZ_WWZ!bFb+mI>mpIDfYeV~_0sT7+ zubs4gbj*0{fl7wZoCZ7sSx-B?vI(&PnF zvGM3>f2w#GD=R3pyy%FGr0Q$`#G5~0xv z)vU#VL?BL2nPn&ifNh*4+_R&$csMcU4{c^t{pOKNh8XwZzv`9l;pLEMF^Eg>ncB;&_kp8s% z@a9xmjX~J_w@AOnhkGZ=(hR@D&p#S|Fn;{Z@DV?wCFIKs>F-&FKVwdnIT-%@>tq>z z?!?NUg)VsXDl)@ylz&Ipl&-n`h?X0etOYGMGlZ5?{>7-tw*2k zOZw_<#%c{2!JhKjx6{{ZS3HPWm+Sbfyra5bcdcZa?k%`ZNHgf%ntGgIESeo7N5xP{&%g%xVxHt@dpmpb#W-4 z7%`C8y13uL&Xve0M9(RRRn>QzUzQvp_B>d%s(`3?k3tv94f@_Hec52YvwGsC?dvvf zsvmK(#0r*OMJauK=k=4!^o@0g_Y}lcTTy5p`^M#a68zIo zCH?2b{rv3Y;!ie9({2&Jd`V(NiV`qWcU}nl|48(&)Xf~<>x#JN+mp|olG0BLt3Pl; z?pV`fAwtF+uM@P%I5yZ}{P4@krjOWXoEQ9!Q*g(y?f8h(fnx$qoDpamKjIu2e=t1f zS=YVhzC?JPy}QyFM4M27NT3`s*mdT-wTGWBx!e>ThZ#CVC!d{qcJPYTPEiV<79hBj(6wewJv$`mu0Lhk4%F5?Z zJ8HiFV^|@j!6cFjY4)(98T7-m`B%>GCPpF&DUN|miKUQCxp^~bP>lRvO7V9| zm&3ot5kw&(bSm);#G6p77qihrabX#Hz$&8$;}7TuW(bMVsYo-w@1RC7y#mnb zNLo~o%Y!f8|Ek;Uh9A9S{@ms7>b)UXa40Lvw{{#5;N+e1!ML+u&As>Ss9~O}mF1r< zzR-ERpxIqC5Y@L#tKD8Ft}YQe@76s5*B5Ac_TKy}jcU6)MGrE1f9^l+Z0Z-ek~_NS z49DL7Z@ET`p1Iak>HclrkE=sRxTXf>xNgz?bvJd;h3@+TJol%Z^y#_JU-3kD?_tUQ z(b-XoT+7O`F+Nsf{nzb}H@o2Ir|qCD8K&=H7dSH{>RgT{ujHBa#_U|TZUJ^7@q=@} zET6rg?wj1+;ib#f9exgUe-Jf3SM^Nip|^Tj`;L8FOlS|WTdlu+(pzf#$yM+Fef*@b zskp*AX=YfTwDMea-{DoCZcq3!wAVDacc{f^ z-LCvjTWd$oO(nuW_jJdu7f~lVs%nO%6rQtA^a~xkymVQ9=hZc%Z=|lhF@L4Rg`4)ie%bZZnhQ_WjppmiS2PR|t5&><6?;$Lb1CD^ z@Bhl68dZAb`@!EUezO&q&=DtM3LIcwpD*2hGcfrroZDYEu~6_fp4<}oUvpm0kG|>= z^J2E&C&AOre|&m1yZgQu;rkqac`@gQN5_RLPKF~6MVs&3Y6I8af9g(UBUB6AvVuSn zf;^vIq3$&q6(p(@l*q-AwoTQkitG4%#5>)M46{k|E@*bbuPx}>2#Ni@!kvpPh*kvQ z4)zX4`Dl8D)Gm)>|H#)2LZx6G@nC?3`iC;jFU5Z#t>~ltQeO8F@|kMT?6rNN)bJS%PP2DIa^KmE$dZ{=a^QGj9141R)uIaL~Gc+I5e5u1oghU;PN%Y=ItGl|AWeP(0c+0>bR zvSstXvb#RzXkg>#OP)03|B)LM8R9Oc#)b*XvZ9EL4hF;Ck7BYnGM+Asb(Coro{gR(*exu#-|=71xnB?XT)X^i3~sO7TL7EZc63dM z&2_Q-eB#sJYJ6IX>sxd``Z%n+U^mLY*`_-`(Jl4qyiW{t+n=~9M_H*mes|N;T$>ha zPIJo{+RcB|hm`@Nm!(GOyIl_$Yro-7p~u*O?hjJF$r%-1^iXfMHo*Kr>WLipXGL%H z=G~89d3tnwkC-rtp&mCeRGn6sj9WsV({v*M<*U2Ero%@5TD(Nvc~78d z{cA~UHs0ZBO8kqslRd7~1k8<|5@tg;VT{T6{m}8t3*A5l)+|gZ%m$>d?OU)RJ%7OJ z>g6|LaQBS<^@o1u)!K2n%J=%Nx4vtX>@%MP>Ig6-w^aYcG|(PPmqDdu&0yY<Ubi65;*BwUgzooq18#epR-xT$W=0Wem>0Yl_C{OZZ|TUM#bIETSs1*?KB?!6U$ z_M6rA_K$1S*DjeCXY4sJ|0ogeNQzy8lINj>2f|6=kR#9`2KZ(`_96&Y(#lk5;YQVsrsbHgf(DvfT5Ug*Zh%oh`ex& z#l;?LOAM{)WA-Zllp~c<*vS*qMmh()l+0ezz3ha;=&jcpt?8mn-(ki1869f1k=_Z3 zl#nMOA-{Pu@soL9_c2@Z?eJmc12e?_CnTeG7hlTgb}?X#_a+;Oj2O1Ahqd9CMtr8& z+IksusAPg=aVMXCy#oc;XwO`=kzvc9@_MeX?H!VGE~lqbEWM-eKQ?ewpTc)SQkUhL zb<>W0u;I_#0pTS(^j&`roc$nfe2&$#a%Ae1s7G}U+puSkM|uqM^`atmpZJ>4K1I3e z{u9Fnrj-fmp5?Xb?f56wrPGRjP@Cwqwc(@CZx|~vjyw2w#OT4?wy+F%g1UI`LMA@nXzyEf)!Rmaq=eSK)NZm`%M07n^J+&ZB zRcCpt^m;`1N7bDRHcfBnx3kJQGUdbit{%GI8~Wd_5=Y@?X?^FDy1yGNCe#kU`5QAKB$;$6VkFMjs< zcVZIC=8z;T`O3-9Ug5MGUS+A#3g{lm5C0opZh12$qtY>K>4E#zC!gizkS=meCzS1Z0PrBUKEXI(U2 z(0R`;7DGY}FuhXhiHJ_zGTFP~F2LP|-;egSPo#1ItnoAj)W2+|yAD|R^3%(+y;Ybv z=0R+mq2!04tUtZzD?2}`(~(c2^8R^(#)LX-cXvB{Qe4&r#1^eulVAL*n_o)^ZjPu; zxs!87(DIN+%hw&A(1RXthR4IfHTAaTr(911)LtBjDC>7{=SZsYIgt*o9~jCIhL07e zC`KEf=yYbIc=gt<7hhPlV40>`ViUA+1%#ToZO|_v`WZ7-FB&)AX>h*peYMnmW_d`q zb@yriap@d*rs1OksVWaQy{qs4IPX;wA*h?+(2EDoxl{J6@A8K;%%7C}H=`2)b29Vw z>wNE&ZTVx~Q_IokVr{C#WMxoN$X7iN7vAtWrSo0*%a*Gs;+2iduzHM2e1}t>ZZkhU zQ(Wh{O)AM-9Xe&}lY=Rn+@=&Bn{{U3)kAXc^m*G42n*jW{p&!;hAAgl zzn8Czzcl->$D*edm1}1m3>mW2?EbE0xr4iD*EU>UYU7A3_-LQKZa@3OFWk)S{%qq# z#V-x|Tl@XoWkF|7>djy32F_`WI)ot-3W$1Cvsrs6D8X;*ACm5l%sP`$E`&ZchPWvMm~EZ^Kk>+ZzsHeM~A zV;6KJ&`^S#%5^@!2B|K)e;KWEt4E&IaE4wSB{E3K6J=H0k! zd2g*D3CQnytVWq3IkWhx^w9Xcv==8L57+9}XZ@k{)J*+$hTp+ku|Ldr@qYdH;^PN@ zUaCEz>h=1i|2x{4D_*jz-~VoPe3PsE%%C;)b0VIU7uVLN?!KyhQJfZR8E0NBNwJ=~ zDRJj0?-|QaOn!87-tkwCvnL(+=a=d6gSNV@wd~nhs#a|MpwM#g)>&&UT||XKJw!tP z4Owp1%kYClP|@4w?PXGh9PgtuGL^vVX_Qh{PbSD^oJ^*{3-1z%*tTPtlJ7*WlqlH7 za8?+!%YTCB-q~8iknUbA}pj1lO2TG+cKK~V#!N!T$-HG-O544GWfv_N9(7Ruz95!10u zA;p*Hv>%L2p;EJ*$dob_J7}3wBjeht9^+4F%fEKqQR)<`w%A(U(6(&mG%Xm((7je^@_xkky& z7+WmJw?=KS93ZmKg*V~OqC%q5u;WxnG*Wgx3PH+suYe0=7fm6kR89T19vy|Cku*=J zc|HpAJIvxLq%s9JXsMiY4+^Q0vwDS8BW=I9-Er7u__Ot^D9hnu``^*8lma&VFe znJ_|yQYw*b?HFU~1SwUV|5m7A0PIGp1n%@JR5%8lo>IZhTcuJrtxuapQwy8}QK<1< zChP<8T_D^Js_{flPa|+`5s2Ck5Y7i{Cgl~CoDWcFRGeE@Xf&L=RZ67XCMXeM*gljJ zl|*2jk5U1r&dfxq6qv2X*;MkbS_!Yr+8Z1zcea(vRvaQW8>>7w_j=u8UT%%oG4MMWioEmY90Y8)d<||%4kfi3?e1#VU!vLhZmF@4GfZk ze;Y)j!XR18#V&EkhYW&UEyO0yWgy~ntDq8OLd#(lo4~6|K$K=?rxI}fIT@k}E0ao; z%(6;UfOo9Rz;1HpDXQ>=P5cA-L#UDg#jzdBaJ)E~svS_JOtAXg0~J_Twk^U4duCLMCJ1lXcF~wS053?nP84eHV5$@ve#QXY+zKkC zGH&aXh*j(WMSv2nF`@_8SS2XgQ;jezaI;hK-cg1BS`J+Ec>^Y()uQ!pU4FHcKX3rS zTqkM;=YmygSUfvBqzv44!rQi41*83`V6(iUn(tVn;R2yr0$9Lwtd_{7>}tX13A~=D z;hc(EkZ>*&L*bGOwGv-S#dZu=$XbLNsRes5)hd}WqGJ9n%MTR7!DFZA^|Stpe|C>rpdKQK52672oYbn*=YnBcepfg-))zbyq-n? zvS_o^Mj0YeTN$mtMhe}wLW4}ocLM*-%~-1D0uh`oXE}&<9E8&#-4?kA%3wU~VB`Yl zxhR3*W`{*!&k=1qC&N6N4s|R3L*m3mK#hV&FIYg1MbRiUT;d97&A~N|QqF{EtiJ|+ zncF*{4fgZ{yYL52#e)qEzP*lno=VN3CXE`vg2jIbyqqW0z%8>rK%-W+vtz^If&<~U zL=7Wjw^Ji&iIgq)kI)d;7|xMztl$8u21~=OmWIO>0`k^o+~4f2D)R9gaAy$?hLhMw^{&$$gZFOLX&HY zuPEjEkis7_Rw@Wmjf^o2j1SXewpx&ZSmb1M?r1?;j~(`&pNLG;GLdF06+p+ZmIj%e zMevZRSUd}vnq?aVtP8)L3N9fNq1c{(HtZ(=GPhg+$V~XaE+P1^GX`bOxD4p2RNU4n z38ykvDu8?76p^5CdkpWu4Uo@41uz+G77tmQEWRmAgOGE6kRf+tXQx)Pj#Cgc0-L2l z#?fn#DcHCrh=PWTM@ZMP4ot^VkY4O6AUkB^7TR(N6pRG_kTLr_0X!U&rI9spURNq$ z%4}ndkad0li<~KfCFD#IC5Sfu!@~=tcgiwa+ZulTNMi%uml{V zBS=N`%br##yfYIpQ4Ik#&aMIg8n+5S!`wE(dvk3OfN3JYzpc&!Uz^O*LGVX7AWX+V zfe0TRw<3J7#)6)>uq4BgV8|kU7N32YaLKi0kr@_fo3KbhZ zko&QKUjX>!&ZkTvu#7zP__K|9@Y@N}w%I$hgbx`{X$VA;bIY&9;bCW@l=Ei+Y#^rx zZj4z4Q2_hN=EacV$g!QMlx+3^Jz!l{4+%MIEU3e=H5$ZKD#J421I!o;_yrW=*mM^% zKFom0;`f-Z&7m!LrshF6hY!>gxaE=~jb%+tj)E9_xRAJTzE6$}huu0k&{#{yO=wX> z{>DKBu5~;)xK4|@$mmfk7HUKqn@d&5^ z$xHjQ0G@)g90YU~8_T4q+O!4hhW$sN=9~p&pq`jcKmoJtkrX#9*gb{}BrDri1)R#r z#CKK*m8$k{Nvf=HIgXauvWPI~blFz|jY?Wc2Wj z_H496ddI;}$lB-LwEhqxBWEAT;~I1UqhR!uI5O;6Pzq|+Jb@K8Z1e<<1AJv?f_$7! z@R57Ll9`S{xv)V8^F_Id)8kN^6ij&2nQ0~YAZ&{(4L$%e6^ltB;|Lomy5%OK=8=z7 z4KL6xDq{U1HrycV+k@; z``E#N8si3tx*2=6pw-;A1^qMnsJt4|Z*ifb|Zpv^6PJ>LV{b3cU zL?Gb~99VQV?~uatvw;XQF2RNjP>LN4*aLQ(z^f?OA}<0uFgz_f*2O(F8 zgN(bT0M-uxknIFU!gxI-L;@QrA>$Ggd@ZJ$%S@oi-8O=Z-x3g=Y}}B^Fhq9iWFVy3 zgNd+BRSZM?Z;pV-uy9RJt0KMQgs7wqy=IA#wVh2z$a4e>>$!1}WRhSE3|*U518hvl#!<8Ea^#`^$NPgqO{ zJzO2ZO4ItcEI(*;Hi{ty#9b|BOOOh%$tUzsdgSypT*rt*ZNaEv|8YJ*cd?Brm~%2L z11FPn7J;bERw8g6mUF>KJw-^F2den{YB)w9-xxiRzpZ(kF(X2OOu>Rt$Z+F=Z7Xjg zCoun($$>@QUi{W0BeAd zp|H~Cf%H67M%Xh08LpvodP*>3oRGU^i^gEuSUueJX>*Y191(=4l<6AgN%8J2J4R+1jhB=|&~GSt)BDMC*HfXK=4A_XTy z(!k6Vf({(XuLW(~0W@ucWbhsF<}eZ6h-PmJ^VH=@^6r3nJh}@!kxl z$FT*_!`o||9*SJ7Ol*G}np`nnlHl$XB9Y;0T#x}HF%LxfiB0mbe5m5HdUD*QfQ;gQ zGXOykKmv>+F1E6~7`;rvZ3%8$awZ1v&BhHd=L32xc*}%-ZXOI|+~sB9U5@FY z7ctuGr-5)$fsbRi6EcBKWpIr`jab>Cqov<%24oOZw3*I$Wl>|!KrhNkrZ(tR7&bN3M; zLqAL>^rkjr%^>`DbIr?4Oaw$=i=F`p(u|S*wg?S7 zK{69FfeYjHXeP`=u*fL6X<1XqX=KOw0u2H?L=6A^;AYo`@TnoDdez z%S_A!u7=k$F%b|5yq<9)_$G}uW(WAnE1H-ISZiL-#6*BZI6e5nHZsHdBS|qa6VxBu zDAM{v&%{jN>3Ka96M-+}^+XdhfoJ9vflhc?yO|gV2sWD6Gcge$RfC?`cKMNa^Nmf+ z1UWXZXJR6NzMLMgd0QE+Kfc7k#7q!Q+A13LOw0td7_VnyA|MfYJpe&oXksP^JDeV% z1uru(5riFHuX!S3o70cvo>w$66I`C+^-OFDisif>GZCymP=tw@AgFSUfu(s_^Gw=I z1PKMNXJR4%b|3TW|pG1DTNV zGeODQgdRT;RKXcNkvcXp6BF^B5`J#R;8J;+iHVp9@5JSSh-|<7cp1#Z15M1tM0}@P z9Nb_`gm=1d*Q{qG0%`e8#CIe|Es6$)$)IOqOOOmUKd@EL#6Gsm9k+|`S?q z>2-Tv&%~CfF@Ijs#FpUBBCpqOCdQMFo4uT#iSUlA+D5&$_>Zo?@QqE(#6*0@+p{Lx znwSU^-f8`DDaOQ1OvHC80=6qv*Cb(8u#2|fOB(bso!lVig>)*si8Ow7bYe5bp|+yhO-clu%)UeCmq zAiQ(<4@9Gh#wKQB%-`Fk@2J|CXlr6iTElxQ{-dwO;zn&EzS9>>@p>k<#60NnlFm2BvY_)gU)zO9Lgv`ODv z@E;2Cd}9;wo!(#KIx!L7r6$sMTo7g3zJo#nyC+yK6Y-s{gYzA$w_5D5b{0X)votAQ zL}jmC&}~`vJ8B@KTV&15q#^Yn8T$nVBxCRDqwFKc3pVX9`a_8O?CqImlCfVjLNXMN z+INgQFA}B>K>NX< z2nBYXl}QPz8jf{yA5y&NiCavp5HAn0jWIx`d;<15ffASjLPow5 zU+H<_TWcG7+rWLsiWMt|;BiA{xPP#G;ff)KiamXpf7CCM$p2UE0^Ij{4W-S9U@)_L}`JB==q`7{{y*>!Jz;E delta 1108047 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�U%nlnprR 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

--T`<dp$?scp&}+@C`e(tA`0DF= z7TJT2t%lkV5H%x=mkmpuHSHO(X^uz`d)>tDyp4^D=~%FfNi#YM)+ z@@dxw;`t8{i<2$QXc~zG<^N(`hsMqNzr5mj(yq6mNz+)sk+9Q<2w@P?k_lj_q(2Sd zK27DA)g09wtW6!w%s+kR*#D>Le~0>Dd3%J?)ekh9J!j0!aV@^tqA-NbFBbJi@duL@<@GEbRX? zV;ZygXBWYLa0CE|n}zNFl<95bb_Wx-aF_q}IMP6qFue{?qlO1HW5U84QGBO)H0L7a zm|DouP?03y^Zor%Q88lSo}>WU7r@h+imrH3zO1Nmz`p#@@OwS)$P0KHBaJ%gxQx8~ z_avsAQtc3R*y`A{SZt4IJ1To3IuEo|traX5RGDAjJUvXzk#2U=e%#HW4s<*+AD+)0 zd_=TAOm*Qu~!&@pQY!MXE9Ik~eT}xYhkUcOKUETL{RWikNbp zd&HEjmMugew_lm{6Ar4diDq=T6sn50V281iOl?4(hRc`k@qESTOYJ*9WwTRHvqAV| zZLw_r_~CyaI&ZJNv_U3RyKqv6vvAVcU0*qL9~16;tl9O_)NQSq)$E)%llSd3%fj7H zZ*4)~&3_H@tmWzPpS~vrKNj#r>mP{LVG;s)MrtJg1Vz1`_t%i%-kfp%1Uvtt|3}Ny z?k$PZIzm&3Pj8zwHq?W27{D*EnYYxei(+pPC!{can6_(iDMMMRW!P%I=7fRG)$=xJ zV^U0~+S%$(%biJ6P(q8y?u$?AIE8 zf9C-i*~=2jxVgBnXkMQHuTZYrkvTp5{J~hrk-`n1UaG4FM14YE6aC(-nS8@R#SRGi zvQc^caa}QIMFZbe;DM+0?Mg{sFcShlJ?mr%)fNyKo>5hNu}X79)~tiM9LVXT|Ku*x zuT2+GM(1w8)~SAFmj)GjG$e!<<&~O^+eq9!bsHMK2~v_TW}W1UqG01#)e#l$Em;L? zrm5I^nT~mxRlsyeT%U6T@6uSP1C!}lsfw_*s7QP5Z!M+AA;8>pIv&7otdh3W}+vjsP+yKNjz zn+s0!V!jSxK3wuU7wnv{0W80s6wZD5vYRX`hxOnK2djj$FuD%{V-QVETCVq&hUQQB zb_xz-o(6Xg55Q+MnVsZfBko@OYI;>AikIlkBa{c*ADS1FaGq8tRIW zFAu=3%}pSN#Df{xwm&Z1^h>u_yf4Dlgq*anP8QwGv8QGI!N!mBnm2&Qi6j9`O}vp!T6A41(p%CoSd>7 zL>}Quo`HSuoj9PBv0Er78*+~6=xrSy5{lF|QJG`I;=X^I{o{ODVqnyGJ^yVRwId*! z-R?z>P7)K%H1ZBb0G2mVbQ4luQ^A^C)X7-*@}IyfC9gW(QW-B2$cxgrimCaG0v=6* zu-IPD?PR@k+z81+vi^Wk`DYxc#D5#H0^fT5H{eHrcI;Oc8R(YQU>zUccd%kJtzT-S zpk0Z^X-yAuA}7FY`^IcyY*d?3&sXWz$}EwNLV8NV5Q4 z8Ms)d@^}@zcTM=iWuQoQz{2$PMa|0xH|}cgH|;2qc+t{2+2d~gd2NX4s>+#9tM8vM zJvixT4v2IwO13hdVzXY7JV=M$|9g&qZzEScd?}i;b=d15uHj0kwY1j5PEPU*G#AP z9@^fa<7o+|-#He_zdV~s*tk(qJZl>_O?&nJ%T zZ(k4iUHCvv*xSGK$o) zY9f=8FTI6SvPrYXW(<*&H3JSzCAZ*TqpWYm%WY)Vp7Am+49gl8y%Dkd0^K8V zcy*5mO=?mhh+}1WKd!#VMg>1#{DB-?gRY69nJsVk2`jDZJvt`f*W$|BywnnxsQGS# zl~$wEt;Nf8!*-0sf-7@)mYweg^D|=ng^p;b8fofF73C&bq6KROgJ zFBbbDl-y9X7l_%+E>0*HJDy5}nA@XA&x7Qhzvnb=p2*Hcla#F^*%&{I>dj?}Qg=$~ z>xhxtf@X6eutu^oFEB#+^N2`cP+nz4J{YO}wD(uA43al_688Zc^~3}|`;Y!fwqr|q z2))I4eosOKZf%PKPB%bfJT2au`UJ<;S(`BIXSLnxN{k}0f?|3caMrOqQlDO88_|MA zm(4$QB3;MZEbr*dFwLv`a{>*H3D@eAoWqRRq)l}B03pC-xmU}5qyh{$r#)9@LqB{( z_Ok)|VnP*<7ls?&(b5a0!4Os!t0L&r&@hUn#DBrnzpos6*8%B!BGyV$aP!B~rDSVU zZkeG}cjvWrn&=?Lx)$UH!B`T{&Gl)95rQf;^TOFRV*2tDKZvJWPtYM+>wu2TJoYi6Jl|d&AxR2+M%G3V z;cI;K*R&C*e?Y6@WG=Vz3ga<+W(gK&S4chC(n>Hx%q5~O)9~kqCvzP)59a^e96a|? zinlwvz&0E6A55%M=VYqH)}^#=kA8FJ}E7b~(LgECj5 zMeUp&<5OStzHS^gs)3-@Kf`x!{wxON>&kq@MQovE!0y?e;D^sS%f<8?LWVL-A}+Q` zNgR$kPbr+Ktx;n&c%5j4Z8f-52;R}g`mTy2a?LW@q6+0MfY_wDw0g$7^2#~7 zF^$v?NZ0nra?Y%>-OH-fGxx|xL@_DID;rg5Dzq3Fd!}`1)P8>FuAOvmD9EmcmfXCg zWA)B9mYi!|31gI%n*@~!Do~pQls*DF6U8k{vBMP$m2G36hF2A#11IMf%n264C0Z^H z0cgRT)t3Ga>W)ngw0FJaa};m=ny|(FI+{`-pa8P*-#6a^Hwp99{otY|rnT<|G81#4 z1x-~yJX?dTN^b;F%j(*B{@70WTfBpY{wpmf3IMn2t6+(uRZ~F+W~1+QUCBHrWhQ37 z#0y+~UNp=|Og1vfx&5R!n7Y_5HMa_PE@RKP!j7Pb+4pC$l z7c-5w1XZ{F5)4JVfb2n(>2=8ae%-hytD_sqpOGMqjd>ma@=g;u>y=i28rQj7dDZcf zdsEcE+;$ext;*%o&f(mq`%{xzceEYo$>neFR7Yk6%f&<~D6rT=D{9Tvst*#bnpfVE zrAfQ1uaGl6aEPa^(tfDkW#<}xk?B3soUpTuI_fSpA|D>0TwbK#7g>Ofc*|#l z+x*%mhY@#LhB^>$_DN}H6TDu@h#43G7$NJ=Q^Co|feM04OG9!hS+(mw#9LZ=-d7tz zh`O+^ulZVG&NprW-o*|IS$5L15FHzdYFQe>wPje^1%~ci^7drBOuPJsa5k~8C&lvJ%O zrnaz_{GaKyM^7$r7fz=ixn`;Q>IEDL({I_9nkmHfWGm>=X|bzlEgcbYr@5!qxmhMU z_MLV;|Ll}^n>F#nbPOOx_7T5-xwA`RF|f2oKE>d4P31Vt!b~bb`yOjCA^^jpr7}E2 zn37V6SnMog7iwo(f$RaOL8WI5&i`Hf&vrqnCXiaGa?EX8A}OUtKlz`r{u(x>A?CYx z>M6N(^ie2a6I)9L^;-AWxZVS9Da@oP#h1cXvT>@mL~?24X-q5z=hJ$vN_BWH4r$^v zT12i#;c=>?0|K8B7G6AlRV1BH+T2+bdD%m$82) z%sV4+YiaAm9%*CB zXB2CClDk29{k=wSZ8ecReeFc)7i=cy^?}yUO!t9R3FPLE-q$eV6ib;R>Ma5W@^8e~ zvYFPmoRO{5l7JpkR0JOYCnBq^q$w;296Z(-wJ1*Hx^Ymc4p1kbp13?UsE=k`Bij_l3kJ@BLnPbIE5 zYI@#aWD%@A)EJ392J0_&7nMBxurfq^HN7g?P$!CS1_s8wz3HoUD^N1JYZku%oR*S&>XN5cfRYS(Hes@U$p{dNIwPr=i*Avg ze#lADoQ`EeBV-LZXbxrWL<=(ot1uf8$A;aQlUvcOuRQodU!vR79= zcwU41BGBt{>k=!b&}SD^t#%^2m%^(O`uv1dv;qkE48GrN_~k&^A^4>YG|qt-&^;n% zb56M_M^z2hF{Lq=OsPStW8Wdu$5oV>y6IIURAtH5E1SJ_m_ZhzcC3b_smxRoxxLi4k;I_6+q?40OK|Co|^bqDcebg(IwMf8L7}aYB#V`Lq7>B~3gPjpi<8 zbB?4A`ZSL@0$X@Zxey^qmJ8*L?tDh<44~yHSk^>U6(d*Hw32_;w3{9~!kw9_G85_V zHtmmy+IeWNTgO;hddVB7@;ii03sPv74>M|(gCD9P242S#bRttvgF}_MT~LtaoPzAU z5GRbmd|Tkgp2F&?BO|-e+L~UY9NwKyD~kkvj*)qTOzgiPU&hzKF-QSa4_$`ZCuEC+v)E=AISQ$xp@(2iMflFPG1u>@(vla^L5Os} zSLw2b6z?-lGPAzWy6ET+s-DWpF5tRCo~#rQHDJ05#_4>p={=@aW~f>w6rHsD-rPeINR2n5wqKxojbvN5jf&c^=DeoJe6@Th zbvW~6vRyT%1k%}yy41Lb`KEJLw#UdffBn?l#5eWSqVHN{DCZHNM>`7316Z&@xaOoF z;fP@c8MZio6M%*15P{maViMh+s$VHzT79`hAC8I_A+RC5plocnEmP-?gIVUx7hSH5 zJj2+MZqlqr`f_--&uQV)R`rJuPi~7#{IbO1{Sku&kWBPmeYnp$yr47n0(&QkcZPy^0S6dWN&y31=xTb&j+X69rF*T z-zX$WFgr!QY@q$H9J6Wpd3%u+{Pu`3A<=5aHrWlu`}7-sbNeylh@*J0)3(7oVv2Lv zmXMnJreSUi%vBi_;4xW7K-$wVtKdbN(d}8%0iJIBc!UJycZ)yd`eleD!8oo2%gclP z`@+6B(m95BRd0pr4*-udtMYs7vIW^&8&N7lw!fj-_%pm>D!ChK2Mpo}N2ooYi3*$e z;O$rRz6KOzV7o*JFTJ{KH)>qLh?`Teo%iYT4=ssvS$?glmx+17^(d)oHmbjfE3V6? zz&9X5SdT6Bb};ACg15Y+Y1@OntGtiK3-S-oE|j(v7@uSID&V&pYTtOGv->ALjVBch z^Rka9!t%k~u(CXrFQ_Fe*- zp{p2HEf*+V6Ung@`tfH2==E-(E#O&dr#a`_lxyWIZ*fNW&H54tIus zw;+6&w|oh)mYeVq>y;GFmS3BhHWmrYa0e7L-Gl^2I<7t8G@etTE@wWc zwj;({%)y?&JS;sZ9_abMserV^k*KHSKgb2Zl2?#X>nu~32aGdb-f&lvLp-%n&)OMW z8!Q2yLg~%Pp4*e}h!=9Z5bZH}zqrj>=ILhs3fvk6uj`@A(k4hTQ!(b+$j{h{DUbC% zGIUG!w+@zKoP!dBQxq|07@j9ggbmp#)Qgt?!OEcG;rx%Zp9H>2hWj6Q3(tS5-yWqU6HdP@pq_s<_JC&{~~KPooN0a9`7` zHgg}Ve1EyGdnl?Ei8=u7&huK71()lV zFz>21ULst_g@u6L&}aLofBb**7QzL$wh!-jsykn>|8XQ4m2nnYjl1O6#3FjT_X$0m zhILnXL|vQ&WIO%2CdGB^s62$;g<0oUbB6aMCVr}IR2smpeDzM>kzHhHm*Gzm=^2k{ z@vr71g`o&X7a;xj8;}P4U$_4B3hh6XNK{k2ye)adfoT`7$RkY;0ymoZ)hy0vypo)j&Z??a5TD z^t2!pf1JlC;T20$;%8IJj={Z%7zpsPLKYsKP6P=uIS+0JhVn!*(I`bQ@<}c%U-Wh_omIftLvbKXS-kL^ zQ%Z)AiqLH;Mh87#@?Qv!&^#vm@2SA#WS|GNC+_^9VZ@SadlF|&L9$@q6i_Wf63Ae` zJx=@YGX(%zp9jau7F2r}Gb*J6_3`k=zOv~oKbZiDdc;~$RC&(ZIwro{p-zd$QYt3eG#aUC) za>norYI}9au7OGEN>BD=rt;6ISF|*J4~Ad-)k2G{^fo^a4k9Twvf>)Vt?dznx=^@o zZohB@$xmB%@M(Ar!8zMhS@0te# zy%pYeQ`7E2pe=C3MT>w*d`(&MsMwZhEPm@TBt19;>DLyd6|hO>P2MpJEP~1)?P?Sv z>0FEW(@t;E%q^nrh&UE*sR;Q8tNb>B>;&p|GKHRHLX!@zjQyU0-i6MDxKo5Fi>bGk zdzrri1pEfyBZ|PYZMfT_QBfjVNU!+-e$Qr(moTiEZE+tO$DL+z=*^34c@it@I3V84 zTU2OXI<;fsy$kb^k8-M%VVCQO>l@BB(fY{~w`@I9eD~1z4AdeoTYWVDBaFe^1NW)F z76f4^kU?(+)^3mc*-wxxQfqF#d!eQ|4Xk|nm6GA?GTV3+PY9PEg{9QRUFcH)K|^m* zzY+HkOcy*Q597tzArZctz@UAIKo|LEytIFWrnI%S5W+cfSezq%p10BC^Pb1LX%+%T z+}SjX&9 zxBg78vNdYsD~LbU!}>kM88U0?3ier^#+aG$F})VlhL1_(Pja9&f(v`&cyd)>l{_Ms@-%}c+Ny*gW%U1E$+pm z)5Fp@o(VWfeCcEDD;}J)P%(;tq!5TN&Uf6yOhPjWXxPL3)YrnXE6kMDxr!mE?mb?N z183Q!XZy4k;W>VFsE)CDWh&)ywj#N zH1K9O5M^&mTSr^Se$JNNUzw5-TpAP?PB8fGzg=!sKMuI71aT@}Sfk73nPx(7&^q4- z=?#rjBmF@4Z|GxAOXGxCDqtYfv&?|Tt zLIna6P-^K~cvurkx5S#t2OD56TQUj;QU z6XbJDM!uzWmP#7{1}XVzTFW81hkxWa&~ovJ;64 zfb;LiNom>pIP!#$d7#dV0iGer60-?7I6H1-Gh8xOqqN6Uw*KKFLNa_Dr`M?L!}Nly z6x#g$q6%}T)F`zOc^S;J$bPsIRM)|WL=!RBc4OF+Xcr|J?ZEn{<1p_Qqd$DiEbnTv zf=CSe%x@;St4ivG=Vsro^MGulKjD&9z@;SN!^RJ<$iXftDLB(uEu;|EvWOjYl?JK1 zi9I-L>a0G*LI^7ro7@vyEa}s3LzY=C#xE>yDxO}Eyi1N{?$sS&vn;4Q@!RX+AJO1O zHx>=di%P}*VD_0EGDO1~Sg^1rL?O$ag_IhO8C);3djGgOs>_875ER_+Pp_Mb0Gr?P zoh{JZ1)XxAH$`6FnQw@6PVs90%EOakasJ2@u#5}!)e8M&&q3^F)j%W;2Hi(f$A3ls zGoh5S`>|>+LZ|GSBD5e)-k%ahLZ~JY5jJ834hqP0qGSn5H}O|k@lD<=w+ljRxEN}` zM%i=hjaOm&c_F&SwD=K4d+Eog0bmdM8;`H+* z^nGZcN&hP~A$2^#e^TFb?YGS9U^Z6Rz8Z{=28EwoK`yVb=@?yb5@kXohO}Fq^=Cp! z#Rt~uW1)+L`D3yZ!bE(eQMFhKco7o@FvS!t*G`p$$i0?RfBOla6uUiD*zj30Fq6^MeetktB1a~L7<~0Fl66z^5MWpG~N7dk6L_9P|(vP z_P;Tg$oNAT?z4CjlhzV5c_eW~$C*G*O5eV>zZ}Y1(!TCPj=$VccQdu18|br~EgNADAuF_Tob+WA zY4f=dLQcECGg(ieyCQ`px!xM0tSRSiS5Xi{{lDfO3`Bey1l%ja!<-T8 z%0YePX~EbEhOJ=(r5aHv(IcYT1dDgwzsgqg{IpqhSZ-@0+=RrftnSiNQ4a<(L7D{O zE#fS5SaBB`k_EQ9Ql`9|N2wY$mW~XpS2`;&_W^?}3X<$E01DcrqoswaVqqQGpDa%q z?7WzCGd_E;4mPszzuF{=W(#T&Jlc*1cr=&Z-@r~Vu+ zA771LiskQ?E8E5oty@=69mrsBETJ<`%-byQ{P`jo>AU1#OHmZ4>o_;E`X_3YE^WIX zD&bjaLp7$!7$92O5ZkAO^DXn?*L3AdB!GhumZrC7tZ~hUm4*F5uP2sd=e9+?VdsZm zm}S^H+&jH*fbp?-Im<}kH-Z!QgK{_tzF!IIk&8w1mBsD@f#!gM9ocw_^mL(3<#p1B zq6Br3+9bJyk`-+A;f|4cs=}m&fq3e_FA(HtOHOSYlPWp8cts#%?sSN49tJJ~U&)td9yy*JG2_c5sIVjw* z%|nt+5lDnmFZ$9BAhL?5i$UR^$mS9gshg;+u7^9y-P*`cW8Ss``4iw20_4*>(DlE^ zfd?r>JD97|6jC_zKuM}Tg(34zs#1)mw&)U}Z)b%~7LO3l|LR`@O;Gr7!?^l9oi79s zf!Ge)Tm9ZigwR87Ua7(89TLG`{3D2wzE7r?9{G;gX(Ob;Dj)s+)6428Idf2tM#*Ev zM7T-AHTB00@1WGsk=3tg{qmlp9o>K60Y8tiutO*Ufe(jiqJ&RYtT~T>DNi3t^1!-} zamU$3PcBv{xj)KK5jl%-vb_da4&u$m7NC9GknzJmT31$pzJAN%!J@H~q)6UG2u4Zv z40f7H<_s1#GjI8Kz9np~y`ug~GOtPsXGTDh!u>046 zi%v1dGz{6~GZXW++O3LeY?Er}RW!?f?2vjWqu|hbckc;xZM!YEEQ4*dCv)j7Iwh7; z@XjWtd-{D9XZ)z#C)zFh*v0>+*EX|czDC4-eP-Ed@&MblmZ%{gM^7WQQ(Qh6Dpl)l z2dDD8GM@dxQ=k;f1R{)n=Joa+;9w1QzIm2cG_K3zEXsz`Z8o3&7jpDZuWOBsvP$s>InjN1!X!_1$#?fT-S zRsZ1}eUsm5xe@C@AyfjJFC#k3-2q}uK6dUuo$J_EbgLSdcV7|O9;LL_fE`5T-WH3& zR~;YA)hrp->rE^%lG4jVYB4}32nX3H8Ce%?Q8sjqxF4ybTp`M&I}F;hvyRo&iOgylOE3Ysb8~`v2k%RasHR74*Fk->8we{8`x>w z0Wd^qIs32#00%eQ|B>cBpsyQ8*oqy%_4i*-YYoDsmlxq=kqFq~4jJ?;%m{?P^bMJ9 zbBE1hBH0KR*8Al?50Q(PML0#Q9oJX1vc^uL#6!PB*-U|dKm4EfZ%KbYZ|iCV++)9f z3eU^8mw+;;LrBnH1t-R4`F)N?7AWuI7(Xh&io71hQtzi5h?1@Ae>qO-_$}z)*Zn&4 z;P1?Bf00^=8U3>3rc*<**m|~f$kp+FIprvLwloFkY&y1#%~`bCm%hFn948$z^HfGP z)T~Tw%+X}0JOJ6p?eVhpqw^As%M-S8XlSYpmwAHE_mPYNmRtbvve%IXu)6|Xd^sMq zr6rG;2vmrS__!rjPJ$XZ=GwOX4jR7=j_EQJ+~x|+@m?jl^H`*s#87oC& zn+H-FkFcJH+uuGPS7j9*@e87c=Qy36t4uXnmAe+70&&#o%ZV9Kw^7jD9&%|n@+lZM z8|YPj7-~Gc&Y}drJ8}Wjj~=}nt#do8%Zdk)If4u|m6ZY?2BKO0@4=OoT(!7MeaIaG zjC5QeNEeN15_sRxAX0n6AAed*S4p^$JJyJo3!Dv&6s>LplifM`ScEwPhEliZVAGv1 zyU(|GF{lN5q-(cLwb(wmdyo3M+>xqTf%pC-8PcV`mp*_}J`g*QE7)hPuR8_%sPa@^RLIs)5dHY0&Rl7i~ zE;2rkG(H~<1n34e=HxubPh&rK)8}37eL0fYJroGzmws6fC1jZC$QM$q?|n z(20GRY(uVaH_n2w5B0HK%MC-5lNx#0hI!kc%Av}cjV0h+6FccjMRTH%= z&hY5?XZ0@$| zII?CcIzL2D1&e!PP|yP<7+W=C8~FmVRZ@Zxw_DZ?gyrdk&N;79g0`bl7Q;Igy87$z zFl5y$RUWKSsdDdb)TC?y*?vt2PVT{?!wPp6U_BJB!Q5S)tMT0}vGa8}*DjpBL*W*i zTaF=G3z_}WV63y2?>}zLwcN$p9jGN$Xf?&({daM+f^PMe%IVJmn2S%Sbibw44u23X z@~DZtH3>BWVu`5YrQ(uCh_l3M?$94bt@j?IVXv#*2?D2Tl7`%%7@|foOqkXtFJ)C9 z;D%CGM}f@k6A88e)j*bz7 zZM}-@`;)f88=1cau=D@;gSME)AYnKPMz@F*%k_X|#bD>hPv!ix%Ku@u1WL;`Aa9{5 zFXIXggB=frm6EN0TGLsOHk_^OdJc68fVR#(%?c)G*>o z^|0pE2m{B077*t86j%y5`miK;dgS*0PG69@1O}b7pnU^_V_bxY<26J@*=Px%O`T>F zk^i>xM{unNS4VH(%!Qzw`EyM`K@n(MNvyThK{1SO#`LKW(eX`HqNJW>bV86$xqCRk z*Gt)$92js9aCbu+QcEsv7!|~?CVRY4DN;558-&bdg-Kd|| z8nwy`wcgFgLFl&-HQR2fGId;S0qGD~hWbYl138D!#zlvgxBbHmjiLrg^rvB+(rW=l zIDmHE_{V2hlwk^<-A$gZn1k#!L2&r=Cmr*O$ zDB06<1UiPcQS1fMUCyn5p0`2d)2p;W~R9)h*!IL^`^TmcAEbQ3=7vSfl-M~@xwt~A?L^gzaDP5w}jGlrhmb1G56lRg_DE>$^HaAAd{ zv}*9@Q#W?GhS-X|%idp;5MY+gakYK_Oa|Jmdg7n_+aR8rS@7GIp3G0UqyZ8^bFx_` zwNo0hH;z0^wLGFEpM%HOIBusI(!C-Ft~JA}@>iOb)Sl?K!h|tkmzIsZ!5SgA)v%A? zq+y6qi@HTZ3zkTm7xzyGs$7StUd~;mE%NvAuV2eJc(;UZf`69a+ex{ogJ6dOoBUz7 zjqWyg)$l{%^q0@z68b)=>%o^@L}ZLrBaqp$g*8zlBTy2j>6r#oa)m2N7jd)gEP@#X zk#W?fo7W#1*Dgsw869)nF5y>5iY7C*hy~uvxm@ei){BCCdzw?0LHRv>>N|LS+^&rY zK5t`h7>31PmTY61_-e@I3#f>aV}AaHl;3BmUZ^j4zHPY)2+3}V_v;lnmKGerh{1VXdj3CT zy<>1@!MFAu+nSgY+nzX?IGNbCdB=A$v2EL$*tTukwx0aYd7i5Cp7+zP>e{RK?hn1H zYxTOWABk@mNft**!hQ)6(Y`A_LYTVhnCI*V+n3d&#kk`!h&V zI;#6wY;RQuCp_GzCtb>5$Q9LdFeqCvKJq~*H-pQ;dQvm6NLq&)Vmjp}{9o-SxBXY$ z`bp)Gm3RTAQ+edyeb-H(sut10@TQy#D0Y)YN-v^JRBQx!h7gqo{<4xcSMBXOj3Lx> ztoee>b;>flz((+hprjcz9f{Rd`GyiC8~UZ16oQpA=^kXkK#eFPi>+rTlyY>UuVKMU z6D{3KyVZqiB-XhdJV2y-t+sK)jl%TjULzkJiw&x+n$AS6*rP3Q??WY^*6_2j#H^V} z0;{Z<U=|ppjaFr{F80;EOT!Njkck6{k!j$SdNVMYU)Bj)C$b> zB@cF-^-2y|=a3a>1Czp4fG$yWjzJchYS7w1UPQi#*mm)!j>xW7`XJBk2FauhRtGDu zh<^?a(`moM>G!ZO0AxcIs?Vq*&EzmHG0_J`Yp8$Uq3+-A)^yZ}!oNhH{Mk0v`eXM- zF-ANMZDo8EK!(W_fIwg{BU-$rJ1v{E(`T<{riVD4C zDFEZsAuzJOkobjGz1#86ZLEe4MDC5OaU{E=Do4gL${WH%_uiw(j>}4PyV+)I)eauW z(Pl$w8j5GD$Upz-o0@J^)+r*0P$qG39XDRCbInOKjbB31r`O`zNxBq&9jCN9`T=q1 z?Vk%|`nM=^%)p-DZI)R`V@35sYNMnLgtG4@xIw-4N4Ctk17#RdR%Xwni|>o1@lY;; zA1o8LSan?mM|mOi-4AS`3YPJhyaR2`B07Nh-u%0eGBaBM@ZCmm0b-VSqXHW;!z6b_ zlMZAAPTTswYL~r+)HR^~6ycTzsI`}w)9XOXAGvP1xIE&An3#n-HUWH6iGH}ovmB1) ze?hUxGYOcAoQwXsS{%-^ca{pT4pQQ%thRpJ;dA*L+Q+1ZraKES-%rvk-E{{roxEtE z^`aqI5=nfSo%cP$4U~8P zPu_C>Pu}AD&Rew6%@>01*7*piA!nwT{gzVh+u2mdG8^K5^`ocVjp0kfbmvw^MUw5i zVk2Tp`Rf0^MY;!Q(kebS*Zhcg5|b{a(||k}y?4`2yJ^q!8@<$K!3#`sT3^iOdDYo@ z@l~ll=izzfifG0cua_|3OZ*FrwI}kAi7&N3Eu!*-$C)WauYH#E3K@J42KONkFyaABs#*Bw$9 zrm00PRFYBn^WS5h3R=NMN!&Eq_SW4sM{_&%6vKMZ{cqXZN~c)dQ8TK87C{|h2hfvL zzzr3Kc>rk`J~XIwznAT;yekR}eH}i;>|KPv;Hr-)wBI=Um=H1l6c^0M0Exsnt`=|N7@j1GYR|W9g#uafMI=ZhWHgA#S<&@3p&y zupzUNa~ts7$cj>-H%<@dQ&Hw&6AO6H!PX|c)DWwm|GXCsBN#m5>raehzHaCsd4=G> zZ8F`)+GyKs%*U(wUIxogbWbgvaLZw0HG2zu>smu)&`?Q z7nE+ckhR9YGrHBh?eLPj&nt;*3fo|LHzBa2{zplleL`*y=k{&Cx{LFapasTT%FJX) zJl+YuiC)|j`6PT6At-=SD|!lK0!12vMOSiq??9N)+&oF_JklgkxymPa%xg@ z(hCa5?&I52f;_Xgf2<>Hd%hcQn?Rw&yH(7OsJFA2*li*(UG<&P7c8jiqR!M?P#S5K z=kO@jUhM26(ZGFzL6^gmlD4|BjDd#Tr#(l_^(kqlf&(xcJ|g+KO!~6 zTY5M%9xoe!j+s7IZ45IavXx}#j%_w>4alRRaKD9;#8i@!_C7q{cM>3sp}E)s#g6}Q zP_XqvKkS6s(W+j#*!_3IGn@UFqirOJS$?n>bfVK<3&tr?w{&CxF9dFq6THOZw(A|gHq^nrXR z%)2XXhrm3>^?E2;Y-bj9ZUC$r`a8$~RMOY63CDZU5JRhTAOFNjxPXsg2K+t_A z1Rj;k$J@vHU+eU0m&6puKMq3bpuQ-4A%C%C|B&TqKj*`DKG#e2%|ZWhlhdW!AsGHC zV9#a^FR*mQobduFYOmKl)wQ$r$;+LNoj#F=kT~ny2s-fvzHX9Ol1#!1jRnTU`rmXS z?*Hw7P|3Gui#Jkx1@(^X-;U2xBR<#EV(o=caq(d2kBHI_cDp?RPOdl$!ct03JtAlS z`Jt>LueZW)P0}_9w_nrN+Ip#@!oTpcRo-Mb_4T-u9IbM9sq^r;7hF~f&8^&2ttUx+ zW?RDZUk#ZTr$E;d&5_e2wYG;dHBO+BDn z@a?+#F8m7l?5?ZYc4*?1$(D1D^omipi|4Dqtkd?jv$fg%BTNPH-6-+Yio|5W)qCUa zbocB`4UyF8^Ukc_GFtEZ1E*tonxEyZ&)?$$IvL%--H%86WuHuue!7XmlEf11t5ZK! zC`~rm>ekcU(=lO}&9EM}0jpmSbLPT{I06?jwN<7b!No%yHuQgtERGU~#FCbiNlNig z8#8^i=@$&!j3*51`0%iT3$-h@M_{&E2YlQY`)IDoe&vJS%YJ#VG7K29_C|pF=rFbo zd^{ZhHOhyk&Ar40Q7%2)DSj+nlg&*XzgsX*3B#wU7)0liOn5bY|pv_k&GA1X+=7xATb=dteEZ zvy;rOS*3K;g93E0g#i`;OABP95oSYC}!c5Qs z`F4L)N_rMVQ_$}Gx`740S-*&S_HY+SsBr}zyCH9N_I=rzUoF%HKVk9}VS*?wG7#Fo zBQe{cr)WyTq}qR$%3^DcsBe_`l4nO#6jjt4mzk2Lq!_h9@KUbom$1_=1)9St)`9ej z;Uux;Lr9XPmn@4<*f#R!F;M?@2`3r?QpQo!niZRX30zzuOcDLY_R)%o(2l>hL&_N> zTLp=JlZ$k~I#C@qvcuPJS?zPil`mhb5v!~$zR&f0&P!k1ysS`&N1R!;x$r&0YYKt zJ~N!qbA)>V1AETzZo4WxDp)jQ#9xduCc)T*xkw9F`(7(&ZLc$>9mSai`~W>CB(w)9 zy>Kg(gq9z%-K-XhZ7&53()@~qSS1^1Fo|hA5+@mHfG#_hz`zRKxX2GTK#1{{GuPCp z3t{V`*QvOHCGp+S03WuKo1^~O!Z|o#ZKcYkj2uQAPZ`v4)Em;Uuw#2NmPY~qXIk7i zK3RmXA(^Dd{uTs`wgS)sy#LGYc3okUNwjYg31f9y1s^*lew*V?06+AZLa>(mL><7p zEkur;E=OD1Xs)})Ef=FU_Vyzpb4{x?%&U#g6mS(Jn<(v(7tNbmCi)V0pGW%cM%L_MU~3!*)bZOFaE zio)%}6iM}9;K!p8%Aml*RekzP>DXNFz2bfHzk{^ucy~twbGJV2Y->3hmWi!Odk0LJ zFaPi*pll#V1^-J0?igfu_xAd=>_#7~GWD?oTaxV~*;%cf1iR>djn`fnk*ulHWE(#p zR&zwNX6LqryU^P7?Jg6dx zO*8H($L`^YC{CK7;xILm#{k(Wa6A%H4zU8o7P*rlFNE5iIR5^Is3Vb9m!K4`=B5Tx z1#%LYrHZUWoOo8vPW2h;E4YFxok~Eg&j0xVjq~}pC!OS)JlWE>|a~_;7={i zq8AW}#vZLYJoq$$8zy$dJzxSuhmRaiWYRz;AD`e?KZdq zGsy|YwxL3GQFbl8noLiyLnGFYDiLB%^ndeWe{EkIe*gNNYwEy^aUNA zfU0xGw+Hq`bAEdVjF8;_ zV(f%c8up;9t6ZegWB*$X`$nc_Lpe4rR`#asr8u6Pv0~i?2Ar#T>LeVZYc?!~?Cv#A zY8J1PB?NPv`|(GDJ5PtW8QIdJL|4?J#~&ilIAz0Pp)>2acy{{ArWN(TIllo35jDmo z-n?@abC~>i^?$M>V&DW|i2A^I^$KS(CL+XpnvBF~eB+J#o#iuTYliSNo&Z#fY6v8T z#!QRj;Z!gQ?CPh(a`NyCDi6(c!c=uhRiw@{7@<0@UlT#M;%>NHTd8*gh=br&(j!hs zYVnyas$4t~+)6^!@KP-C@cHt4LTyI*lb=_Yfs?4EO4Jf>Q_Bv8PE9YQvf2FA7X zNKE4O%5MYHwE0jkBs(oQ!;gVqJqQO4Fy5@wAAdaO`B55VoIC&Qm*J$OpY;_UO^BtJ z#K4AdKwqkG?`Sj%54O&-6dzNIe~Q4H(y8R6OY!u0FqWl|kJ+~_?}2{&dv=+JHklu5 zdcN5uIGF!p)l!pN+~Wa8tu%tXdb#kZn6U;7ViX7MqBs2gG8HNcv#n4}!A259t3ShB zXiz1t6Hq{LzDd^DCWXWowTAJ{UUi|tWov_KFxnUcWL8+pw>=7>)gx*g+CjISDL@=9 zN@CR~_G5@aJ%j`9eqQ`RSwoUv8%mi%Hz=B;!v%5j~WMBpT9jJpPM)e?q zC`X5%epfHZzajy&cj^9->G5tV;Y8PbA9cH8_^)4lhP1u*H@zqq)&Z^&6pY;+q@hZy z;L?0yfDmA|6b6T9L+NIyA@JyG!nX?9B*eg;eK;8om161DJg{k{cAhIvN9fQjtdTG; z)j_GM{J179P{avrg8blXZ18kV*Q5Xf*iHH;i^lam7K{-XAS$mNP>zB^K6sn;!zK6C zaoR?S;wbMxJzswKMcV3m(6ZO>+ITFlHtloyH$ITO=%6dUVO$bH2O+|KBnlJEb0_S2 zkTf`C8*28zBkhXjO&=4VN?ua!^S;7zGifK(yN(aPl^o)3b^x+9QusRO2=&=3RxM@+ zR>9q!9l;Z*-ByLd%d|oNRUJV4iKNG^&JUBgc@jcRDU(Mq{GPBK`hnA@ATB-wdwu{j zcq&JmY(<8epU};*w2RE#k7}`LjBYkBs1}fAJU{Iiq1zb7rUBpX-TP({G->Px&>=S& zb5n@Qr&Z&+9zEdxqiT7Xma_FA*8~;K(vB^p)X56;v|;Wvk}gb?aO#S&-;zzuc+T7D z!{Th%O5dL{o=iF3LKf)*vZcjl=r3V@B-5>37Oi{4P&nzN z4V?pjmJOcdmeeyPUOC6%;c!YK!^I_AdgQsLczT;KH@D}I6F z&TX9KQit;bxrvzgLb1Mq^;I^E$!%d(RT2}r2zxqOb-5^z=Q2t=%ZatW=jiV$f4omW zJY6_S>7Je5v4(zR>TSWn2^w=3^MtW8N~k!H9Vu$0`|w*F5!09!F-dVur~pd5-(-Nz zKb@_M{5_UgJ^p#3v5uaf)j?TU6#W!xd67^eN5Vxrur^8Ye?;^SdGn$Xg(^isN@~E; zNgoZgKZlt0!M)GfNkA+@zBfftM1GNh*1fqo+%q4{+d0ZMwtVO;-j`!~d#15Ka~LcM zLLr{ys>TiB)O>~~5iptB3;xPM{BQz72RErXZ|a+ZqcJ*%ZP&0du60qYqAFZg*>7l3Xxn}%e?5apQJ&cJ<5bRJe?qK8`e@-NZ*up zWRgY3xcsTt=V*i$B{5{uMMjgXeDI8$5Av-kfjCD&%GBoMnOXqPxzQh+ZnKp3wv;D> zZ0oO<=&CQT7V~6Zt2^H~)~2!RcJ%|vb_XWW3>Yd=l$jy+SU7KC$S?w>x(Gp`Qk~py z#Vs8wu~fpp%M%xKmfwBb#(|9%HNE&1w{dWlDWweVf?dZzSH z+%qdXQkN*ejg8l>`n!+0bGVVS*f@h%7QuJcQb@6O`MV$9@hWSoIhznDM>kSQW?Gii z@{T8CUMsQ`S43x|0AJt&pFmh9zZK>t)io<~l?451`*_m>GK!aP7G!r^vE@~o8be?> z9FFklQy08pmw@YDQ}w|)!Gl5)J!tMKiVdCK{ps{R{!GqxBKQ8&UTKjhxz9uR)qqB_ zI#YW>Y&kzQnltd9tM8s#8TK6Lr)V(x4{t<=P1H?D6Ywf3Ib>kbDQoH3&U~?;XVt&V zx)x_Cf0tS#(x6yD>}dQA-ulvp;)MD$hq>e4JWNwOa%GUT48a?4%Si9*o^^it^=XPi8kYSHeE-BNA)&<2XG{T*2R;j z{IvNTQ_I%yjRq~fGmaDgfu9H{8h8&*o-cngx9mez5I-kIh+*r_;)0#0wubq?<_mR& zAQVOM{<`V12#cP?|Fi*0ZSU-`1f}_$;F->YmAvfZvA04Q*)>vZ^sgF8+~OhJKBM}9*AkD)R#XGZUf*q4tYn|IdC06WFh4K%U@)?|QdaYN@ zco1ZF&)lzg|3uHG;h^+ zlZ!NeWh**kw}?tr*i0APRMN3uA=>$JB>25G%z=>cSwdfbdeQAHxQWK-r@4AbsJ8c zydH>W%R5HX>;9RDw3&#g#5a}@?Q&$$GvO-vST57pcy0EhkBw;@Vsl!8fNZd$J>UID z5WRUWc!ZqrkBooax7l*iF^f#)=|P%f4dJ$X-@3c8#xrY3g_3x6HKpPGKClzO1xEyo ztOswbKCOGmz7}eJb0AQv+{of^e~kxS!iHM~SAXeqoAi3aZP)Q$Q49%E;+#W1LzJ~p z(Y`pnk1S%jhqNL$1Dd!w%at8Hf#-_hfei5w7SR;9_X*pGD*sA|5siVj>31LfzU-^; zdQO-=Pgh%fK8^hU@?f^X-@Uwx+eP_tV7Y@G-cxmU7rRF%y!PXJn}$65&TChq##u zyif~LV`@c33C-9#F&N#SmY-!Hi9w5yJtk=w%7=|OVc0(sQU@WRAk?f(}8bVp- zvo!g_grV}4Dx`sF)7#Z$;*?MB?n(k557g(G!4|2j&0z{@2Q9q%;FJ$uSU7%!2B%a- zdA*Iy{!odC~ZaMLTE3SSV7kp_J*8R^DQ3 z7(Ky!maw-=&f)$AG(m+=bVbtYAd4Kek+giIbpOC5v*Iqrjyb2LK#N?6;&ixyy*AD( zjdF|cVOM=mB-{IdGP6jSHsOB>?J>O6W&9%3(U9Rz>urR;_3G3WNUdfrEq(F$H3q6@ z@M(Uha+3sHl@>EGA}yW2o$s|@cY`!6sV%0+=nE*sMb~XsBxiGY0was^fmlxx4j;k^ zku<6!_w}^YD_FtD90{ASVVvToP?x!}lp+$MWKt|J{g+}~+n%EuNOdy8K*5M$N=_nz zVO>EqJbRT@D7l=H!)DEMSZNtnCYc84l)NnnE|~;&U(_7ajMpAB4)2f>_$WJDmSvOt zXkA`!!{2y?wtr_9&CfGjQJR|_e4kfB>fP`&>;0eyfIT<8*`eZ zL+uDvHd{n>-nDIdz~+!76OUfxxfwC$(*f#=-IqKRi_&3UTH6mVK!ggA(QoXn^4q@K z)tfuGxcew4C?1rA&Ta1ANesBpI%sRLO+rZw+59O)7R5n_tHNv`$?BRntcvR;GZNl8 zT&j6ChC$UlMuO&Tks=)o@Dp*ud|c9CTtiHM7a$-fSIIiTJDNgA0}^=OZ8XhX zJQ2wd@}E~%8!D!ddNg;k3<5(cLjH;NkBYKPh-!+K#*(Vc*t&Z+ypBDn++R}Wc(?H; zl&`$|wsrF3o8Ao_kiNQkHm!WRdOo%4Y<}{2QZ3bqv}mXed4Gd?T;6oWTSD&mTD5fa zMyP_mMyN&tIVhy+wD)OR-ynYUj`hzxEvXSv&fGU0Uk;s>0|1nhpFmS5F6&>21bRdz z5m=#71*4)uM`E=hdwe5#Z7)NTf4C?;j6>1Nu7^X24HwnCBvWB6UU)h<V;0UFu<`~r~MNKQTcSzwk6#WLe*)0g?;kr(cz?=@Azhu|&zi)w z5S3`ydW{0Io7xV1(ttA8U5*|`6zLCHsHrmb({TbVWGw8O=!N3k0cmcW6O_>h^W6uw zw~}nxrz3j^SIzw0jLFY)44QPsE5-uZo5v$n{Vq>Rr4;wlc|3fJR@^Froe|EAHx9S3 zu%^WE53Sr`WK%{7!4i{%iL`#vM^*GobLrM-9or2=#he2L8Nj}S6G~e=^2pyxKs<~^ zTE}*=O#v>jmEFl;P`vno=C$&EnEdyKwGF5yU{HKP23^q~Eenkuc@w^#rZPs3Yd9V# zN_A&ZBMRCC(Fd@4PY#W}>ceXu*CCvD?o7IEHtyGYnec6b!{(7a$ImMZ&5jZ9i{D3f zu9WzaxY8uw*U<~n4Uc?Nzq)PfS#>)5I~v!uFmT^}YA^xTpp6*?pPCpGW;_N>5H>lK z%gMtdP(+5291Po;hPnbI_a*vE@R-uV&XP{RaslKNlzwQt%5uT(9xEsPhpOuztO;ix zP)#1fReC)F=URZ;p76Z5ZJ>m9&01fWd8n#)w?xqv2~bJCx>MYO18u%~FO7S~*F|U= z$AuUDD04}$?v{bm96>TGydv)>$uCAcbhrA$43%+FXgBmRp^{EdZ4h75-Y&PS-1F=x zC9CfY2QCyPG>1oFnTc|bU8;A#US(8 zN1vLD9+p#$eFFH|*T^;%#vQ^GaoZp;ZQa9V0ZUp=SR`{`zE$!=S+UfpEX+nrMaPBW zm+(_+&sJ{)a3Xpjg7+iozWNW(IQRjsU>G(sK;5E0rUDdk!C-}1Z$7D)^}KSGW5N$r z{Os>rp3lq3_$qR6*JF)I3h3Ib@--lGKM5MK1L${rs16(OViLX1H?&|lD~W*MUplISP0Z=75-=~- zJcr+U2ukk2G`ojX?qViVyfOY|tsTY>U^RREsY7Rt9r+B3VY~i=+f(y)xKKa|doGyW zoj|P>qNoti2K_S|M#hF~R+Mz2*@&2)de$Lt29_$e>;6fcjr@$3UDbk*hCy=C0?U%{ z>My*(eFz|r*l&2K_3e#g(Tn?a!%{6IF(nQ1ZyQ#)x^lN4PPc#Pt$EkJmnq#lP(=Nx z48*8tb9Sqx@X8gJNYamqJ4tH zdNxM=gTh?PL;|A5x-btE?+pZUvuUQ^!5@=`?5RV9w(#fR;EVS>N_8zn+*-VX1+nx@ zMSwEN4!s7f3rH;vNWWAlX*I_S5R~;Hgy|LRS*AkEX@BXMeFGf?ICn{lW(s%J><;$X8SXMn#V3YJ@y#=y-m)s*zbcJ5ae0kD@@W zFfN^wFe46Cbk*g@0M=InErCz2*a90jda-tkX>R2ADU1ly?HNpr3(Oq|xO>fbXqpK;}Pf>=6UI+HDQ=PSIWp#02ze&`5QWfKz$7$U|?dxrqkc863_rKT#MvMA0BAIU@{BFM6 zT{-?CkA7{K+}SMRbr{~3U?(};HW8jkO*-nbhyKNg_45uQli%|zitldbR;DE0F_({E zm-XP}j}I5vnbr{gZ|;#)QmFEZ9wFMuNj1SvhhSbNT$>Rat^6d`@IAwGqT2{(2(1XL z3cqDQZ5~g*8Qfwa@IF?JEuX4J?=sE&k8RMxBsLvpP16Ynz=-e&7n6*lrtKZvTLH4i z#(EVc&ZS(q?FU%*+h8?!;cF21E4*d0mPR>fiQ-qCxQzqv9Mp zKXQcVDc=3-I9F0Pxy%>Oo8czkpZ!`Mt^O)~pldidbSxH`z;NwX=zs^_DybZlF3$ux zd1Si<>is6-HR=x!?}*b|f8wQnHZa3zFG0tu{CG)A5Dy3&oROK@#!$&7mo&|dfVxlq z;3!t>84rn7UpZ6F2H%re*~f@g>2D`Gv3w`soPpMbjNxyEmU_D?!Ed+l`a4SIfb;Z$ zV?yv!tt{#%Ahs!1zI2+jAU5cUfTF5A@#x;{Dcm5^J(_Qpk49CJk}_8alGQ17-`l@< zT=%F*k4Igd)F{G*Zp{=q-hAAvU;em}tg8g>Qyfabv;|4}265Fw7q7_ENpqgUVt$vm zUuP}FGH|)=o<9BWT$SldFsS6rWP98ta|HNUj~;M`y7|32hOW;!xv7{?%Sj zqW+3@lVV#o{L@uy7a1!}%35<%wbcs$7@UQQ-ebPyY!`sjeZAgKl|UrBH>SiO%uqy| zfSHpapz2R#D=i2P8}?!M9%LH=1onJwS(j~pShVewfVqlX3Edg3$4*W$UWsV#n{Okg%{hgi2R6GwuU1vl<*lW&VW5>^|<%4y89*A zo8{6U!4;|uPkpY9wjGz<&7gmi3*>|lc~IVFfgaP5Pl;BwGw@JXHqU4Gh#jMg4Tn<==QApGSMb;2?L3ZZ?t0 z0bv4=Nq#rmL7RdY)Jhm-Vx6&rXqx!Bap-)F$z54gis5H)m4(f_Sru=}G|q4=WO&@6 zz&G@iD-YvV(Bl#>xZ^6+PBd88h#0&r8$QLIbywGo1oq!bfe-@ZxPOd#7676##K;^=3L%@fZ9c=) zFCR=;CtyYxmrD@>L*hGR0JA)V;ae(lQ0Ti)txu^BYG*6Q-fzE7L~5BKejj87f`6gS zs^D)4@FkJ?H3dLyZkgDB>e0N{^pcwwmD^xe31{r27(^S~IhDEF`w|4KaTtxP1Jld6 zez4qFXqoRP`Esp|&M3LxgLZpaHkZJ~x|FU*BH9>yKvM2WJN}7|Wv%-M{}06U^wrmW zt?Nv%-tH#Ah34+nu30yo0RySl69JL71z)RA83gRUaKIq>xgEDiLc^tBLnREe(VHKw z+GT|Rwm-n*NahSd#_H4;(F)S@9w?3l(y(#w*D{iK4Y1(#OYmRkbr|44Z;rx;wlQ>U zxj;Q8hwI)o-?wuUH5NToLiHOm`lDC$N4OIzmGqftfFf7}hR2O}+){8k!!Fzx&vw6> zMkR|D&L&|voKWLBn^w7SLV>r;99S|~4z6_cIEsjb9MpTKi7(fdlHOk$@ePNx-7xXa z0+mcO7*7-KRbr)9s2VGsYs}kE5}XAV*)rZB7O#i)Q~$Xdj*Xr0q1{)|#adwr&Hm%Q zh7jB+V?^86=D^+|wZ&bLW|11~V{F{bPnn&>k0r1DdO{N~# z1_#5bP4x|a#HAvmX4zRBAIQ0)9i`k%2u@;ZX*`w=N{aC$+DM&|BE-?^Cl!gL%!4WE zV3Fe(GKHYbU_wxGy@w4%F#5%XUCs75+)+7sm%$<_8vD$PFodccBs&M#2@Yp9`0Ks) zt#}$VC-Gq~4I*Ewf)vesM+GhUiBd0E zztqogK_1$$9>3K48P6VBxLND@hs%W%QfJt{72;4t5t^iIE-B8MK3C?Uaq(jACZNu` zrTwZV49ZM!{w^5PnnCQhZyr+exNWXRd<1=Wg#=cS3nLv!cu}vv1 z?VQda{kVM!NB2*91j+!;zWE|O&80<}Z9 z)|e3b0Ngt9rE9Wkj{4{J4uW4e>QFUmUfku_0y-p|6L+CoYcjx{2 z^+CHr0t$k-A&o9kZ$()z{cXHtv-)~?d7Nw!ddTxmDqNuqW4VMfqbUI-veyp&vXk=I zj**F!cIi6-B=WV|`?W}BsWmIhT9=;TK6@_u-C@E7JK3$}p57DLuUp&Qz~G-ZA7qQ^ z*)+wAsnw*{K+dLYWOkv@QIC6cV}^_1b#~PfEdivBW5%}H^J0HbM5%SQk#!oj* z3ONNG)xMNA8mBrvvH9i3CJ2BMXpk;SAJ-<^0BO2YX81gEtV!I<+B8zd-~IcmGB-nP z)tF9G-AZEE$U20VKu@dbYJ+MG9z8PE%5#FpO-{xc;OTFaLuC1wHKt}Oum?fLjgL>0 z^Ru36{7*)o4!VaX9B0C3k3dFOz<&P0gNfRb0n$VAzFcZc=JHe5om)4<@aocKXKsTM z86fy%!~xj?jn1f1EDG_%lX-KfjLXn(O99hmXyVP|aMPxx0UvTNH6&2dZ?U+wx~%$* zMv2~#>|$&2q!a5R+HyMN^|c0Vh>jI#=Yt&$h2P#l5cCOMJL+Qf-^Fv+3@Bn;b`A!% zZ|9*LtZbYNY{|?fkhmxu{~zJ`|J9CzvvF}IUu8hy#v_iS<1({- z`<1f&zbU>8@eJQu^8Yaf=YPY={;&L;g)>=b9ttBlROj2c)UpbS1m{0ObLRgS&ce;k zz|Q?Y!joevAmJhZBWP!izv)I#M%Mk7tzUn~;WBeDGcd6dGqbY&CxV%anSq7#o2d4^ zkpKF1WKORCX}HP~uh@(M&h~A3W?B6WD4WRozBFLv;NbXQfHJL(Z{<2FP+DILL29qat#ug%mQpP07&Fxp}mlwqDpd#PZQPs#EO4IXSCENRpm0}?b|Fyg_FQB8d~x(=_~@( zCAG6IT|JX(AFtGnO#->}2SayZT|n`i;fujTOh-q@mcWOr=huOS%iGh6Y;ozx zQ08bn>+F3sZ(PirK9kR>#wbgZ`#cU_2kL=lEQ7XO4JDw@poMzp%lBo6`TBsd0FWA< zRnb&!VvaZAG_j!*R2%_g-d*!rU`Kdp*tnW`$m!Uas#f=4Itg61c1cODGZF>BgwXAw zAvh0NZ7{R3nz~KOs5-`%v+QXf;;Un|KpF6-1Gqzs^Rc=u^yj|PwnA2dG4bs&bpfH`0_ATiyq(d z->&=%Lh&YazYB1gR73Nwk=ay!&J90H?d5+DH*y zS_BBLUp0jrtiFP12slb9*1I_V#Oa~`e1~Nf|Ha%;jRvNSqo^RgvfN}{Yjo2wn^QPV*XqlI9B{9k zW-a^Z{RbphCfdYQgvlSEb!LwchPbrMxG@h=DwP(F{vwYSPJi*=awjAz)kq<^%O7$f zV_Xpa$rEYjL^Z>DyKCoZKFTMwPVulK2cha1RskK6?`(s#2-Ku8?!6e^A1rFm9$_Gn zKo^oOPcrkzxnF$oF?q0YYv%9Hk(4SHp3WS!R|+@#A5+h;w@I}g zkIZF>2zoYJ9dt8N^lpwhRs7c)$h8#rhE;knRADT+#62TEff%>f!V4~r7u&YDIVp9b zrNA2{!Wn5u7amTeVmDBoQv7}gwaq?M<`qk;4m|}c`QuVmjVLHmlfrH%H@fJl5~YB? z*Ac@X`Sh4ChJUx0O;k3eIGZHQBXYu;Bt(N8))fq0_`rV&xh!$ncbi_*mS#wKeJ2sDMURm^S1h{EO?Wg0*B@zjD*M1Pia5QuuzP0OUNrH@ILlnrIA?Xn8tWI zm!NM{^r=5shg$@UWf>uWxeNZ0)Ii>Cnq>@VP^w{8O-b4b)2^|{D`waC&9voza&C(7 zAO&tXOAjdTEI8i~H5C`?XQUg^YaJ;fubl#4j`Lss;I|5DVF^_n4e0PF54Tg{p!^1; zLgo+yd83gLv^F7ma^i}(Y%%bP&LNa}$A5x!nk`~1o342ZV#B86Tx|L1pnz8PUu?;X z%}0?)98N9|E4>%#t1!FEHKWacgG17d`vWbZrhX7#qR5M`7b1{-N-Q-kWFBG#2W4IL zt`?0xlsEf?ZZX`qh?{Oi>@Y3F&)5=zhlspss5p2dfR@F9?kZpE!o-O1p%N!M!b~fj zk@pO?67EiK1(i0cX|>qEHUkIK;C8bZdEXX1B?09{?NPgAI6LS{L-vCNxGeJ>nKU4& zMJAnAe_QDHPhZMPtzI75FVRoAMYK+fBbz@Y`(-7+%HH6L6VG2mTMVt{aEIM1{Em-D{sc}W`k@@Y%Z-4?Pqqsh77~Av#F8R+*QB3>LD^V zqhubTcQf6UGB>JZCxFH3lNH1eWo-1Jqk^;-^xpCdS$Oq>mC|_auQm0Jp(4p18Fgt{ zd`nYO^~T99NDwJ}c|w;ZEa%g1oY7(&6fO*rU0-g-(p`Ls|3(iW0mY6n=7xaclOdHsJ>Zvbioe9lwm6RU8e(BZ zsk7>4xrui5=;9l_PVBjW!Q#)l(8y5i;hzn(vn@tp^J$_ivG5KCvb$*V<&u1(_poL; ztjBg`!cD1Y7)PPuch*HxX{qN~pdlD58Y7MyMy#)ne-r=qws|gJ6yYE{OUBa~hR;2F2sW7nkFSTZ}6%Yy#~i;d(hGra8frMtW=-QE?s}3#B zW4oEg<6wb9Yj7nw2@>Wu%e7-}gn1FWCp~h)ThWdD$502&yKRLkwgFv_{|X8rJ3a2P zGdb;%#>xq2XZE3Fg9&SkbNwiz_j4_6J^!9SeeY2=`((#Bza>un3G$E&MWWJo{`CC} z&&`xd+CTNQI-GSM>`=&?Z^$K@u!_!b4be0BiU`2ty%$k^!n?)6N)DetRZt@5&UsQmwv-f2Mk4+;!TJHYq|WfIA*K<)m9k^gsNqqP0DRR=Ai@ulU8p zjVA#d=$QL99jp3~cBb!OeOUbbODN1To2%#D_@e<8YIeK)vwlL^&!)bKL$i`9ig7s~ zn(#GHl5h|PRK?c4hfQ48edO|-#RYdS_VbQ^`Tff2SShI(!Rf8wC8GX?m10aGQsvZF zoT+4GMPCqn_pd)>mCw|?O1KEC&*flo_SqA#;o*V1{wYS2nXCrF`N9f|k}t`1ILA za#)0pxn}1s0f$`qHdSrFU&{d9dn^%-=p{vTz02uU1@%9$f#BTXzf}B%72hfZCR6_b z5dg)X=Jd1oWpF^nJ^NgmRgCdQ7ZFal&c!ApqU3P;QinfsB{eJ2o_yp zt%*5Y9V$!ZtL0E(Ec|SsNJP(8c*ekP@xV}ji{Ibb;5IKCc)bN&8GJ(!6q9Ip=HLCb z1=(G0!DG{k=q~x;>-WP~3OM=^|A(u0jE*$ywzXs1wrzB5Cmq}B*ha;+Dz6 zQBLC|epDG;Xi`XcSgh`~{7+^p%_`g3H>cClsOs^jejO{QkeGR=ZmzUTj$J{aV^lFK zK-)Mkfui~fdodKzS{C1Toekx=&x#D^_pA?%LW6tuG`Cnu-%`yhtV1^Nwbe$#1Q%=HeMJ2Ws``G4f3W}kvNunR7 zBET{zeT`Io!|WuA#UrM0&;5ry4EMV--V>4wqB046;6#Z?+tJQf4K51M0lqD^(88*T774W4Ju?+dpKq16w>qAQ?L}CMYY= z_#Ze41`7uh*LNs5>-PiOcdz@O2oNryaR(?~a{UlI7$;XUDi8}O>G<9J2G@V5eXw)0 zv;W_%>x{0h!=F~v|AMZK?U0p9B%+m&z$8q`I7O8r>a_WdPYi8#+0Z{N;Q5?Kq8|4F z*)eG2#I0KtiK9TMpEC)PhT_@x^wM^|`oH5op5GmI0aK04eP)J$cf={r8tZ3Izmk;0 zPK(Zc?b`J3v=L?-4Z4A;>?`gy%`G84!v>E%z>t04CUMr)#Q{uX?++qPWTh<5_q%8N zm;0rwoy)1y=kOKNrP{ce+AFNTZ`W@Z&wK-Px$2l*TLy-(X&L_@=;@eJO-gD#Q=7Wt z*EDf$sZ0Ugy>CtfX+jNMLi&b1U3^W?{}u4zWbFlLGpeOvrajNHA9~*w`70 zk5+-8PqLDjeaMs_f@NUsxN5ccKjRY0c?xb?AS)7 zL$?Evx5GrCX?j>@@fAlf56{t22%m6m5AE7vBmqx4>whvqHORO_w1Q%b4nJ%5g}MZE zS2bwq>x>?-*=yDWrbphrpEje)VNL=Q6i06V;^6kcY`d};FbfX3slp|;9B1y{2-pJd zLa@D%Fgp%YeImQ=V4tDx2<4GpB^h5C*=|+)9O@h`lq}*(e+U%Lde~~CHW%Gb*AX3i z?xRO|3jS~`Y|ZnD?frAWrR)>BM5KdAZt4~g>J)j3`n-b|8PuOSfWSdLFkAhU;iKf7 zDB8erJ>E`RxFmy~p_D!@pYhKpU<@0;5DT2AB+Tl(ZQNJaSZHAOtS)BbV>gP0_`rP3 z&~+QM%#RQBLwfAkDHx8g@X$NaQ#cQ$}qG#hM zY41Fq^z3&04b8re^K16bu>UFCe9>TnAlruLbM1H@O@1p|0anb5O(D#AUPuX`vp)E{ zBbRzhcz&Oo;7!-MT*N4sx+L!U=S+!?gw^iPok)(|O^~bk^)*|@!76UCh=nr3AA@D7 zL!~WmJ90`FU0nQ;44fVBgj?*`=Q};#D)c0`oHK7pm zV+_kEC(Ffyui4zZvbCZb#4)2~*?8M~rF~hk)Ws#Nnpq3T09h$2qs1@)^qX;bVWvl0 z@RY19cdn})YpaYy)xmGqs%VVKL~)AO3f>xpX>!W$!g4?jpOk!r!e*M>qu_xFO{sbP z?mx0@*^t7*(+)hQY@96kTx5>L2iYS0p8~ahJX)3Z{(5C0xWJT^hgvf3Vriu2CY`W_ zcsG*rP|Fy2LBbd|K_yf`|Mcq{EKbaw7An66D*r|Hnq#o`O-b)Ko4%h+o8x;cMyJId*_Fw<4@FI%ojllDveDeNzHDR3CQQ|bCqtARpf)V~e)wT;M3vcng zy*?nPZiaH;T0Dd?j8(VPyMa-3FeDg~T=3U`FE{+GQScG?kOv05)PPi zub$&_0tQPQJ-GQR8qecGYBeYjZzP)i9?EZdxqqBz%A;+4M^%&^-;V0HD=WNU1pb;o;ik8 zh7~xTU0%Oq~gJ!U<(IuX{8frW(UMy*^2(hI=3o|s?<9%X($GerhzExmG!Rd zJ>rlZv}}l$5DoUr-TO-9TWFw9Uf^OA0Sf3jwyTOMfx7lY)%{jYVA?L>&rnH#%UCas zzE=gLqAyIC5xL+w$AbRpb&8806T-3sh-&ABTNNQCH1yqoGRM*W;xU82p}w@K-h`IF z&dz<=N}x#`AE2JKLr*(^crfX`(}O?L|9b6c9WsILE*fz6{^|ew!{zJHmV4im4fMxj z*{`8kk_`bO2>#j=?k?z(NfuCnka9Q8E0w3#yh8SjVtVUZ$dxVEB&IC8d-YlRPmN?^ z`QG{CaQ1)100sZ3C+vhas;;~%+=Mekl@AxIJ=?CB5LeqIR^K2^sOC9!r?}jQjXs~H zA-pb$Xt^<)xgP6`yFrO&Qcm3tILT!UDI$`V6i{l!rRUab5#0TCJ?~5;r+Hi#5gRh) z*%z)Z)>Hp_LB4%5jeozGiBQp=nN~^vMr0wMZIv>F1Ck&qlE-)Cb&*)NoFm|p4jh^Z z29DtwrFdL&Pdxd$sV3P1HBBZQ4d-dBJqGWG;BK|D2TVDdvz$>W=kA*g#;^sH#}iu$ zSQRHvTCNi`iyPO2@R8(J3m%7hBfdiatZEU5gmzczqgW_xX3%Z5vxs+lI97CBu~fUz zdXew30SZ}7reI7;=Jie_HdPlRX7dqxkI%4D zCp=9SkK?i~`imJi^T8x$VV=?qhIlXD7JvP#4_iu2!T$+nZO;544B72_ccrTf5JMrg zddLycN?aa(RUd1-xK_78%n)1zfFxY=A!v*n0ia85+rH6^)i%VQ1_$siisg6bqpfps zUR^NWxQ}$Ut3OAs**cBIWU-w>nCqrUL`K`57-rFF@sV8#S<~mY>I#DPw5VaBeq$nB zKQEhr!Kn`0k1^`<4Zhme)WV1G^EpiCBS!}>jfq_h7s3C1pQ^mNq0j(2dYJ525tc9? z0Q3kx)6%<-wcG|F@^#YG_QNT!=iEVf1=r6WbO1=tL0rpuz47nf*S^weZZ6W638BfD z`X%j^zt>$m+Cz|d*;WfzpPRGoV(xzLeBZ&ZZ4+dl-4pnRXlfDUa_iInDh9bHd4sJrpQZ$8BGADQ z%7kXj znC*_6uJE>qcC3${Q0f#p!tZ$YE2_nsyLPrLJVMTPe>jY3>F7F1yM#OEXZH_Ny{XJZ#pC-Du&-a^)~9jS z`AxMjlV5emwrrCjOc~Ia0OLxlen)R@8iO$9c?)=D6le@JDfH!P6&Xq; zJFB};O7$zCv{cyp{)8LF6dtgGxQfvZFXGsXI;Axy>!?sQqByA&VYI<&4=d~3YZszU zWT)5X@wHBd-~!?~Z=7GVZ$Qq`y!AZ6GDag@jy_Dy*d5(s_;yz)? zRJw6>>HI}wA2)E0(O$CDYT$*2jC%a8l23Z#TTfrN{mv>K5)qb#y;1b+X-=Hp`*-_< zV=8>Ts;3eud{E`a0U=2>e|%+mPM8X@YJFHtqy6$2xKX>OQQ#NBo^vDC2xqxUVi63{oNJNF}c!#78MoN@m0Ah zTHlbHO|<7!pYM?vMXHRh+IOPFbNu602Q!bCckxF$3Hj1=2S5s~NxaAX8rF$s*6c@0 z6UO@w6N?lbr2<0Wr1^4CLeZ!$F}I`f_v0F$&A?N66vx(CM5F^m?z^l7HeN=bV4kg# z$_0FYMYL}r($?%pGJ9LWkLf^s)9xubgCcL>b&VoBwfG?re1cyeSK@81=P%KWI~%X9b=deSw1d?ub^K?Y`4|7#H}?U|T_&&8zdoPh z8k)e;e?5=ksH>WA>!o$q4*hz60W{zt`)k{5+`cyz&jF}ej_J9^3yl?RCH}|{M?D(b z`H-<{?$tcZp9xmC-W@v_j+76!^%yd1Ku&k~FTU#hZ(Y*5r39P*7-A$T3&ie2a zVA-i+fEL9TQ<$rec#Wy{uSTXLj571i6)fi1RhGY^mQlAUXGWlMN8Oy?(8I|aY}=S3 zLxO#=#}CMwk%V3~6;AyJf3=l%`QJn6zk~m42>m_KW&8h!(A@0b{PDzaP(0*sB039+ z%Kre&If2U1U>LyZ?_L;;ixt=q2|@jz^{@Y@8`isYIO0P4NA#U#=V&-9ND=dzK=TA? zyR}moeyP7un%DR~Ad@{Tv5I6{*5%VK^korNEG|pIXj#|aQckZswB~rqjf|wK_o3(e zv@)W!_xb9l?Ej!}clGiejV<(1nR)2%;jPlB(K7OR9;pI|I&YoFqz|R@tkK@VYB{XN z8gcjXc7ADFN|$9yQ{C~@2z9-(cNxXgZ;i@ zVHf`XeE)cSh{%km!KL8j<>5UTjrMgSvBFZJrhFO3S=jE2j6OJ#GJ;%2t=VMqRonjY zem-$I1#SuebZy*l-?$8QfrchkCqZIows06IH#XYR>Fe$4%~&7A;&4Hc(*VeEW5ny40fmKJx)5L8A z>FsODpFGQt@&r#}HIB-^U-5Hd*C=}jdzB4GU8bG?DDD{%xZ!$5ZF6N6s*7dNBF%6S z)U5$1Gr?_pBqfBK2QqW7z21A+p2|cP`RdKo2tVDo^c&AgyK>Q(>0S^~UKU)2;{B5( z-(@*ah+9;+I7hZ-;<4_0KlT4t+dUW44vXsMSR~kURzW?y2&*mYu5I7>!_?y2k+ZG%Gs^zN|%ZC{P z%`BX+-XWjd^IUP9bU>C>^7k@E7uI~Q+yWRsY{s?6u#14UJ>5jgWfF?rP6t5*Jl1q} zeFDV75;4i|+Yeht^eTkNST{x19M^k(2do!R6o95{j{74b7Jl;zOyE9N z*%_yW1cSXJ2q?OP9d+G;^S(w>6?8wW1{f(gKfFP5c|XD&{lh6aY|B`($NsdvQ(@lf5${ycm^*y+vFfiG5xn07;Aou`}E0{zkzXE++T?c1N$ z#mshy%;aJ%V@jJGsBBFp3CrJtb@&7~ozvJmqG?`{_pbeJD6BFZvkkz1S8puFldOCv?*d-e#LEqss~-X+>FBVy*fDLihaRc3SQ~X zN#tN~K;e#qG{$6?#Dq`+x2PiW^2$mLp<69t%2@S}N1wqLze|PLQck{9>emebGix}| zpAOLPt{_Jv9hj)`YVV$sX{6`?a~p>9t@>nn`~dxs=Ly z6kH;ZKHnxQ$&VIf$LR*bqNUE40s_PFiw}Fk!VP!h(<#DcIg-WhMD3;^SWanb$si6q zs&P2BN%`-Co|m>DdhDL-&jxpb3zj($B%=xfz#yK`Fj2ziKE-Qzs zr0rjM&)}QI;U@rhE3jZ0cyI^3zF+#kO)Dc^>>v)3m24PIfF2{&I+GCeY<41-f@04L zRLgj#Y^oYyloc+8?^i;jQWr5DcQ((+v!DbcqN`v7re_rPcF)WOT!@4`@`t6i)~k~V zX;`*}ee0rphAefmaOftnXFnAzBR6L735L51@5+&zo#z0GcY0h1^RDrIPukO4hjRw~`)1AV$ z$if6S-!B0Sv*K2%k&jRj^fGrQD);0EbOCUe37F^tkSO6AXB&G<*3(1K&1N(j?@XS5 znvj&itrs_#HaG?iKAhSLX}kn9hufLF8YD`+vv|}l_=#3%iin8(Bm;alflDP1}$fGEP#_$Q`iZ+jv2NAOVDAm{u zOmy`5O2-(8@hm~i%$u@;iZ5<0p}2D#7*U0h$m|NBN0B>sbZ2{z;DsEY7q^ma5h+%| z+a>`vXld`7ZTRbsc^U^FKgi z4`5-B@LUvP5z)visC>P*eT4%REixzJ;$?%}PRuKF5b(^W=$=&OZ}Es>@%*QR=vOf2 zlw`xj4Om2=K}RD5ijYMkM}BUOrH$ZE@D&0?3XMzIQU~b-J&^`bMN-^5ntG+lr0+gf zsehIi8B2&E^`(^GmNRy=kZYr#sA(rN7A#Gf%{cgGS3@#VzxBwF*fcbf{a$!s{F>7{ zHv1!9b~`}l4SPSo4IG#FIcjp)anMm-aYGmWq|bDh0>Zs*ggZNG_N*$Y$c5Q?s2vIT zZG}HNCf6dH_G_s%Ju>He&xY4VOyx{ThuI=}qTY$hg{C+?_P2_)@qymrc0t^#@lqdE z6&6pG=pvg8+^U6j9SR}z&Kstcr4=AxDeZlxd<5j*Xua)IYW<&FwBel%TRP;@TND;8 zg&&qsN#$ZXAYN{_5j@xc&s{3Q_GC#wf<6CUdv=7TrR1+5DUEHI0EZG4i(*YN=JmVH z*jZWyv|6M=o=f$jovrExTp2tV$40fB)8FgDw-ZpJs;QUoh#_mQ(%=Ve@^}%hcHsz6 zdF7yZ@%F(MtccPUHN5C^+KcPbDiQ$MiA-mJqaF{k)x&%St^B}|^hx1>TzaEG3`=Whp{%ZEUL_I) zGs+HhAMyQB?Zn4N!=FXN9{R;gn=zZLjk3mM&Td7UdzM3@WgDE^{>C46DXsANG4hXR z3K>pd;q7w4f_21QI=%XND_bw|#+&0fS8kfw!cp&q3@2pnOg!5%EKt6HVgw7=i5P{g zsC;9#4pny2K~|NBbeRwhuAi_|Y}t7i*-??){JHvhq&WD`S>B=G>Yfux90mCN1rM52 zZ}r!Rsn+%bSISNC(JXwo>9H^*H1@7Zd!{{ZC4vMtiGLo+otJA^}gFiGn$1jnomZc@~XqO72#Dg*;)0?a^7j->yN#XI5*fYBG!$|B=4?C zcg(3fcb{EmTpq^XHMH*@d-6R(b8#qD=_e}tPjwKgK8o4qe@RRM66HBOikaOf%B{zm zqZi5@K}KRDnvR@4FO(9ip`W(fz$~L_91qzun{fTE6_ocG+rtqFZnl0# z{@%XQ!?)_u@%1Z4hJ_?D%5BY?M#53qO$vvJx$N>F!RAN}W66r(R#^_QUriKfU_erl z8q|6{V$a?0O(zBb@ZI>hKKTyKlx9hx%^hjo(j+5h2+3HRWs+5ks;J+ze){s!+Fe2A zopaI+%ij#j|3lm2;EZ_#mF*T?{%;_Epp-K-cL$L=h8rD=uid(-y8#^>9p+BC{GT~B zEwzQIQpGf6nDp4EK=^MDV+R$t%HuuNFxtuiXZL$!KA;isDFv?wDaCOMMoD_DwlNMvue4g{<*qRs>^%Gfg%r4V5q9A5Y2Z$k<4^D&V&nld}1 z6otn7540n|g*V2tMS98aY~#E^xUzzJE=rPmQF9o)k+3G5J&u?Ig*Fqq=P%;*Xu2q= zRfE?e0#oKn8Z>R61&<4*htp^>8`esi zJh<77XjO}~NYb;{O-B*}VBo9a8uv(KNgu7^#^V(LxxIH|O@1HF>Zsj6Mf8VxJ%klm ze%-vzklI~_W6ikCVao$t0f_$jGb1U6t59pKBbc(t7%%h9g{0z?P??!rCmXY-Kej*% zn9p%9tr2Z3+iRr{?^*@YnH#lrJ2|?C#sqfA43t^KTA6HuE`H5}66LJkjSzQg5*i@Q z?bKrfFhM#nt4*2Kk^lKiy#)!3l6}&Q8Pvb%esw!y{{h-0d*>}ta)vB$`864Ec?vLd zhO#~kTAxfKT7f3|S4rwVL@iz_`9;PF9F)K7Qc(GQ-E_Eb3tw|VYFN!6LL7HJ1dUM@l#OGcZ6cG&`aNJctwi$h!rEe3!4}L zW?8_~uNFReaw@*s%_ID*p)xieQZl!%B1R&t={TN5q1}GflUmz5b4@+#7j6r>`1H!n zKL}V4PMnKa2dDN{S9}3Wv3ze2bUoz@Q0z3%9}`tso@~_e7P;52?ms#^Orp$6SlanP z9VFpC42LOJlKyA$-`v>l`zer_9U2A*H4H_9!^+9V#L7j&#qk}Y#!14;&Bet1J=W*s z0fOp56QHpFU!HVMZlLio1p2otogEl348@4Y#=_3T%0|M;!OFzV_8r8=&cx0|!ujo} zX9XsXg5sj^@cwThgq`z0j`;7>96;z1C?;GMp8s6(|2xdi#>>RY`@aqY9hv{zNdG?p zaG0UrW&+>{6cUhe90nbSjgy_}yFTZ46`t=bIBqtk?-$F-#tH;w1I0&SV`KT>mu5>g zp2h%X|EGfX(szX(GDtk2!2~!Opype6+2Z+c;YCm~sA(SHsAGBTxJu|MH)=mp@lqmxg;i|48Y3-JxAUY_;^IS@QI=&EwBiQ-J93K79i-p)WWa zhv%`UAzvr)O75{E-#e?8X+ga`I}d=~p1_U9THhS;TGn5uo}K0`KY)jq(y&?Q_bbcPy-;J9ArrHIH{a06%hr+8 zyH`x2y-fiHz4@rb2mo)BmtISG**tZJQEenD>y1t?ndxL)4Fx?-okyn?)Xo$?$v{L+NbH$2f!^0*d*}LCl8ZIPH&!> z8i+Dt#+V9O z);dnYU0EJYaOC}B57+Il@|>-^*jT&r&v;;y2^f;C5ded4FZc2Y+Yu1T2Bt61$rBOw?6sw+1QnooLS3wiyPl5+L2a;{o^Xh>1U1PNS50D4od9_&;0vI0QOz6hs;3eo0FStJS1JbFvV9s zf16q4ygOVu*j}1>KA#XNMpyjJPh* z+`D5M5hG0IPy}bIVU~mgLQ9UtJ9Do8GKuJ7phwa-UH> z^)~AE>cS8B-YEDHVGn^HHBDeAv3lw$xRJj`DMi~j6x3x)k8cTbD&|c5NO@uVrQ9mPd zI|5~J-xu@^{02FLzUYj?nEP-_<& zLvSeY<_^P9xzxbfuD(WXj36CI4KubWwB*okg!CiYri?bt#GE93!LtAiXNx2)2Bco) z0-$(c2xl^IffFyhF`$8I>|j~OlR#K~NtW4li#0z6OU4HV>Ij1S@rp#wH+oOq9Zzlg zLd!#$erTluWx`MfwxPn)p#g8|u*9NKBpJa(DndTBZxrJBn?i|Jm{toMrQOgvU=Hjb zNB%Gwd$4>XE5QQ>_;W?FqH3MydPT``^Ba~JQw;1j^|Y2%8YqL} zJG#@|&gL+HsipA+9u-S+BSM+HC~pEW$ZI46K#TjVH>e3NnFAm^eHbQLlXO&A1yXDi zT+*8e<_GH&L?%aD?$mQg2 zL=|{o=1e}E z3>)h#_j6j90}{4|WraE2>KDuLvPU2q6oAP1qWc|>e+JUgd0B5R&E5ZHBP-AmnV3~* z&+N?X(71dwBVExEnSKA?jzgH?8MBbf5$bDjE~WNWE6AY1ll-$SX0D>R(?PZ$RuyNn z#-`Dd;Kvaoc6))V$0_Cw16UP+G$t%>Ny=>t z35SYPJ7IrxvJf~bj3y&}V!y78O!vy#^3tu?Rk~A_8j02_z~7IY^K}o!)51smNRJQ2 zG4O_uz0QVdO9T}tU4`o(`l3zRihv@|cwyM!6c+wTMrSMnljaZ63s8Cd=}wX%bXb#&Ghzn(gV(~*>!N0* zCu(FCTka<+1@EAPl1jIqdJM5$BBRb+-*6ycO_>OXf}sH-*J9+q8##}BEQP<-hP+`C zcN>GY!YL?>W4;^N1fY&xgVzbeFScJ5rR)yTNTM2jTDYBi}W)YfFXWbRL?y%Bwjvr3(vh-AUq?hFrXlNrC#5UEy}L0DUlO5<0+5tUAI`De@2j zNd#`An_u(qPcd248=v|OJ|t*u1e1941JvM8s3d`pMTlso0P*gDEF5s*n^*b3IUpm>I&(;@xn^iwI%&K; zMv*Jt=Jtq`HH>c&je>rPH(G+;+b!}TI>;+Arc9v;d+?U0@|gqGR=NkQh%Ns@qo419 z&CJ3zW}!$=qCIN5oAXOufvv0_z$ zP;^AnG=2kWN$I1i5|pqv+HL8Z1*eH$qD%Eg?7CDvCXH5JIdE))nWin99U6)&p_lVtG)m|ZqhQa4 zwo1fg&Lpoot&Sl*8#e)1In^@tg-oa`fITJhDv?0%X88zmkJ!GFs|vqT?fiEVNT2*c zv7hjpF)cbIb{Vez1(X&HyG_TiEG@^3d=n!r{p!0WY=1xBJWS-0F380 z`0wYmY-e!c6gi&;D|Y=G;2=dr84GgzXxVn>c}rCZT_-OOxT4iZqb+2=4($s{OCcNL z@WzZih$bs5moqwf>Oh1pBOKqZo3gH$e<07#`kBx_%8G9`Yil*gx;4RxV%8E!{xJLs zR;#4EALF7${$Z$V(%pu4*!riv1rVcC_N$w!RT)a+&1m>BI}&E02b@KNR4IhpS6}3v zLj~7hCjb%powA68T5Dg>d&^=xIH+7GApmpPQGTU`XgWk&N4lxO*$6WKDLbpXm}_M=tj z-!|wCn?EZzJ3#Rzmi&5qjqq>&x~q4w`%LpS&ku1de%iqSO!O){$O+nv->GnCQb-UE zstX}YJDgU1x5PXXh9-EIPJ>@)>c^I6Rsk79XghAMwK~7=&FEVv3WXf%cYZHyR=cbi z!sEiOjDKZmT2cY(Iew-JwgBqfb$Y8*m7-$yuLjZxW$U72Vu$gnq%8Q^z-SPL8;}jy ze(&892Apj1_wq7|Rz25z$ zJ6}bYT8Q+?+#4A$T)~-90tSXL>U_uznYX{LFF&cy|5_zi9V3j=Lx&s86DF<$9>qDo zB(+#Mx8W4*3f4w+J?^H!YTFv4+oAj_dL#F@_iaoqeS~td#*ymQNeFqCn8er&TP>zejm9o6muObeJv3V+^0WVtNFXP;-xr{Ye!~@ZS=M#OZUKT>ofc$ z$y1AG?hy`*OV9KUyr)ucD*$5jfb;lGPl%0Q$tCOOu~(Rti~`oEd#>a$97`{TdWj$d zxg@N7LXAPRwnTPZWI>I`d)Y0>L)63llMeL=86wc^sGV&39^_trn@r!n8Nwof-Pcp` z40#&iSY^TY_qYKq^1QMJeO9}F8ixsPSGptAtQVTs#Z+LZHkCSYlbJHFcwWWQhbEg` zH?sfMSa7ZK$OqJJrinhP_iw}%X}EB&^5Xq#+dAao??`fUaQ|Fa;D%SD9A^8MQFC3lwIq2V%MrE~_Cw1OanB?4A_R;wt=J|rA4!b$Rw3Hkg5 zDmG+S+E+V(NUutr@C6M89Ov1h%jg zTwkG?o-gql!u#~Lvf}1&css?lfx-AbB^>gM=aj_{B##ozPYxP5Zx_S!QSp^DAiEBv zpc=s*O8_$UD)1RyS>3D4(O$ATVv5`H6rSIQ;HR3DTr0;+YwJQvK0+zqC z?*D_|J@MZ|@+|AZRX@4uZT3q+oITA8^fZ``peTS6^57MZW({YyjT!XbaI7Zu)O(v* ze%zAE5v(W$#J|X&+sWd{dmR4GJHKtk&(7ZGw3fc)QH^DqrFfCyZCV#v5I)`Q4pi+t zI2Yw*I#;;PnNqcRR`bU%nVnHsBo_ED82Eh~XP?z`@JS#QRNH;Nt!d;((Kt2S~yQ zijT_1%l5xD8BWgsQIoiVn#)j3*gW6b6B`M~w~vOEhlGuVlZlO$goB3@=#&eA5B%Z- zMffkQ0uOKj0}LHl8TPH^Tr7WUIRbGA7`QAfOl;p+i0=}--#iF57N&0x4hPGBun?q# zV0b7j|CbQO$?_i|3WbB0_dg~ab9*xf6Kg~`F5n$F=(iyDEnj_8B-q)%H7$<+7R3HT znBV|{GJ_JJd@sBFFKZ7wD=<(N4g*M)0gD961zfNOCBbIn<@t{$#>&pa^!*WhFUGL{ zhw{J!yfZ_<2Rax-{MWnS`0s;YEUduJ*KfRouL1-c-2p$9X|9eOL=8&>*=j+?J?E%*#fa|&O9z>KI&_^ zuM^hR&MdJVyi^*y8Imto{^BY*zs6HbOcbj`a#7MtIDb0&r;)Q`3ju^{pIJ19D^q5Jp~jdw2%X~(jVu#Shg2(*e5~slFjSRB z_;%7{mpLKX_@gx;b9FPE$)+|k_rqNhf@GRSD(b8?go&5c@5x@SRa+a+|$>Ro7 zQ4v{lRM0t5U%326P8+O>E@_E(xDb_#S#tW8kOg~={T1wldwBKQtBo--1#9ncEh)xX#b%ut{fSOBnsw+07$*0m4K07PTBCcOf zu>kUxIIWTJE8ismUKkE5LPdYID61?#Fp%=N;@Tf$OkOcgc{M0iV3DCvp#pQsT<;+m zTpffA%r;)8NJ?4!7~u|586sODKrC8is4sxBt1A)tpU65`>GsjnVGSPND2zo2U~=Aq z3?U7q=(EOwnETi>Jl*gZs)2jGX?7mQwNs`sLwaxjdCmwRvxT70D-HB{wT#beg@0ka zC^Z3bQ#OWL`zb$q-)*Ggu62#_!Km|aM8#*ac#FRAVfo=ECn(={qs-vY^27laWUt&9 zBGJ4Q6h1@@L3us|b4Bt4+33%Y>!%L0?#Gf2Ua(y06rSzTTGjESKf7hvQrQGU#`S6Q zF|Uf&{EMW3C*j!fKKlR!zQS9>qU@3jO>E5KTMd62$m+R)OJGY#o7MFYX*9 z`OH~gAzoSYKt$ATW)(+&(g_u^Jc<2L^o;aUB(Zw@0+CQdt<}HLtyug0R2-u3_uf9P z_lsOLCOk3;G(s|-ct08GRwjO5)k-TdI29zOD(qNy`GFklh^vyFE>$cQOLyC0uS?54v?j&JHp zJ2L%-AvyF~?7eL(P>1_&Qh7^iXKre;ZL*C$tvRyGVQ>Cn`ys_a{|ADz*K88~7 znu%_7xG`K;_4iXi!>CtVXG(np5Q2cr8!G@>huC(9?Wy-$l?eN&jzl^Uym4#`)T^5~ zzh5_VO>Yh9)>;5}gF6k@_M~$z5BH#MkwMd3*a!KC&`(73V0+K#;ZwD|5Mq0MWda+g zM6hUvTjhOKU)K@14GdM=$R6nfS{Vt_3+|sCMYN$RPuUc-5v0oig;xFr0KN<2FAPW2 zI`p)3|2Me`lP0SwyCpT+5b-jYa~^GXPP8Gg1W|Udzr@O`3aZ@Ju8Xj|$$JvaDli%; z$&X|MzhZGN%-dY215tdSGZdhQS9y|K3!_#>)z>88R#Vj8-V*Hx8>xy*YavuJkY7*0Pr>(liunR%>OIre9PT zsdN7pui!KppVjdI*EIHttt`|kYKt9zXTHU~l&$$EUXgRs&LtwoT;E3cmUT6`^JE*3 zRgEm%)+BtmQ1v^>4{XxJOlL6HK*+Tx{pVs@>9C|t9sQ>96NfEp7$B0Zc%^?Fr@3{! zGo(xNxB-g^hFft2!N8G9-qU;e3w{Cvd2Q34PN2Txy2o&LQ^UNwLH**@X(->TIFjk$ zUnO3A=I5?BBEX;p^3`h#(Lg|jMUUfs^@&PE%w@%^Ii_LoLyNj26l@FZjS%^trsu(p?)Ap20M-_%=x9>e ztg^wPtM{l_%IIQRPvOFsT9N$6wspwc6XQ$q@l2&#?M}YARvTiLV%sX(zBA_Tm3+>8 zlv6nO6Q~X$xL9m#s_vYU6^X)D||i6BvV{7b~7b3Gl;}LXZa${m|4jsKHE1{#UA`sO%4TjU&`~U z99zX2^azFc8z52S3VXZRMWC|a4!?j^D1JtR!CaGk+J22Hke`3O+eW!3H~7$gEkkUg%M?+&nakBW9x(5e$K>t8hbagx>Fg9(L;p}% zK^R~)3M~_XM`Zphf0ob6*V(duZsliCEb;Gi)?_AeW8$rh2_ymoPTr^KFDGN&y+!ls zECl_c{%O40j|ca);^j_#;b*iC@LYD&LuUkL5v80>R7utuXjML9q>N{iyKGtPWiAB` zB(?#>Bfu9yDeq@Fx8S%-W8R2Lx!-;B(5=TWy>_{mym_DQ=HuH6*njBnPTjZa&xc%X z49)~DFw%sC)TyCHskhwQ#Q+ZWh?E`v6;BZf{vSZddQ_E&TqqQdzz4x2>$w6Y&Q9bn7n(!sWKd%7U*rg9%QIN-=(i+JAa zhhbv}gazgT##$;k7~398Qk+#E{rr-+J54*``JL|xTFLo{&%Z(i{_K7^r5ABNBy*}< z@!uJ4m!4N8x`BOI_TK8opfv`9owGz-#fGBec!qB=~SJy z&Z%1Up{kz!?ETwJNSt+fti02csA7X)03|3X?{asiMaN1O@0@?@yx#1MeLvwXh#M{4 zg7F#Recr=vICg~(RaEM`EGGzm$P5n^t4{3}Bzw$9mIE?+Z_!4{?0DKO@0i>~*Cmkj z_wlZk(whK1r~Yov%GHUJTRSwZU<;KFzKljaWx?6NvYh~4-%_ctAgYP498u&#Px`bjn=Lf)Z!qPk=etCut zbc;#oulEb-jN|x@N)1BQGW%Pd8*p3uVtDbGOHfHm8xM}D%)8e1SmBG0d}qxTlwogpD&86OpJVL<}$%lUSI1SIH z{DDk<*jg#CBDCvt(B7i-Cv}`(jGE9=dzzZ8Nk=Cx7lqyjkkOM8{LEAv+{})1F)2`e^Q^t6gCvdS{iadQjgz z^h<$O{s4ed1?p!1cRYjz3OGRmheak94iZi_uKzd_*nqkq8_)k^slZ2N`=4gfbiWGV zI6L!WL zz-0kW!<@hong#dZ+3ji(-ROD2B%vo-pz zrJAQVEkLrhDFxpS4Kw7ED)0rABa+IDnK` z(M-8@*;T4WNw~^}>HU|JGvZOHHDthb@2tX(o%>|v>oAg4_r~QvY_90Zi;o9ezweFH zwS~|9hxFG+XO11lmCCen4~tQ$GNFkoED1de3yo1JR{GuesR?aM6IPw2BK5Vkty`tQ zXr9m0-nI(HueXKUIj_8F|H+vzKi`MJwK2LLoon~=&P7q)(z%H`wy{^octgTC8f8@@_}8q-7mEJ)K>nWJ(1R;Rv-M6}_CS(L_JFW^+lJHY?Q+ z%C<~J?@Fw(BdX>=K99ETWiYp%i0|*PyR|^)Ua-?ikLP; zPoSW+mWc#{B$QHFvlb90?5vm)@y{KexC1|72ClXRS9kIQt~Pwvsc|fT$ggdC_qi#_ zjzK6xJ7uqDz9EYMZ9+DxgZJ0@9jglx^!sSt4JFojPB5fuQf8%z4do!)ot#N%;35Zq z@*xTQ7)8_(h)$FM1u1MMFgy{5J>msfR|+tfqdYRb=Lr2%kp`eLr)8c+zoaaiO@vg7 zt)nTs@nSYh|0kDzg!OWd%)TB@=?kZIRXpQ>U8ljS*~PZOLmp?NmrDBk;oqgHk1ARc zAvB$2%pjnKjXDL7g8kzh@dBv{IUO*s7&wm+)Dw-@x+Dr&JbI~(6=9d(>-*h)c-K$0 zcPzjpWSvop+6;KGiYqV6vd%80g~ITHitZ38Xz~li8iMBfxOu|rH4tLbc)4^7yG24( ziytI;k%`V$2H#wNV%Os)$^prDq$ta{j+*+SnmBjD{vHmkf z^DB8;m5UkWS2SJNq9AzN$W6?h?13p3RulcR7C}(aG6EoX)dQJij$K%p!ClyPhv0%r z9RT^jeMr)eaBg^d{QAyQje>X(_Td$sZfT7tApw}yC+2=56`K~pyzvY01RZ>6Kol!c zsbEZ4HFC6kd?kA1+1ZL<)MwCmkVwLf9xa@xF&(=gG2%t1I<%LgEa27%;gdqpbZYC~ zAQUH@)&X1`+hTOnWA(Jc6TpmKrZgNNEg={p`D=A-xF$6jR9gf;&J+)_&nUwC#-A=%@ar;#Bo( z20Ra9EoA0X4knoaoP6Q>8=7Fncj<4>jNAgJE5Vg>*wsL-=Sj;cUep74&IA&_kbHpD zroA4ZjSFW=LlTZd9)Hz*0a~Xj)uxg0nTv}bipeVT62*G0>IbZJK^rPdXB1QRb8g`h z7yxbnJ=H+4zqOLbHZrQk>=|Sa?W1IPjd-Pz3ZS|7c*MSB_2)}o)vYu8$UktbQeJGY z7PC>YcEqoXwAqj}W};BfUdlV76yyi9zFETrlC0UmMLRuDDUXCE@8}|RHAX3%1}fu8 zU;CW%r_VJP3_>gX1ZKW4My`;gG&>67G(g-PaZ%sR(*ZfO%u-(lM)K?ahjQ1v@(C|R z@{>k&y(G-C{5sw`=437#qIIA#dWf8F>>jb8htV0>4`{|~?fCD_Pco=ZA1SKzi)#K^ z?Jmh^wvn$=RGa14ky0NU{E+UGSHh$bOeKo8T$7dbi20Fx<4|45Uz8-7*1v?uQ2?9o zb(dgB?SJiheQL!pO3HrP{)K!X;?hJ)lYTzxZk1`SF4R;f$$%JP+bm5jQc*LZbnr65d)v zgYyXbUW{m97qw#}Kg1icn1eW0`mFSJ8G_|?j+PQ|KQ9}*WbEy%D4&jpt_A1{!dvup z;@h!Lt~5VyDnfO`z4MwO5pO)ouo?FjFAOSz=qVAz!F*XsA^o#E`6bt2_>+BQ7haP< zbvzeEo|J)85n(?Hbql9P^c+^iGy-9d_2ox1{2-?miP!H*WLKTc9i?liA+_UsnMHyfKU@U3Np*2UCJ2j+9Ym|psz+kP_tOCDUaB|j0Yj1k~|427a)DWiBI zWsvTV)p=X-NU>Uj!g<&h(WQcR&7OCdP`c&CO!Nx!1It+LjL_kwDoC&YeHv4Fv+K`R zuz+Eoq@Tv44He?=@GaRhSUv^235XlYq3c^G;N@@QqMJ%hMclo)gZ4GpGq#R{weth! zTRlpqoJ5o27k3_iqKg314F~(dY3#~|9-az}Js1*9qLv_P4dzvp)*m=UvcJlI1-MDh z#HW-qgO+#8-~gQI%b8jJ+O;OxdZpR2gW#b+@hdw8{uzmaVp0BmR&QvC-Y>jo6%m#` znqF+ohz+%Vn=j=Cr{5427^k@ff(WZsobp@ekiU^!RmG2&62upfMXgw(IfJ|L>f3k3 zV>s6!hHRlmGzaq4WH=Wp6(r=K3nG7OG)vPCy2vKpq|Hy&Ugx<^$l%=`@vIX8cenq&qL-#!eof+&8vI<*sO?}!%-{oofma&>QdZhY}puwYk_>+khJx1 z=~(r{+0YxNvf~11-@nMuNn(21=#qSxmRq@v>C4I%)-JE zGoYrvLLf%1rK^EL6p~J0_&lKyV~HDW@k7Zw0fB04{wJUx4});jg1Ns*v+h^gs?x1= zyZL7tU$F>rQWR%_A~?58X#TJ0C@VrJs;WZ$VAio^&lqI+wgy=Ae_(ow<5BaiYrWK5 z(-K@c?i=gB#ofZE!_#h-i5ZX$f;EbW2hwtM)h{ce(mR?kP?wL9}K8y zy63p65n@BOJ&$iSp3TG43nXxndL8P1+6cCO1(;ytr?SSKV7o|e=qPK%;elL?D>z5< zQn719pcHU_vPyp>x^S5>=6&2oBE| zAnN>iNehz>Cu46%OEvX>FCuI#NCpi$)|7NO`4< zWsCq=YTH}0*H7TdF0LDVx}e#x#YL-%92bB=y*J*_6Lc5PP%tG$8;Zg0@|pOxm~f7a zV2tgxz?S>^W;HuG`+YZEfW>4Fc4$@OZz#uPE6A>eIEzzgg97V!`(=Y(~hF02-6iQv6h~Mrsj{R`%6W@1aS4iIrs# ze}tSLJSGCfWtaW7LMTZ5asEj8Bq%osM*pc6)O>w7VbBudaFyHq?Va}>Ux%6ds%QW1 z!6O;bSS_{Ei=PU8Q*qC3o0N3P+W}aC)XI!$uQBC|L+lP9j3Bp;H4{sv@vI}XgObg3 z)}s%Nas{W>GC3@PwTK13wcYPx8jo@_Uin0P>Zg4>D-;s&7h!?0o~#ePPV%cRf?xMZ zI)_sKYMbj8;OH%BlKDY;xfzXRRdYd7*A$V!U$e_7ei;UG(IP|*NT-_FcL3Cdl_Etx zgAe!2T~bBWS}7Xn$HqZWybpwOJ`h#@=Fl6W92Y4s1uv^!^0< z1_dSbdZiaINx7KBx=ffO$A|gp^bIX|vKjWD5gR-G903~P|Hk2SasAf<7uaX`U$F+y zoN67r|4cT%RSI_gVDQhAImP_J>envAU)P6(r$IeJh$z5 zT(+pn7FnV@P97-5}vz1`bPgMN{ zu1gO}0fwbhG5b>yw!Qp9I-j2(4DYuG?-zI00Nq;id-916ULuS8_am~-_O9(K|IRM| zHO3!8(}J~JjR)SH0Shq_xSL5A{_*&@Qqxa)bZnT+H%s2BgTs2KVs^0~Lsfgoa?pd>yT=_8y zuqd}Kd^mmR#M7OSJZNN1J&D-!DMx%!#-DGxv$xT&=DI_dWh=1Foqcrw7q8SIR+QPk zca2-3R(dcdD(2n^)*N&r0F&%sQ(^ah<5Va-tSu?WG)P>3!{;MKX z{@rG+QT6h@FBkR-2i<^O~j*^KA;N#9cb25GVv^e9rZ6Pog0g1eV?}C&Q5A-RU zN|-g;)O~%jrv88%Gi>48GxIj0?mTMB_=vjxw*Vik&qRHGD#5e1w;c}~nd2g-QaH4@ zpYxMSjy*+v-I!lM;YXX(&uZddus2j3Yt&}6VpNEx)4!JO!>xs?azl)rrKf*z1L!Zg zo8gzX_nf?y8YZXD&g%ju9y_c*s{;Yp%hQ* z24-7sNTtN+-k>mx?#bWh+YZSL5y^wqm@yCvxOh*UvUAi}NsF|C`=}T!=(geQf-fEs z9GVxfF%76prG-0m;~R3O7|~nK0c1`8{NHm5o7LNP7ogNBG$=M|T2De}41Y2oYQP0a zs!4ly*sY1RY$r_L5-1cjkHho(mCf&Qb4-gc35yA={Xhd_u$9Qt6t=EUV$+H6yf}m9 z?8rQz^6m!ToVkYs{5-+7qU39wRmFx{QF zTMuH^lWCW&vLunhq9V#>ZJ0|473Xgmw=x8|Ryh<E ze=dxFQ_VY+JAW|m_?K(~ngTS8OoeEUvge=&7e3Bmn5wfUhZD_7^3tbyvEfzm~(u? zcR4p!K&F&JOV~nCiYd*|pe2T^dvEYLo;#*TWv(d*YDM8}l{ z7p-eq18mtlDGutKoyEyTdC(id1A^Tarj zy;R-93lju5z(oOt;%)`;#D6Svea_q`03m-|(AJ_1Ujn5!08V(r(q_zmtbSQ2+s4u- zc<0age@mA_qBFARd^}jT%}^$H1gkqJ?m2PCn&*ffnGaZLB8~Efh(0ul;m|>NDMzra2iem4zKXb|(*;njI+oPDdaG6G zGH1Q`cV?pTQ1wA<@(NDx217^5`g%Eei7M8dZrN*h1fq;v-+>c*G@*?c0L)8ybSx47%B?_=t1hfQlA#cgnLw_ZW=nvi8M6Z1(WZ@#* z!NF-i55R{d>SqFB@08VwDS9-8aAIlLlgL32{R3slgMZEhb{H0Xo7n-kt=Y?#h1NqC#? z|MDKLE37j*SMbgvW-W;g>KpRHKC8{ zK?gX<5&I+okN-Qar*fzJ%gjbWwZ(2VkZ_h$5Yg`Z;M%H|Z#9?DS}jPd{9~BM_j57e zEx?9ujMvR(AkcOEZgqnEb5#0bE(~4eR1|6M&Q2T zLW%Pat%}lUT!G^ZpTnz>*5Hq3Dfz0^#Hy-Vh_`Y3pus+LI$&*g+J2Ndl@q(Ms zdqwY{L%0E3F$vSyJsE3jZhEgOlT`*y#N|6c`Dc6~20w0O%i7RgRMDkZq;$`$dktXJ zv0{q_YOJILIM(0Be$+nKs{U~#pYX6`t zUg=|%PZ1_<_aBDhNzqdGorLm&9m7zRgM#%WQmvU=RlqPIt9>V664XU)vE*u1XZfWu z%h3bb6_v2kD!DVO+a7KspnO}G{{}>+ucmDlmYmXeE5dHnZ?p|6DepG_Hl%XrmsL`J z-=8k8qrFkGU%j!!(?HV2K4;3}>DU3!q;_eK24&zTvc88_9Qq^tn_T;)lbuzrR9>w0 zM<~>0^m6;%+N&8|azt2s`A>YjeGJflR$vTjkpe!{!)ligyS#1!MJRHz=!yWF2G+|w z0;Ge%m*Tq^*xxfWJCZd9<2Puf;M?WiDe)@)3p%SlJ0zSvI}|^p#2+us&nvroVy8GU zA>|TKXlmMG+^TFKWn%NJKev_l29mB#rS=olNTXXOuJqU4iR0KJO=2R>Edqr8BwFRYw>c6zn10JpNf~5RvA=(92gR zzB+bHZ%j~Q1TU(nYZ6=~UMv|@Z%kCO%xoh*B*+_#W;tYj@7&TcY8?3Nx>4&w$%yFz z|Kh+4yM{)cYM+UQZFioJ6Iq+jt}q;t z*>in2NGtlnKIncw{qgM)?;aD;v%X!}wv+YG~%ps?q;p;PH;`=T3EV?1>x zut<^0tId%t>j59CDmS|CK>bLS9Pi>z}l3g3ZH)b0E5wB zw`gy8fG5%!K9yC?$AE=6 zT>L=?f_6%f?i^#JJ35fW1AXUWv!yWMS#Gaa;;`})Q_%^Pav-8YHRi3g@onIyb+}pob=-uQ7d}ma~{uVpxK8 zyLx!ZJl&>tt9kZ>Ca}3ZUCL?+Qp5Fi`!kq_o(u)Ru>-q7Ha{0mr=&K!h~+l=#2jz3 zSL5?pV9)qhqrRP!I#Yay+@tX4a)Z1u#UYAMf*F2=h(g6;;z`4SA+%W4>Qf3cl{()J8rR{M#;b5zS3KtyDQ**Mc zYrOq~q9@OQ*uv0lIzy{RuL-#QO&RLk;+{|1CM$kyZ$Pu{l_fi$lb2xOzWGze8>E&S zs;j05>-slHfG7Il|DNHuPiOv5h~F6zni!V_7@p@QVQ1xL;s9Eff&F%@JS6PwJiunT z|K1t@4`F!V%9tbl91$8XeP$XK1Dl733D`f!#>V!a_&*y98xs$3>&(uXUS|X}Jp~S_s1^y{>%Ntf~w9td*w=j0NmLa zA1Q%=e7iN4$h;QMf}=4bQ%?)#ZbwDUcDqAHVODx(lBYjWW1UQk;{0wYR8Q|i)$j9h z*x>u&AiwfownK%(_ea^;et5o_hQNhEul1S!)6(EMKtp+=|a1*j{t!>*Y&l1Wo7i_;t((rTD*;(m%#pL@+t>#kSw`NI)wzSr1OC_Jaof(mm?zc^1QAw^wzhA>p&qd-y&$4&M;X%^)@cU7=zf-F(Id*5K z8K2SqzE5sj0g^j>5!!UiFi(xsgn=P%a~qEwpj38?!$y4T#Is^krcQFHD&A`4{RrRC zr&+6KjyZt?esiR@t&)0GsWo6{kl3bp-98|IQC+%2Bx-{aovn3hy$6amVtM=U<-&B@ zORn>+PPK2niv09l`{_O|gsaNl>rVQHLA{RVGUcnKRN$b{7RgiM{Jli8YOiI;SOdit zz?qCmX+vtf4(Q8ru5S;d_wtpjv0tg9aC!)^_+Gk0yipUdOaCx6xY^d3&q8?T|V$Pc)i!Gf8xHPo!q<*t_GJ0MB$9 z)uLkxGKa?ByrKS_1QOu(t!>%C=nU(}%XyHea9?%q-@0AIq@LCLcKnG$2@ikjAGqD* zV2u^ZI?kza7%i4jPbLtJjQ@33?n=q~luUsLNB$}-;SrYOQb0x4Do;`dhW3#53MSR8s$y(p~I7gLeh>21N2PK572rn zh(X=QSTwz+aC~Li?jNd>V+*_l_RCETs1lA~vRr$~Eya6M%MGt*7DNs9Da>@rBK_*T zPSU{jRCU%r{5g&R9k-P$v3tC;b2QB#qC!6N*W-60i!k&GjrLAAc(3V0ci@J?!$_uf z$$8q51k%%6nj@=deGas^4`3QDoVQ-cxaLzyKx)!G?-Ld}-yBes`0e3|3^S?=${hxp zb9D_;2^EA);@#5+4~9KQrxl2;w-v|DE3pf`^NSx|u@bdMvWZForT}u>6CY-Uj!S3O znrWm{{JynAgxOsz5hceu;6-VbSRiV$JPKq8^LCs@P%7KuyVFPd6L7u*VBRLCcsqq{ zPWLZP@L=P9BXG5`M%BYTA`3$p3aCGVpfr1c4AQ&B{Xq6?Cv+TptaC+LjYK`hiNCC# zYpV~li8Z5J7|Cke=9U(K1JDJ@%wzw9Xzc%m-p#WhOv0B=>C!5K0XL)IK@LYx0A?aR_iF+% z1i34XvM`rcor_tHv_g_ewUT}WlfKGk~3q<^BlyKcObQ-5`j$~g2uTozzB+BU3U39n1Bsy;U6fpuodRQSIE`w z8eag1Jv5@qV?PmWW|s{h>>UUClE%kPSEL#XWO*L}Q}rgvUc_|As#d3%%R2Cp^5#nwNT^Cw>sRT>ep&wY+F>+(LTWlmKpss+_9gCraBna7=C$fZg? z6#C%;>y`Rx)FW?C|DoBOtvwxKA&mU0+O26>c`c~%T`GV51~cPRV;g&l2HqV#+2~*M z72v3`(hn=oPW|O~aL_KG4g=`pv-+3~5G2&@lzdPNR1{F|Z6u2kN#po+2m?(h(ef|P zU_0U=qb7DaLyZFB)Ck^ywpjS#4V#R`Q0rg6vI7OHF54ur_=D}xjt>9H`Ia>;HIYmh z(y5^+x6bqiLPCh2y7^0_?!*(7?CIsTFyP}2lvv|grz)aZNn(o8$dkdK&AOXVJWYW< z-!0%XBhF$RGz%#%)q}+j#uDzRu~eb}EtX;9V(pQQR(mQYAKGiMzf5G?@-Y4td;zt* z9E?SR>7hwhhkJ52Xts57$}@HT>R>=uoYz#&H=#qQtvEGuT6aU{5k`G3OBEWC7~t32 zhg6ChNF*4{5SmGlbxjpMjJ7mGB)NkQ&UR5L%o$9#SK8 z&}M-lQ=GkKyhh zYbo|QA2bA}AYTHKDQ$KpS2JG=(C3LQk#*CQRVT~h(@_`FoI)bgL7LKiPYq`0)GCt zT*#EG*c)mbf4Wh?X)Mjo?=sAc{5VVKRoALmn0(F?)KMO}XhI)UDVHuR2VPOjJ+OA9 z!W=hC$rUF-^Qhya5I~CPOx&Q>kb?JivtvS-xs$3e`6r$$R& zBn$+;crekDU*;qXnn%5`14Yw>phl>dG9(OmuU;fop7G=;SaW$$14V^qC|C)3AOl5^ zGhjv*Kc`Spu$(xtL#8{@Ktp0{&5&UD9up8@qA5B5!~uS}?~`U9nxij`Q4gKYiHO^n z6KAVgpZctZbaT#jnyqqpS|5CCjheupr?_5FkZIl2Md;S4q6eS@EdRshYfZLQ#ZCT!OkC z!PV?`xB|HEq<5s{@Pr%lkq=#Lt!LO})BryEa2pe6I<-H|>w&yUsO^mT`f-Kfmn(=> zO6@5EiN^E-LIx-1>*JxS(|4kLftVQ!qzZI7!&-0S4FkNTBhgeS^t;9oVPn1}*W~+r zUrjzX;UsRM%O9c(;=K(qUtRCTRk=PhUrw?S2l85obB@dC{rS zc-{K4rDkK6%P|BxgLIk90o`HEy>Q4Pukd6R0W6XC#&^e`f9+U2a1oS~E2jWGCP!ID z#DJb!Lf=B{ws6G|3yYp|Gl5hoG5v{UV|V->kim`IjbscY!8z>^@^7K0Jt=&_`7q+S zFDkp2wdibFmc^Q#w&&yNlX8&r-s`SV>KuE5V9F{8Ar zgypE9l)w3*h7#$?-KR=Yya$90-rge}$3z-NaNLIY8{~1mGR@j=G{S$lyfH?` zyl0OqeJVPIGPMVdT$e!5>lUhAVQok`GY@^0a@$Q1?oyNRVJYgEDzKMpX?|h? zzg2J>oSlau2uCHcXs9T$)p~Ke)578?x9(!aTlPp>6{d3delO)w+Y}W?_ye{lo^DW) zzUzw9YhMncL17JLCkLpLqO6d~c6)6rkvfk%_gQIEo6`AtOV>tZiy!9l1XPw^!hOHq zk%wVbvQ}-90xSn`yWC*Y2fP!iX5Lf&MzNGLpRy!4PN~MpaF=W{M4qsyxDR1Or9|=C z(|kWb>L$un)HzAa(Uoo1$N|pk=K>7p>4j5h&H+PM0>`Plvz7aYGRIc6eJ;K|)2T9$ zrDdW0V0)wv>cmk%_h^OnlpQC94n{Yz?=n~S%3~GZf4O7m%={w@~0~GaDUxkbmCOk4kHlTbS53Owz${#m* zbqk3i!#bTjiS`-T`@A|A5ZDv3Ottk~(7Z=iW?3zp4fea)UpWA8SZlsxXC*hvg7!X1 z)%hNbC+moPqi{Y;KspF0ciV-_{x)kMB;A?0)G6Vvx*f$vCr-zbJ_AS*QEC@XnWG^; zKa>o_fOzfsYCH_l0m^${K7S|Tq+Z6$(k3m8{Yq?jvOw`R38}gDY)#4WEfy0*N>Y=Z zN^4RUIOA&G05L`}F~?qq69@7GAJKb2c*=vPkt} z>A?NluYtd-)fG1NIWr!g!Kabk9K`izi;Ihcl0cFG`g-fi*4%s$SS{n}MS(tE#I+#h zEGWNaOvc1J!~K0i$3OUtlW?qiHJ%3YF>Z23`zY<;n;TWUQ$;Lz_pO{s*ZfjO=z3Qc zEMGd&`%hDig!1f!59Ea&5s&M|f{icZPn@E05yLkqCtOX+f7@_G-9d@5*nkZvz<3G= zFr~uw-}D7$R$vV%3j{bJD$D<@`bBrbB7t$TC4){836)jpAz zY;5VZwNUu~KQE8W!t%eTTuts3b0q<|cE1aqeozzID%^Ma z%-WFL+GAW_H+^|f(eu%e7@yx%cUt6!6MPgb?L5KEBxNfvEdFX*qv;9e2k zt41uS`*C-AETr~08ov||cvD@fQnP!!d5TqzT5D;@S`t;;1ZbMCPteT7{CVfot1DAYBNm@KO{!dZp7bd=ueV4WkU_jz=gT`AH0QQh%zzQG0P z;b(b@2LeF>?bib@aA%8RgJpaNHJxB00|_2`l8@?e%hW zMz%T>TB{M0%Uhc6=vMi*tE0&)@g`jn2~_(;RGh{!xYQ<72wLP}W;_qFVFs&m*yqAH z*144A`UQs>sTxt{{+$i|dn-TfFv)uN{@%_1`obOs0BR7O?$50av|HsasA~h;B1UfR zl2?mhWl|~1Gi||=G@>__?z(jeG$ze&!{LZ)ksgMVR-!-gh`Eqop7kIZIcHy9AOW2{ zgQK4gFRgFnpWSrwQe_k^8{I~seQF{?Xw>hD0P5V=Ry4ol;@ZqP&`(FHs}+N5SqMAH z;glEv3|jU6R2Btk_RfY;+;tS+W+{xvykK<6)`goA`S~JESg>(^&X>ctR`HZdirsWu zt~0l(xG4bzbAvoSbPcko8b#;Sb$N362PWj}8vpj7YqjSGz>9#U~^mx`+Yh zx{Hwd1f*8PIZVY`tOnTP^KzbZFdmNxdaJt!_t?G{31UugGEIL^MXmkH+&9D{6aub| z=CdgDq5J1MHi(%FCFDTtt8jZ6*qLk{F_UCg5pLm1o_ zAMc!A^%<`!%sN*$KlMMK?P2quel`L$2@|JvJl8G$@^B#*?0v|U+BUiTCfYg~NBT_2 z3=6D-#5(INZc7Z>m1Khljkv~=gR9mq&$x1JN))< zUJS@w0z+|umxDIiIc%FjtlSuI4i7^_C$oHM8z=6ad5(l ze;NObFxYxd_Vymw-q=akO;Buz4u`|u)4sU9g-5&#*KLAXr&cq6QVFy|yUhthY~@E> zE5%rEug{PS{M$&Nz(BlUShed|q%`Bi-LUHjR-_TFC_yJPtK7OOP?Qu5g;(?`Ic3@- z=are4FyQ&-Q^$w+ldyA8X~r1fffna}K@j3L-xW%0`eh78cGiZi8I zhB3>?Y@>xo&`)+AXK`Hoy9bY(habM{{b*Ukpz9gK-knAQylvwBeh`M1*v~c}SY3QW z#Q|_`5pZ3z$0L3lvF_o3hp$M1ycH0do|=RKbR>xb^07a0;vjBEH!;&5e74^qJ3S0$ zAwSe#-b+R8JL}yegcBxy3K>~90!Wl0MC%^SGp-lBX$jx@{p7$1VWxefT;6@s}TbpvS(gag^q^@!@Ac`B(hSX9G>&2dM8rjV* zJAPqNq=?N^`-a@;I0SUclVm7LM6v8xJ8}8T7g#6I5*4{DZkn?`+gQffr^`5TPuxd1 zsq()CwP>zQmfnP5CdNPFgTacjJ+##8}a-UQD$D#+>TW^NGph@|1YeU zv;X#w*OZ?MRTvB_d5mgs{1J7q^~P&RVYfjQ@^%`0fDLzC@U(;G7Wxz4(n~yV|Kv-& zF~^GdgzA&;=)(Jl4U$5?yj=K|w`)kgvi;I<9Mo%fn!WcvI`L&Di!g=*Gkaut9T?mF zmV9he>udYC0L2`AJGA}#bNgmoq?cqCUJ?n8b@xcB!M%KQPX;27lS3sZL~(M?WF{?Y z?EG{ufQlBI$$|gkFtoN8JiS|23MmnJxa%h}D~QP|o(^=nkH9{b;7pP(s8K}hXfAbl z(UEEUv2>uN6xq!Qi~VvC*t<#lIN|6}H(se^C9dt0)k7Y6C8kfey8&X>KUD767LnUo zzOXa`4ew7b>A#Fs$RLr-udl+Q0}qDQBmTfY$Yo>w4br?G*48+S)CliOD&*xfW!(0Q z_`=bsbm0+ldl5L_uT)JS(^~R$^f-jBdus^cBkK>BXjalClnWw3C{vm!KdKE4th$*r z&v0{+8Iiu?&J#|&HeQ*C5kkb_C6(Ac$8efIyG{n^H!cmx1o@1}l4V3A`bpB_!rBnhEYzof0j4+j<3b@Cjmj_oTwT(V2(}6bDShL5PQbG4{N%fp< zo0&$$jdYz4o}#5R$!qBA$Ydyh@2Dw%+RZqRc$)vGkyp=8k!pxVFRX2eKl-nQ%Ls1} z+HuHG1%6q*c`SQ-T~@251tkX#Ra-}v%^i1zVX=6=ufT!!!=4$LxEaxu*@E4M0nnPm z6@W4o2NmH<#Sf)$4^@(}zXKjA#e;~wcPw_qfIu}+er>)r+-?14Ie-MNR+wGSmH=gxs*|jmMIAVQx zMEF>+Puw3GYo9F_f0U{IWh7%v$5QkXnVEHJhK`tLC)#^0gDF$n#tmAIJj`Qkj!;Nz zcf(o4yYtjQzrU|jef}q}@`0bi|Gow4kXO9P>X5VJ{2aUmy3{qTupe`{1OP~Zc6Jjw zEKQJ}#9RWnw}n4dtf~Br{^o{d<5P9CghJR6GWKZNqjU!Ac#2C&U zw`)2ys%il)gf#)~{P%rK;eba9369#W-?%q3^o1i`l@L3TAhRuYY>{O=bYzx{3%W5V z`agc^p-5q z2ophi3a&!COC(0LI27BTE9}wC@B5li)<>f<4R1PwOC*81AVeSo*lP$VdnZe8%&^uq zfQ&^VW2NvtD^%jPo7otCJTk*-RSq=l(H?=!X=|)fo03$RLr3&Ra7i-0dE1FCqQFg| z_=91%)d*Xe385y-q{U#gZCCOd3Hx?+~PfQF~njm3*^;xSI;Xy*i>SE%U5 z+O<`EJw(sI49Xoy>?^HP(BfExi9s;~k1jWA!NteyG?5m)#^hALb7eIM)FO4>r3BlL zc=P7{E_O35k<09o}JXQ2(-%KH@}9C1WlBTN1j3 zRhKdBdEnRNegmXNHmhU&#>w{nC7zx~!&ML;m*FMgGDIDI;69#g7|L}1p zn9%TyR_7|wfpsbqaT;T8D(LCtwedZJRKOrSG%=0kr9QDX9R5!1jT(8@`*>bMxfuPP z+RSM4F!C=)&g~XRJ(;M1Go&OYQ~B$4Q90uRuQOlTN%1_}J2qP&fM<41#5*5?>XrI+ zA1hAE52o@NwmoUyBr!K)-Dgnqz5mEO2&yuzsrI#Tb8DA5^{Bc;*lEI!n^3*#CL+6= zsxTW4_u7SE`*06>g_u}WUnn}-^+{U{H+8)WkywQR8DQH!0%)JxZ0r#{Qq77g;ic7rY9$iS^ zERDrSA#in)@+a4&?VnXc-gF(xi|PkIJ$R}mPQO8S1HxT7eJX^hHO<~d=8lTL=LpMq zB*e1od`oJ$bC=edL4)uM0Vh#_{=KZWCW$}x8`+MnZjP%!pFahh<*_@@JTj9o6f#yo z5QW)r?xNOQ1Bm$JiJUC?wByE|DeI1m>Q3R$iBhlNJD~()(5K}kmpK6)fi0KUfSD{) zjxn`CNz(%#ouTV;V#V?W1a>f_JGZUJG?O2_n&Bg2q6czBI>kW`8NQ{eYw%k=zKe@3PD%I z)gg{04$hMHc=emvo^j&H9=UzU?}e7SmM&e_ZUMm)JP*_B4HE>a) zqGVZX$$T7HbZI&mjvG9nNyQnTq`e!)5Qk-KhuTXm` z2PD1+q1^J&s>07iQJB>HblY5567teXuz-yz@?YW0iid~$$t7Wk!A_0}dR7<2VT=sD z3SL%_CuKpkB`gD#DaZcwWd_8Wae?`UlGC5xKyUnUb|mHfWQJhM4a%k?-wI8iLOv!S z?9ex>HWR$ij_XfhI&ABDt=3ba=B$)-J)oVn_qaG=)T!Ky@RTy*^(7E-w3E2sn`{#i za!Sn}tj5x2ulZJzgV9Z2dGmHNZ7(9_Z>T8W7|oTa(c--`D}|amG@5g|$|b~{WYvBi zO3JaUs)mq!nQqsU!7)nG+@iybwRx5dv-ccxvhtsOvr7v5@7KrN4{6wt(+QLP&W z74OeyqB|K$(X<>)B5IoNtZU`68Ra>9w%ET<(ea4RUu4yCLuUKfv;Hj<6Spcqf=@xq zQMh_ORd;Uj>>Wh@*n|~(+FE+O?v>gCZkSQW$FReZQWMp2c;15M{AYj3F&+5zT9oa~ z(IK;d&~Y886PoIf&0E(h58ZFof~77dZ{(6V|M5eatLoZ~YJXU}HT;$(zwis!4qAjd z{%FLDQL;AzEUp%We@#m(Vo;y1UJiCT*3Z!QlRstoWJf=JzwE4^0%4YvJmAwe{68en zoYSA&sgC$3cba7kjfVM&sWP(=vamAHF?@=8IT-%wr25=2MIQ$2f83(?pDhHnpolOT zIaujF+ou>g>DV|wUp_6wjGr7VLki;nBudi$zibTuI*UbTJ|$11pUbeBJ{jGA zBJWQ|_a9Lc`+wNif6T+5D@`E&2Vxe9@jrgx|Ib&<@=upICBX3s!NSA-pX|CyTf>fo z9mR*>)7NB2O*`y-Yw1ew|M|Zj2FW<~dV>_Po@Nbv!RkWA{s?H7)%0;b^M_EA2z@ z66p4L7eELTEDSwS(rJ#sAU+rzfB{7jYYtJx#V@he*a;!Epd#p{{Zf)^M8GsJIC@- zbUnEJ9jZ5=pw7E7UOdu#KmPXZ7v%3#m6j} zr~1Lvo7=%Bw}arWHwalsK5lH^nhm%Kzs0u?L$^(*@!c9Jd9sP37!uKZ89*4(K&kJ` znZi6nx4t?ln{tzSby?b2p5;yMEOyKfB!!BKe?mU626p`yg_P!^#9X_3i4vF0XAEnM zq#ng)E7W*kJR0Kz@;D~LbNBh>FRnJJ=~;1624Ob?V|ryF(?R#!@Y=Wot^he*hjZKm z3)Y$oGB_*iWFOPk?8L^R}JOaR)bZI)|IZ#>*h;COeYdgL~bu#TFdIcL%)E!(XGiUIPCUI{^CDt zK)q|Vp`^q=Rt|Tbe;BGm@pV`?OW!Pxc^u;!z*aG%lbWk(7w5oq#S)|oR zZUt9d)CO*;Sf&$_?Q_m{p5riE!}wQ*4{p+JAc!mTTIR_T*tCtuc_2noI_tSn4V2}&b5Q5el#BgNr9tFBf& zj_n`ZlbI?N56)aRg5piZ43FBx&Wt-Q)6_aE{;|g37nX>a${aZPD!E&%R!?JXjPB zeS}&Jk2+m~Y^@L2P~cwZ>8)tF(0dfgCzLpFxhG20=>MH@8$Fx^;xCv($v8+)X6w&+ z1dYKcA^{8uz>{%IjIC-9N$+4V5o5LXF}k^T&SZ_yS7mhKgY`=^7X{*c&1b1vsEQtj zsLzB@{ASQ0LHx08ZV#P`m{CdMy}G9vvj)%_TX6W8!*|tcXpjWG*Bww?d&YerU0;t$!_88N)|lAyd=Pyi{L6Se@$H{<0~<| z>=#_eP0@>x6n`&Y7@P3$jBblGu59z(S)-k!^N6`KZkT7B@$b)goF>NlwX);&X%^tB zK^WbJ%Es|OCKYAfhQK3F2!|xKpE#uJrTs$cw!&~#nQ?ColFC6qEO;m-^kX$9=>(`j zLVJ1~L34^E)H6Uma4^wPd$cvEu3U>X*+>ixbzeSz&Mk)&NDA2KjqfrHiYi-QoKOX_ zq~0OTXhrA8h}>d4#MvSbwC(@aCWwfgIcbY)mRMo&uF+|yj}?i<5HYfrKX>{Wv7IIs zh}Oy8wj1uKf7OnIy+m#8wAs%C!ap0V3=OH3#w|qS7*Tu36Sv*%*F*@FTUWpgJ(A`z zw?xM%XO=y`M_0|kk{iiL8oF%Kc$1GFsdULHb+*=dX!RCVk%%*@oic(7NEvmK6JVkh z@KzyRMO6Nw@|Q(7kk9OAf_?ot)CDYtO1vX~(Gd$19#nGaJF-WS+}G7L$Orb&(gU{V zA_rN6TIN+2QyFBM-}t~^9rzlJU&w5n(~NkL*%m~gEhp1k!WoFW6$2SfkPOT~U7a|= z-^a)#9BuN|n6Ks>p=rGc_ij3-TfR!Hv#c36Ovyr#AFlkEBO8PtSh*9< zTB{ou9Q2^ehcfK>i#rh>i~z}q7rE+PB6yFhY<+h7$zA_4pJ1oXj+HC)(ZEbe<>Czb9rr5QEz3%#$1- z#;?q=9IH8w9@fT!949!KE*g&a4eH=j2$@6cZ8nGDiBm*-aJp2_7TNIA`D0FlmxR5aE2gjS}aVCDyxh zXEd>2qgLouID@Jc+#+BXjtf$&`;(A2a8x)xKa?ON$%xQ2+ap;~PFkI&Q|Gp$jLm`x z`Hb~DUnC=QAw~M}N}?%K3V&uZl`GH%RLI?#>Nc|RpF8<+wg6dms^6aitoUNH`(+MF z?tUznoExM!DSk~>3|bD7YMH?la_%bH7Uxp(yh#@vJB?9Lk+J5p{NYB`Mb`Pp`1G#VJHHbAuL^QCy59JeVg5-CKdRXV9!)hAPVN8^N$}EiOH2Fa5LB^AO zA*y_0q?X3Hb_Fx=QR%ie+Ar6XQ&W-Wx-(UY3awFIN@XGq z3J#YvVmlU=y=_$w%+&5Fp7NMce~Rf0apZK^&4fN1@05eTa9@uWydoX{dKzKw`CG+4 z8uWg~fn4*%UcbOs@#jH8i^Q)Pdh<3)kVk+`dPxo9SDxQ=quk zXFpsd7SK7N6IqII?2wHZ=_|6d*cVEmGU*=uLsHkn{>%9rzm|ztcaqV)3d}5(TJ4{E zbf;V{OBj!99Xk^OBD4uH$K0>BnUYUjKG*4Gctk+wlKR?DEh%wnFC95?p(oVl5na?H zgDUWH4`}yqqz!HJmPPl#5onO-*U8o>LH_=lMeq+pXwUnKmT%=L$ zy8$5lNL{;>l-ILkM50P=u1fN_fyP=fRPM}UaD<|{@F$27-`Tpra6-UowvC!%O%~1C z=nFTJA<0IXUDbe@mXV$ZQin3ZH}~N$e#ukW@CMl+5e9#(z2XPtQIF-pY#Px60(2ik zFyrhQP>5GCtTR}mSB;$N@qAvg!tQ_bSf2s)%tN)*>rP{0HnnC{Yuc`jiXuODlO&)g zmJnrJxL8I%%x5gv@CR)(B4nVYJx?=zDg`&0aq_-qW;{lGqp=K|Ss~jv|JojnW{DZ= zow=KU=?bf;_KrNxivMArVB5`Sftzh+=jfe~FoT|`{VnWG@%nGU!$Dt#+w$wi9X%%y zGDfzwQ0koGKj`xM6arTzWN*}ypAf^Jp(z9D7J7>Prs^CMS`+w?>WJNq$j`ncMV^QQ zPA_G>uX8!A5$2>;5EfA_MKe$NuzKWdWr)uu$&$2`#vFgEzchrbh7Y{ngW-Q)j)?q_ za2fU?A6iHnzVkR}Ld-0SO@iLiM8yVP4FT#gY7L1X6!1VYhF79;!E;E-j{$mGeOT=o z=Y-b5zE^_fjrF@kwN$8w3(Lxsq$XOE(?*IHfqMTRI8C?Hi~}RTW(71dvzC=9>$Gzw z`AyM0TnFhh=!%@ZAI)^Uun~FJUO~q0RP<%Fcl^Z!)@_Jg$$}zYIZLOBWUClO zBg|q<16KZ$==!e!J;MB6^x=%DOV8M=WdSM6@TdSBFdD}|xO;k}_rY7Ucj+S^8YV@{1x7pd*v z8K2+Na1LVaKeQPX5Q^%giJs283~2sM#s?sqV(?;J`t?7fr+M@AtVeAj_`sN_BRoef zTVNMF7(0@0_<}^`ua6!TYreG9=X#9N0=o1L zd1zeUl!Slr@}%CB?%uyyWhhFultRe#?x3hy26;Ps7csCG{Z);tst`o`@oP`10D)u2 zxxXqD-s-#SU$0JiA@Ez^z0n-uAj;O7V1G!Iy&4h>-0O=@)ja2vvqOs(H|)~gY~y1u z{F#l4mdZ$Q%gq8&rNl|COS4VYD}n9^HT#>9wtJBlLMN{9Q9)s3>7)0%bMA6GI0`f<3x>^A>TTC8UALG*1pdmW``|DIe?*z;u0% zY5-YTQC^ZIsD6u$=wcF-z)aiTz{?MGM$U(+1o73zTie$M2mEiMW zr7YD3g5bG>F(HZ7Lfa7~;}#{-_G=_E3f6g2oomkVL(i*9>qE<{M$649WAA_!owNRt z-MPN}5jS{nxH=S|>jZ~4Gxx9}&visQPbXr75v}k9@$$(@VIu+WcB!B|H*jrBSb3y_ zxQ!l!%^YjCd4*Hw-PgLM!EIs=6;B)~8sVlaP_^GqU@)VE+GA^A5qv$o`3lQiniMW3zk~)c@1s_3wHXW+poJ z&u#v*9$6d;2l2nIgq8E(LNeCR!m`>BC{}=l<3CRH{}ZiE>1f5^v?cj`VxjVO8=BH7 z5iP`4h8$PYOkbeBofBH<6Ks0KF2!r9w=BjkT0KBM{oy>WrQ=aCW+gi|Kpj-5kihV$ z-fpXHcfb94eSeX$?el(BlJEIY{dg+Jk7?)gmf<>dynm*qvUXDZ_zFBHEw?wy7|3Wy z=!C8(yC^McCN|L^oUPQbeLOv@Tpw@iU%m`jbZAt|w*G!uuxM-7+eRnY-aIGxct1LN za(Fv>I6S_v^;o}jyV&<>_jvm~MW1hPa;WXl;PEDjhW@ICHk>4Rmfu|MT;J;93%_e> z4@7P2U7ww)5!8eaZ37V*{|uBLXJEQsFT6Xi^H16o{%l+Ip?48(}5V^Hghp1>x19q5g69WvXAWVu)2X3{`_A-*_go zsCE*=poj}H0lLNi+p=X)CrAH9?r{sW zM=D!TwWxdmFe?s%P1Q=br)1Djjt;!PNR)Cp2o>tvr_l>I+7>R(P)zq^(Mf@%B9$~- z-wGd_{ALqWU(}p-tSqAuF(+67>5T67{NqSsj*=xMM|opj(`UZySy;~UJ4;Ukh4*bl z_;jL4!Rlm-%BTJ0Qd9X+u&dw$__*z;^j@rY=1SNDn&@yIy3lGe>dWa%T2+cFIfvXl z&{~>u(wr2p;mXg=aTQ-kL}`p38(;<_{QSl>XRZJok3(_4 zW#~R6vF~=Pr^jTuQ|PbsZ3wvq+9_rF@~ofpd}98Afe$AO0b(`DwYl5K)}n-eo7869 ztHpRQ-pFI3##v36tb8{}JevuZ!Nj4U))X*zuFAPd{B|(+@~~&C zFJ_-VJX#UqE+TlD#!*8;oB8Dl1u8f8`Twr&Id3D!`y~7rL7Lso>&Kg|j5UMIq5GX| z2CQtoU!~0L7y0?&^IC@c?Op1m+=WULe%LRv?J@AZw~|QS@ncABZi4zFLUZnb(^9#X zh~VUU^(kzSi0Hsa zG0Ps0_HOS@`D6l@Saw>@Uv2F<@zu9OC;-AFF+7K5VT%pkV5lu&c&n;hcuWE<=11_% z@v}Br?{Rc%tQaDhft~*X$qYJGug3I|gRVp>|GM6Bc<14q1wEMlkj(V3HHPKoHE`1L z*55Q-rL}_7Xb{XU-{lBrXDiq?CNRCB<-09l+7m)cuFQ6Tl6HET{pB9Cna$c!57=35 zhFe<8B%7pt_=Q|oO9%zeGgLFA`YdcN@qcl zAB%cWS-r-*U+3oB1G2#QWZxH@^fv~cEfW($%48Tv7KhD5ihZ3R9KZIp-Ni*NCz`PE z@$ep;fHJ|w@K;J|H~)dAU_@KR72xM#0oo|i)Dai}E2OqhcaV#MzMdk*Mgw9VCdCmd zIv37^@VyqW6`tKk{hbcgnkSf-BaV1Y@$M3x?+INeQpRzlj<=9nZ?P`p-S48>%BB$> z^6LmU0<`Dv4B#bPdAK`1{=@b09yL9Y{!1#svDVwuBnZP$D8mEmmkchrqa^aD zc$1%pWZPlF#aGhoTs%mG>*kvf?)zW0E#Ole)8XwwVsc3!jxEHD{+oxsUK%&vW19?4 zDYuRq)ZoIX=LFXNeeXOIkU+3ZL^^$T*nMB4Uy43+!mdBepNDz_-Nl2zSr=V(}by>KLh$JGpcwCeOcWc=XGDoht7c2vOJ``H89 zcUV!p`8S+T+lME(!W*NYJT2i)oW-6Tjj!n)3Fa6m*cU7r${p7It2)^clhDQ2DUpd?7XsS^y63s? zk!}{i!uk>*pf8c6$aY1b=NweO(=pCvhj2M?_Gq8l`kDdpaPKiyywus4nyGkvCi zz+?N?sE^nnAf=eRkGmf$Ig1Ck_`#+5gTnomgV0x<0~b7V4A|-F=lV{9Xp6lm#I+9f zjbmbn=npl6-OzBb)?OgVt>*=zV-KIa``wl>u9uTnM3%WA$1WEc=urm(wrL(V)U5Cg ztIxDBD}GrZ^FnFya5@go&z8$U$8BUMVYt807|f`lq_ZQ4vFsRNZ#XA-gmZ`)%<~xQ z`b8ID#F9!$O~5z_@jYW3GIGpB^Y0zr{^FNJ=|u{J9c2xeZs+WnSi(R<=f8J6ebtV^c(y1TnNmPI z?Qc9lVx}TNc#O?)+mWBd=@^l7aC*fmwJL5Wz`Tn>)VmyU8QO42EB*BumZAuy`s7$6 zstO@;je%pB(TG^<(hya5nw9nYH+gVA-`rDQN}KSCDQcN`H6Cmk2o=~2+Ex5vK61hp z*OpT(Y>ADj4g`4YUnU!uDLe(i+GOuOSmjIwUNeL^s1+%{Zz^WLhs4ORgMY7#5B`CQ z!NN#zWn@y1A7o?ci`JhfNEU8hyYUy-j+YZTmlartgH^xb^8S842TPD-fgD8_WsIr> zDV>hZZLLI+vr3;KOLN8*%E*^{X#GNZxeQeprRF*x3qpnLgr8G;|0l@4NgfqXgRWkv z3C&GsfSuiSJ-1ZnGP~qi6F!e?Fr}F&&#dYAdEcN%C_sGNUi(W$&7qsgb0YSIYcc`d zMh>8#a#I8oV1JYLPMRqpBzV_$fuchf`@@608ImN452SbNs;KnnhHT5zwsv~ZRJgv2 z782*HP5HAB<6j!&;5yij+tt-Ts`3P|h^a!CtOtQg)(-M}0lf@^wpi~!g)v%*zqsY1 zeGaw~TiDhS#9K^PnRD!m@WNg&Ql5kPYj%OreQa6SL4!WlKZ8h7t8vEOTg?JCp#>q1 zIxJ2bFgmiXSaxo{In^adM?7{_-qh3^9$YS^ra`ubFzMD(gf_s$v6mE*G~WVBAT#ji z(6;AyZ*EF2KGo&3zr}8Ymyi1yv+(M7(I}r1KK7NS0Oy!*k~I%mtcW}yvbwSh47UKI z>q`Dp)Xr(HfLJ8KiN}kM?dF&HN)DIeDiMby1$7|jaFk(L|CS#oBfQE8yXJd)!|?G- zg~G2sWI-=DtCz#D?oBY>(%^dt1@`wFth4I(lo^i8IcojtJb}TD(M~05B+bveq}+^- zQeQJ_@S5tZtY?rY^Vy1k#2NvDw=3}5Vf)Kw-75yCOa_w8b1YG0;Eg6b9tOth(ap0J z8G~}W{gHLe4#SjT;&gFS3&Kw7%YNO&<`X_N!B&ywBdf=_{hw1v!jS8`P#BxQC+EL$ zT(LLIgOQ~_5g)n3-Ax_cMXw-^YhT);Y){>%^x+xKX2;tVBRQ3g@L*27*Gm9X&Hx0X z@w@{gf&L6+s(2j+kLCP@G|BuqbEhaR^&4qCxYh$5!K7ITA-d^KtTv&!saW8aZ|v!%)qGmMB&_?C^Qq7@R^ z!N#f~J>sbl{urj+zY=@xgCF=cljReE>8$18I2I@s#JgK26LxTS)J{c4vT2{e$|7UJ z3*{deItTL-cwj8mztj!k#h9`nJc%m(H$^=XMX=y!z=Oz zYULjnYgr>)ar`gv^|BN)hX9L@_5>rJY(j7m6_ zHzvHo8;UH}=7q3G4a}3Ru5n|iczmUZ#+c@X)=20(l4eFuE=#&D_%3ml zQtIU^fnejNq5i3o@aGX$6PepX6uO5=Fwfey*cjK@;O=pSyR(W;56MDYH5Ie|fPv12cdB4qa4j({PVk`n zW@e#?mp);8Xb*SdYK|J1s`eVug5$I1h%$E*U;gy7JjWT~Wn6)rNSa9>Upo)+UPgkpaTR`pTi}H@kzVwT&U8QGq1U z;|(_1#sdT^Fd)WCE$d=z6C`9IdaNxChk1c6>Wb%wluiHZYf6|VZ>kLRl%#eloFhp- zLJGCkSo)GG&2%bVRHBOoMAeWjY~FKnsPVZ;srWFyyQ{2^cwv9olP2k6+)IhU_K!xu z>Zn^jRVDqG*mHQ}Rd?tL@vwz&+ldgUM&z!ThRbOQV6>PHXhOj(zGp$|@R2BF$Ae{z zuNwJ?M?>iB{ZR6neRRYc8i__)>U=aHD7lQu$|<%RVrbE_d$*P6#X#1Jd|sRwJuFi> zmvdz0KQ69m%+ztNs^w0gO|B-CkY=l|8$-x}*Qr1Kxfhap!Z652&mJ=6M%~l`Gr;uF zX|ApVxFYT3iBW&ahS_jh&#t=9mPgSxZ%;s{_ zVgoT_lFdLz5<0oxMDb5_=taJRdVKoUyYCq#?cgxveH@6Z$y?gMRE!l#(v-~EYB-W1}_{h>G}YU3B-zTR)kPn^=ZOM;Oq|Gj}|-Z(o@ z2iWu8%-a9f^I5BT*UoJ?6Rg6I(ckCKVZ6BHrwZl$72To9CNdPk#E6z@EwVxvzx0e( zCy?r_4=n%#=3WBih(e`Q2u_x?t>e&m`X36H;R!OTEzQACtZ4?s3OMW^GJm=N{z#}I zRZ>Lsn!bC!u8~EfKVp2;z)yR3wlreC0Q%lo@)X?tsAY1AwtX<^W*Uw1t4X7##npKF z4qaGb0|KXEzbD~}3tJqTKaY|=g*u&YF(!77zQw)wU*BtM17oO4dA?YGZT6@Qicj~o zkmh5-dt*I$T3ZECC{AZ4>kcx$2ZezOtf9d4GQ}_LV{c`H&q+f;-R)e`$BjOc|KvZu zl5<&A5^1|}9@b_wL}>Oub`7-qnf33XLXISQO}mJ3I$P;UyMS&b#v89Xodnaf59XRn zve)Pi6Y&0(rZ+0InfG8T#)X-y8*$@-bHy&o(3`a;y3Y5Mes%`<^^vP8* z*A0qtc$rZZu`2)Grb&Fd-naE8fniez)0JO|Sd54F^SC(?hmW-_$#J|5fGCcaiYCLK z?KS@W49|Xuh`&om~nVAxKt)mw&_8agbV(SSwiS38{aiqf?hLUqlhG+ z*R6v4KuN_?P2~rLKIUND@)&jI*gC|;5ggh zj5cFzS_VLKeB7D- z4WAn_pa}niRWf{POgTB|IRC{e89rgof0Uvrf<~Vb(a#+C|F0BaOfc9&`@+h|nL?Eb zMT^D6$w>FlYKBjZ>Zb$sbJeHQfQjMLKzeNli=7f%2>}Q3S)Iwk`LF+U_2Ux)?ach- zNVn`h4XU4QpKPBbD8uKnPZaetVrF9|WMX3c-ze&TzcDjw!gVhyGAq-6+Xz@w;trw6 zfzJ#2zdWW@yc@Q-ZFPSjUlF5j9ZhA=U2m5$YgPo<)^tdFi6bgsS#Ac@@g)LCESy>9 ztCI*ne9FVmZR<-$kHjTGMDQKLhYYvqrLQkn_69;eYdsF_0NU~xf(U~5=ajvznV!?; z*3}*#m87i8@Q9TfpmEt`0X>R}x(rT%-DC^B3B!aoqGRez?fB#NGj-mlzuMy8-m;rn zF?)c%n|XLRYnYf?F}%Apc6)i+8r#1(+NwE=xR`qO>F99Sc(cEGUh2pZo=aBQz@Rv; z(F@D>{|N7IEShgG&1kkZad3o(CSnTJGrOkt@p-dsqD;;KA`*IfeD3zgzGCp7U;c4h zp%Q+sDpD;{2#S?io0}FJ6)fltHv1e`>c@n3etnQEVWTDbqweu)MBP?^cQU6JgT9(J`p! z#{Jr+7j9X{sZ;36u!$g=Qhpl;DJ1bsf^7C#$0m?3X`|w#wFHahUoc~NO)ilU{AFcS zu`w;R27@WgZo+0ZT#@pfZyStEQ=hVM@bsnw?Iaok*h0?(VCN{7iMR;ib z2un;oMqauOk+31*oWsnbYYJoB8lBB8oevjr+*_wk7O=lznTRPQybR^Nj!w8Cco=C`Iq7Zp|J#s zp5hMM8IQ8^QZke9A!##OAVmDVq=ND+n$69c_vLl>h6k0EE- zYN4cNu3-&~e}M9WKo9p=z>_?7$3ys?NdX3+>q61$A*{8VOj zoF4?MGK;(O7e2EzTBN_Go)o#UH8h?z3Ddm8#fCKFbFu;&ecd%!cGtfl!a$EHC%|B4 za+BSJ5)opsqV^*%YgxSCNW4sYKE)QUIKXTWm)JuiMvOlN-XJ4PW zuu0UQ+>2QxPRcq1FMJ6aMm3XN+Aztqh<$X`!A6M3)!uPU7Tku&%Ju2q-vQ? z6z$FD;6OZQidr24j<{4t)SEV-UfudlDjeI%>vk~*W)dCKO2R_Y$ZLo5yjr@t#^N_* zoE%5Sfp}gLDZE%Wn8sEO1h%T8(c=s?^pr~fin9KdNUM&r1~n2kYW3aLRP_i|aZgA6 zQkvEh7;}A}=FIWn!kmFd4QkjtcV-vX)uic;+5NQHi8+_jP3TCQivTe&-UHev?-3Gj z6BKP(>nbODgb)q#s4a}g;dd#r{CP~>(F?TN=PT@6RIg>jOV3?cF(LNfW8Y0K-Jlu* zomXf@x@nX-0u_{`nDp-MAc3-oC2iFX-AE*8_IN*;Zv$r&($AbXluM)lMxt`TpoK%XFE4;1{ zD^VF-zA0LkYOe2#I=uARyPxyCd;E*Ka1=xr7s%B&pClCc;{Z&Cu(zw2U9mwf!9B?r zY)81b#v9(yAHyZU)YZ3*3bJ8*Mgvw8RQxTNr7@I3lc*j0KZZY12|olpapQ3Ld+?<} z(~^0|ahx=TTGf^A9Y))t>e~lu!-PNX?=2(hjdTWEqD!hpw**@}843M5qFZHd-HKOe znWb}kMEI<^|Gue(QIxsl^j z8;BZ|&C}kpqQ6Hs#4(wRv|b<|SvquyKAhfv8666%GWY4v`4$pT*h%13k%0dGyhfKN zdHgf6XkmyQc;J5J=?f~6%E)~@@$E}Lgg#1u_#yS4HJC#i=%4W`@Nr~3r`>{q%2&J4 zbc4t_|GjL(lJukTcP0<0-eqCrG<4!b)8s)8i`ES|g53|}TaTbBJFa&pB(-XRx)PpQ z^stAQI6c*zI{E82`T+mufWv->({j*@n^DaPlQ1D}` z2PA}g-r~*_MCMLG8*R5-fbq~=^W~%aG-iE58t(usRV_g6?pP`CI=ixtAoS$7c-c-0 z)13AOz&RsOMZM}g$7a?_F6E`*+fQS#KQH7Unztrzrp`BvTLB1sHDf)R^zR(;u*$)&yE#v#^gWj&N1cX5GJl4%R?B;9g<_AS+c zwRybO3KFlJ-X7b_g~P_+B)W~U(*RO)i%oUEdRl{5lPL3PmW+DQrXUdJgmR6O2Gix_ zcj87Jer+-$M~tPU{b*8JD?A&VRc46^iPS{m&UdqgUr#LW8p| zRk8VIlb>#a38F5Op@+wXK^ALAyg!D3^e?yts-nJ076Q?|#8YW$Z0M%pkP|WVxrrOX z88)>OjGApSjcc9)Y9T&FO4A47ikN?&m!G}ZQ}tW%v5OwqnrcgO(8PTP!3Tals5)#x zv>~KmWgAS4yV;DB3v+tg>oq0>SuU}vXGo{izc%j5w}g`RmLnALfZ))gtQl(nwQTE2 z;J6izeL~K>oEm64b41MGR>!CXLRga}#|B^cOfc!*5>HN;xKJyXPm&Jt6jxT+IJ+z> zCBa(G(rhczOjl%+ZBoLVN*EjPEAgcATf*`)#||hPbw!U9AR-*2(saG`Snw_SF>Fq^ zb4m3NpJMNtg*V>(l1?6s^7beI@L9Fzy{Ta+6|2XoiW`e=*m%qAP}ei^g}3q|E!gUj z1N6#^vCj27_46>v5W?h#he)aT{^A;aTD(}cuiqoUbS!&soEoEN4c95`Hn1P%K7TFl z+{1o})!sY%rAE4-CiCdh(&!GWdO%N<(++`$htCMJzyr9J7H9D>;Y+ly-(BDwA(qvsjF6|zhu(ytP ztk?+HrAtx4X!7R!xSpp^$aSkewm8qL#4Pu8Zj_pR%TtZ zDR1GH22y@c^_x|S4!a`+O24GV^xJ&ZFa&I{=H8($rmpFFvB zsVhW-efMt(A0|BObd1DCRFt)>zDj&?cc2z9iPOJO|249}8BOCF0GggW7XtRYbs1wQ zU%7o1(}Lh&hWM}{$WNBhRcKpRLEHPioX*+JetquIP($G_yYAiypqAk??jM=dlns+L zZ<6m9M42GwtfIkqzk=Wmfw)+{(}v`LzO?Aknip=_U!-uYw4>adrXM$Bd=xi_SyST0 z_N{^*2ixit!om7itt}#_^)?$vvdIQS7z?7=#PC#Kq|a=7N;fAXo6cHVz%uNz`fQC} z86L+0<&BUhRN&4U3((434>ZF^J?c!1aZBy zNQ*Lm-~I$zb(}py{J*$5r|8V0t=q<`if!Aror-PScJjrxZQHhuif!9TMK|aCtzEtC zxBa&Eo@0&Kdq_#u27-Oeb+iC;hG8;}kiIXZjz12_pIut!_OVsPJY{mG{^bafEj?_j zg??vITBg{L;l6N^JmM2fDa$$Ru!$!PTxYLAvz+obUHdys|EsdrHEN9Q$mv$vEa2|qiOvGg-O zXQARLfH168T^aLdvqNa}$o3pG@~ZWClh+-FqM=lQYWi!yPRO37#I#-A{Cm9x;zG<; zke@}5Dg-(D!Wor3lnt*2Htr0INnkl2;7Sn9=-_xP*ow62OMz#BVm$89nx0B#d0Nj) z`=&Di5=hY_!ZkpB^PzfDD#+@Dsmhg)86Fi1uv9eFDSKIMtwOg6F(?DDVA$H|*wdvC zPh(xjFE1H$+LyKdfJv-Wgsv04oQ@#XD28^q@QjSC7i3}pG~9) z0B`PtNWn3y*@*g}h0roa{%h{wi?97pf#vnp{+Ltiu>KPrcR7RRj}{@DuePO&T3gENX+*o~1& zF6e@@wWF191M?Aw|IT{`3W7(@J+5aBVD(km=pYeOkzw$0Yo61(Njp#dNSWJMiS~-vY#J|-BRs~2UX6I9C?t1}kx=azT1R}3k4nKn@zn9fI~ zu`T`qIXR8Iuf6SfAHL%U?|0nP+9wd~GpGGwR_b>q+!P1VI@U`MKy}&Dj`G5EmK6r; zpoaN9C*Q;x*K(@D_)*{_kh}nqVN8)rmmmtlJjp6>aZ7LrW#cs$lnTZlP-zk7o$>l+;t-#rth`yeSGw(Uxq7hkAkTL0E48>a-pOc8BgfB{j zkYfr_JtnD{Q%_+mV+kC2#F$n7?%iHQiLR9TK3T-AUFvcw=SI8vGwo5Ymgfno4-S@4 zv1IXVOY9;i8}(+zw|O`~t`cUv947cCRR)8tg6cN?cQ&UN$toap6hZ>DN>mp=oK$m~Pn7CvU}jTnBn{y{tdU^N9t0B&!TO3j6}IG!PZbZKPt zxur^Ux}Jk6h;+$qWD7AK$SS_NM_a!uPg{&ULRdsH+CU!y8%Oe--5o@x+Vvu{Hl?3g z$in!(@1F<*e-2m>iw`n1nK}2s|Iy-7RjVr$T9DX<7LLS&eXIIEor2~)B;p1D3j0bj ziB?iFVNfsMf!U8rYoc`Jm==ALvIbDqh7PlnK z_T!V!Y7YRG;A}W+oQjc94jx0=1H)STx1bGFpakZhHBS>-V8 zo8d-hIQ=vIc{C;&JR=}n!(Pq52qUS--JntOlg5xchUj_C@jGx~xYr>(SX{<1lac@0 zugYLJ_@y5F9v|D#RGJay*#RV&H)wAh9_sa*4g#c*?Z1&K2W8+5@W}h9BT79aTBK|2M5)I3x+$&jq}ys- z;%y9xg_S>SDE+6{T1&@EL-(cI<>7SKdh>Pv(}I0(asMv8iKwu4R@&_L&Tpo>C@K3- z^%Vf6mD)mCg;tzA?E85?dA$S%xH!hSbbNgPzr5Wao8xyYHJJS zoSuqFLc@e0yP+ja{>k3 zb-cRy11#D`k@X5?@?vY^e^nN1@bEky?}fo%-ZwhI5K!xI`OHY#57775EfW(z;4|o9 zYrh($;FLlrW|9AJl0hgl8ko%N#T_*X<^?#!emxu4oL%x0o1G437Rv({o&p+$9Xf@@ zfW2~3h3MdR+)IvB2g+lurO&3+@Atgnu@MjzCpu{qWV4g%ig_;LI9wD#cs5SsFxtDf zc4uDP#ST~OB^-trXFbM~vz{p{rLbq;!cH#Q1JCc;9}0?an&9}~Dld(*63!>0$bYHf z^n;m58T?WKjd6fNcBJrE8VBUa!d~D1PO8)5ibc9N8|R`26LVoWN*bu2sdPMa1tH?i zd@-N5))hd#ne5}5c%xS8qOO#(Atv&`8SbDbolF~{kr?4-)M0y$lBwsD-uN3HCV`ef zxg88#=VVqD^r9azw|9A95}(EhRVhqVHi&1Pw|p$wpr|8!>N2veo)4%o(Z~!Ndxi$X zvW~2alry*2983sYtO8U}v5+;UmTJ5x`^!hXiPvh(f?(t=n?<%9i*&kdHL?#&x}LOy z{y5C4Imc7{MvpK07t zOZOku(@PfbfA2M9%}`Q95eF&Dr+6AKPN3IcpZV=TbajA_I&|q}DA9?Epn`CKj$gs3P=$E3%YIY4zbn1ZlVPvq_ovPb z?Q-P>2s&(jyy(J$_mR4R1Tz16Hig^~bW&Sl)YErh;R~=~MnQ<0N(ck-GnPAG_r|q> z|2Ejr-CO_^!QZ;#v%AOXB18{thZ-uOzV|feAYWOp=S?5O;%`B4?}5ll@-3QD#mK!+#K58L1$tk** z42cjT-N$W$yu$HU^J*lsI1Go_w5 z-DWh^g9?0LNsAKr(a{Pp1j9??U>qS>fWREa@DR9NeJD6&)4zV>kHO*WL&}-s+>Dy? zD3Suq=6ETM7+Div&SM&9c(bvbK>f+$vue2xvMLllt~vhRh4V(bWa-B%C3EvNhI&Pp z$FcGFj5vL>;39CbE!RH>S^GLzSAiO&;@B_(G?ga{3I3DlE1oE{I=J`2Wbps-&Q!-B^I#XWoN-)YrrO+p5&H>Lu5KB2tq!E*Uy#JAtv9!H;8(f8J{Km> ze8NG#9f~U+TL%MaY6RLqQaCkFk7<)3v8o!z_N|(E;Bw16MzesB3`bJXePkff&6hw9 zokX8ZD~e0d?u;bLeD>tjrNL&>s>uM#W!lczeB`({e6Alr>!0|1hxK?oWlxTc6E9%f z65S`N46N0ab|j{DM3fo)7$WT;9#&Nm5c!o9M@w_>HV7tO547C#js`}-Rj@#jbbd0} z9PbYn=n?v1GzFQP2`(6DizPTY9sfC@Qw|G4W*1!}sv!pdrVz<0gWerDZX$q3`=BCl zqYTZTU_1=pC#w{8Ya&6(sX7R&%zcJj#yNGE*s?<{Why=eea2y|cxc5c{RW{iZ^PAw zhkA%!2sPT-)vhvibq)5_Rpj_LsJ+JPwr66P{K%kNVj5l~-2h1ZRO1vb#&5!2G&V$_ zy{HB=oA72t4aWi&Be^6GVB{>zFJ9uVT+(T4#<`HYamDu8HwCA=Z$M9eEn;6wZ={>P);kPzzMQ9_KODI4~cs==%6e7v? z2F*FCd+2*9U;BzU0#xAn&Zf}Viy%z2$(lZ4qWJjB^E#3&ArW(9c$|&R&|vkY#^gS> zS7zGC5OlHPiD45;E-u}e?g#etH1aUH9)%niNoeE&-Hyeir}WfURt{tzhwZcyZu0eYobSIoi#$d4|l+d&&%M8u76NH$*`X4T34igCKj-$ zJ|%Tlap&!iX@ychtidB~LO=FE;L*|_`bW{?HP-}6`uHWG_buGtN9_Af#t**}e{?(b zAb!YLAQXFa0GDi6jclz%EGfC427z{%c@DlYK+*SY&fFe;wE#GgyMTsh49DC_$~3s8 z-XEfWbom4K!R*`lWy&;yWNlX%RJJI?96WWJQxs4qm_unjNGv9*+33}&>HP;=bF0}a z-TVN-nz<+e#!6_Rt6!225FkmWKIHm`%04W@Y(D8Mk0DOLAWz!mMV7SnpjMP>k>wOhG>GPNO7Y-Nr9D%-tT`F*r8 z>oU=d29BPtMV%cf5wnA`H+?z~IfjBoWi99fMdk_wpO2}lAst&Ccpl9~qw5Sr3((}y zDG=anK?AT+Q|6N}97nqvegCv9mj~EeeuED~rB$QfoQ}#(La6A`U*~ws z;#?rl02)X1j~FsItee4j(zHpO#td5!mtny+$uR==cU;be7+8fnZr9id3I`TJT?la5 zd}8L+xMU-34nQJiuXhaoMZyqv!zgx2F2W>nQ0SkSYn0PMl``1jMcWX6EF#0|8crbf zz5?{q6VYUJxKR1uY{RFI(@-A-94Mnwfq!d>#}G~nmrsq8DPpG}Oi#F<9{7sKJX0!E zo}~x71lLq$*0 z4*7#hG2SuCtXkp<+0x(=a`k^uNf7VK^J3D7e!i_OA|7iM8lNC=Zux3&c6+>3xW`sy zML@mje%YRV;xLpJ>3IUSJ|73;EXp1h>ediBG!I6!EIyYXbFmU#BDs|(9f6>95iOA2Xf7jj9L z6dM^E)ag-Z?&2pHeg5JZsBe|L(cFt9JDztzvQc7TyJ}`l!7ZqtRi@+q_m0=3(*?gZ z7@oup#!e{4P5viVLMMpwutt(q5Ymo{<-wJzx{n<%YesU?NBF6JU+3H)r~=@6ECOVE z*oB;ouu+Lv8p6PHrb5;6%4Nk^kzm5S{^V6v(Dj7<3zC&#jql?WxX}bSMcv?Q`R%TV*)O z!ULNa9Xo(~HDtP<>R6Tmo6eG2`K>XlSz+iVK3!+r-2}ecGaRPppa5j|EW<5Y`;)GK z6Up|~{VbP<<$?sshYy8sH0)4A>q4>mo>AI8ZtiwLzwx?Ejhm&*gXq6SDl^;}WlMrl zGEXySAY2W2{jYnHiGen^f!=~4@_t0$=L9QQ+fBD?8XZ{yxqRLh*m-ISz@IJXKDAbz zCxeQN(T4SzY^xr~Hh_J4VHC!{2mbW9`rm76{<$}2Z~`lwX=#-T#Sx`2n9&I@ZG+f- z#<^$ur(t*@z9P9`(Cftb8#A9Ry-vwcIR~3#RA#1JEmR#x3nQ5qfWj)?C!d~`LEbQj z_2S6nuOl7(Xh9{nux=L?$%~*Coe1}T=@tlekIqU=?hP`5P=L`x!Q*0qph9zk&K!fP zLcBHmOJz9YQ?;$l7%jnsxVizy@hZ|itM|)O`7Q(-&7$2K@?tzlY+%8quJXS1e82>Z ztQ*Y9q-@+Sxfhe=IxU=DYKIDJQtibx-7|zz2n$J(yXN~~T zz32tLV&{j{G2pbm+s;S`+U6nQxYhImA;TaKc_uYPGyx>r{<6zihiwaU{+F(}xG8?L zMQ)D9>*&YG|1k7jx>Qj_nF={bcF-$JDFcROBKVk+Ju2<6b*r6KZf$c-$ z2rt~jOy4s3)a}Gmt&6^M2+Vp5RHI^V?o7+Guh2%&2%xPpRnS;9Q%E|GN)0RMd(Vka zsZ|ylfe4S|{WN~D0ZU7h7i&XzDB~oQDt8nr_gklVbMS>zOE6V^EfG2AEDl5L=AaNHa?(rL5dHtGU>5AD-2c`owbnxOg?{$|2D9B)@rLN}Pm15d6 zbjvOGQcU0ADHl;z%Nhar{1_#nOfXxTjis}rB3Z*87PV%Jq1cpYybL|fmuB*8U5xFo zYM(kIAyY@YFvQE?K0=*cC&sT&rZ*Jo?nZLWpFDaPCNRU@nu#zl7?&}%W*AF_g{@mR z)Q=16Pli-T;Ocwu5RHUd?9GN5lXhVmLw1S=rW8Fp$Nx(mBDdAN-b(jeTV<*9I z>)=8){#h=TC8!{)`PJbDuvLV_%ZROtL~S_$&2GBsk(2}r~O zh5!*BHp=jXZBon|8qVb;LpGgr)!bIywcV>K^Ghdm+vzERqsBPh9yRCWnn|=LwFXw2x&ar{8uFbuNLn9fr&NH1sOS_0VB}l) z2|59612Z&+LUdx2UuhUxkhLzj=nM}RhXCw_@(rInt*J8yGrg!q*Lb+18Zxd`WIHj- zThU>{R^H542k7<_Y?=dC%Z8V(?PM?JHTW^o%7jgTzx1E@eP`=v2a8Mc-F|?o5}=4edDV* ziCIgny+p+nk3$4~W`Mn#34R}Y+7gpL0+2{H4C38dKQ@bUtg>lNgSK%N0_vl2bLWDW zNs4AkGolAAG_u>Nn~=yhy-kDiWuJqNP%$Nzv=t&m{gQ!R6Ts=C^9U^u|+$%rt>0PNPgEx+%< z0{Uba{O*rc9VVCG94jmm5qW|>9t{t5%V*a?S)?Y#jZRSicDR{0;T=U4c}k%YB)G1p z>^XLrH}{X^hAY+R0bL(o_@ZzBT<)g%=^_&_O(Hf$n0b34E3pFuN7t?pEHP_24!=0&WouBmdwRkTVsr=2YnKoWO z*)?y1T}=+Z*PEQKxvHg(_7)FdBogUsPqa8)xuOhvx{0EOj}M?q#AtH2^}XaAxp~RSAGT;1z@a zDbIfPaM)qAzH{}qRHgr}F3v`uS#yZ3cJZt3Fi?TERtZ^hfxkZ~*0kOrMUS-gP@u<4 zMfbeBx)-AL-HGL|Nkw1Ux9`(qpERux1hnc+kHO)SsIfBB2^~_`Mjie2zA&ip7*03$ zCV2dKAHFXD&av+SygGOQ4_(I%TulF^v4zkKf3#93M!!k*Ai+lQ&6O+-nwU#0)+a@v z!X~>4tev=@KDwZ(Dt5*HtzU(N5p3w0_oT8-Cs{S4gg5y|~M` zzWfCcfs!$O$6bcat_Gu5q*yA2AI(q3m?s= z8$k=$q>mWYS$-h3&F(o(sTa~h{or?N{>PN%3|Xu)WW{0)YvWr{-aWnIVmEv*RbL4H zgrsK7&anseEfkQCX9kh@@vvJ)H_;P~hNDCrs6X3voNk6*%A^&Qz0Z~&gyNtyXx(F^ zgOL+{kb5&01)t?tg}9zFNxRcyJe7=A>MJ+!sdM|nLcz_krZxVd0k53>RL}53ZSSM; zvndDETwEVth$~m@FOy3A%$TAPc)W|~_02eF(`|y>-(fV(A~IvGkorLBHP;4|lCchq zpu_+@O~*j;c|3@VRO1^;?uL)ppws;F4_fusz`J$EKjS1|ypAIcX+S?9s|rlM!=WwD zCu+s3v<6pwwfVi3(6n|nf+_8z>@=$WE!92b1Jv?e&Uw4vw)(bXaaY5*zTYC7#1b1i zzzQbtUanuqUW5V)>pUJX*}EtnDHNOF$d2s!!hKCMA>@lsi^8ff1-5UC60I_ z$epc-r|5K2m`xbNo3Tqlt=yWe4JAUZlF?A*x#zCvr zQvjk{kBO;4ZPJqfoee<3T~|6wi@7;hGK0&0SR=&Y-|q_kUH|n`M_AVCAv;A;vI`)G z*UxEXg&1(zwPZ2PIy%ex4tYSg# z#qT#qyB%GxfJpBVTocDJ;%Bm&7ut< z5*l@LM`E6IpVAi0*mz{<*`b?X76;S`{U)W}<3%vC3e=7&yxj*A^$8vkO zCHJYr9C8G<&GGtkqJRL7_8?CLQB$L#;kA33pBa~ZHC+gM*P*NLp8ZqxO_P7Kp81{4 z2rkP+epv=CA~LYEp+Y7UC|bcXvWq5|ZiR1TItLpgT2##1APyX%Fgrx}s}O)9%{CL5 z7Kmk_bcdckR*xm`!Ekyf4Wk^6=n^yci!{x$t2h(1-HKeb=rPWD4+`Q2I2fgQzJ$;i zTKpyCIC3ENML2CWs^3J&!Sm0P>yE9sQ8CDf6xDQ4FY|Dj{fL5v^u((Qp?kA&F+J{0 zs>o(&JyH^8CtJqSG-n5mXjf72sTqw1$Z@QYSgY<>y@U}H-PKOxB0B_>Eg8u1KSiJ{;Iyqm$<8A8(dTKD`g21;fabd8p8TP-_)&j*MijELrTV;oLR z__+hNoMKavo{k|}`1fbfQjR2{Wd6!pf9#A;OzyHnI)a+|Q%}GF9J71^8A<`u)RcU6 zL-GEU62$6X7yE$$}IFNP3WFLzgb>fSLUV(<$7u&?_wI z2tNFTscHxgODDE%!5{#y64swj&}BjG#(>Q1RD4%Z!S*L>!JZvL$^|&T?4cnOZ-zgz z9xDG%$rwck%-$|eNDuc^`8EfeScy1O!u$?~fVi^X&GRJ;`!26oG|3Yd;apN@m^B+% zbwba<#hbJg{7(yBK9aQX3n;@a)Q^B;)i|md?Nb!Tp+6OkOjrO8AHWU+##1ly;0^3* z>T~Vqrebm_pzH)VUpYpb@enIRZB9t_i{Z|&idMtK&M`i){R|3Dsa)l1f7YZ;(F<9W z)13rmK0zwdVd+9ij#e;mZgD-u6qU1$2d93Q8bw=28eT)%_bMOrA@?>+GTtHC4kC6%+L z2(;;<>R0casJ8`}V<~Ku)$(l%L~kNZ@(&TXupxse9>aN3dg@DTPy3q?nmvqb;NU=> zz-dtUnNd;|B-9*wrrwDvP^WMi4R~ecIh0YTO|5r--kq4@Q;#E;xX&Fe4!%*@$9|=uJmI`NWJ6cO zznR-bPB;LF^H2?CSV6L^>;N!Dln_czY-vYeb2||-Wh%^ktdjSB;*a)DT)xkfP6M7i zGD-EV)==RHbL3m$Q$*(@1I&@khz00^1<70{utX(t`+zswyJt9W-_Fw2Afg?930DkX zf_`uv~gZAW`<4!wQ$*9j_wvw>`oA z;`z7JDvvTbrtHS>L(u_TFw>xeoWKq(9lQPZ77YBeug{lzCW1Qn+nGj=0M#w`06$X7 z6)S7IQkkNGH4zH!M5T8D` z0LC&QPW|Lgo>w$cL_Sd@aLECZg2Gc=tZ{fM@eo3q@&nzP5-gp=je=0>=0K~x?d!a% zAv~@jyn)az>v)qJi?N{R((jfnoT|t=tqrhjFk-OuOuedhm%=nAsPV|D1AUff{yQaz zSGU9ajs!li5+Y4MjfdQwsVJ=wEOqMELaC+*_3Lq)ax*XTg4hw=_EepXU2;xvbVch5 zb9@biMp#CIX3g{PuQ?6WWNqd)54_G-ZSP2|Ua3NmbJj{ifkLS5Zg*ZUlGcb_3M&90 zX$V!}im%qzsUAO+NcC5|Hoysnt!#6(s@A*CVn0B4-rSqV(K@lMTdza|dvR(Ts;Iac z9Zu^Pzv8iox8%A!rm}(+w2&4ju{YHzE};s|Y(i|IL>jTT>;U|~X{jszs-g^a`>N(& z=UGGP0zssiA(+r?MFY{{Mn}H_ z4LLz*PmWAM5BY{qAyj8`#a&b!ctcM&LDG0uxG{J6o{^E+%0DDE)7%rJ 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

nJO)1$RC=l2N+8dIAuvN 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⁢BO zx;v9E@=t{_?bwPO;}&u>Upnb_ed;f5sf^>#jUl#WZ|2Ruq6K5wa{UM4%eo*}brb}1 z2L;n06_iMv`5ClcRV0MZ*QzhWg&2z4PZlpiV6tyQF39kd(6}_tA2@WO) z3ubh_vyfmFDkBK-d>3d553U{Bgj@++V=L`tf5vDo%`7JQgGsjj;VvIZSfNdr33{Lz6ACNNYat zlCyaSQwLHg#x}SntLl=wQPc)Uo%9s^rsnb;(c7vaog-`+RP_r)^&_;3 zN~F0qMU&-<)Gc|rrzNWoEOfzoN~fDruoC}kU_LbF?axoZ_9Rt2Ac#h$w-N4y(hP(d zT#-%lY@xa7>$hygxlQR08dmJL@gT2uXTOKFKVoHN*D-;7QaMY*B5?E>vE%Nn~3VF_N7Utkt#`=VE-&4nAyw*iht*or?^UHfl$%j`T2VbilpKLR*RDvr+`JwX> zgkJ%0-6TT)Q%qm{22vJ%Od&CFfN=?2z;c$Gi;;(fg&U~A0IDQ_QVO;dArnwMWHy%n z5?!PyL4#qWAYT8=GT=<9Z2$*m8L;xO|F_3zP*=+yUjoe+JNJt@reAD5y~`q=+i!{l z-hFBLIO-8xPKpyXVn4pYEsEsJr@Zaxm}v3-H?@6y4}{c%>e9`^3WJ%3eLc`)+b4k@tmlS$23dR z+tSm&21dAE&2-Q%_> zrK}^^4F%OvPqtLp5u^%C7e(2H1;~JoBJBf1rBaqiZR2VzTtmv0QmzJVsIMYXYN>*s zlw+y%!HCVhmu$4}{dn{>+QqJAC0T`nS10hy7zAY4G?JbnCt-IUU0NX4PtAW1o_

uh-MHf?TMe3m25X()PjF~$X#RTUEUF6ebj%o` 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%0D@%W5{Y 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

N^}b=3%e^-of@)r~*oPN9v{u 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%0A<+!S(UzzmNVY%i5)c94>qFc@E0)p%iV`pI7 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≨}bUNqZN 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 sF?OV_u)u{R9}wg{5# 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 z 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%0A-Yty9Fv(+_R@}+mUor>9pgvk> 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 `X`YEaTHC{ELruP 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

%pG3Kd&Yh-3U)}>Fu?AOQey#7#s024s*C+Wrv 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 z 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

EnsD2d2ZBkx1rc>w5{kzU48%9e<&>GE= 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

>e8#2 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%0DjR49hW-z4*F@9NNer()9lYz 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%0A%Q@0j^ihEQo6E+)#E4pYXwy8RWCUNz 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

ah3*;@F?AkO2u!^A^{Xyt= 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

>j&OX7wl&7|D$ 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%0Db&n-g9AvOJ))pvqn>4>P@gznu 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�j&tV&Z0p9p}PwEcz%pI8{|$)Jqe8%jr4g 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%0Dc*)2j7#l(Z6 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%0AT|_Lq&s%i4!GAK3jE*8@aOQFzD~4Kw`ncIAdy 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

!HS)@uvGPG>;HINhU0UI~v_zE$n&~Qs ztICf2=qXO>q$6xC4O+>N)Q z!Vpr}t9Q!GFRH9y)(Pr+tnr+;io!s6tD_ePH5SI+#Skr0zDMJE6;v3_0(`me>lBTb zT`9|rYa@_Va6CP5=GL?I(4LhSA^nwD#lpUo|E-HP*#EmOiX#~5W@3l2m_r>CQ(sGE z@A^4)$x*s_Kg>VvJTJGxbW9a2wmdSYMn^}Nh2~5J3tbqIE|`N&H$;v(hO<1Gc`&9B z4@!Qq;1EVG;pj070OR8oJTj^kr`b;?wu9Sa$w&9i%AWKoJ{xp@GF6nq229{y8^g;& z;rhUv$96ZTwo&~SNAx}E!FUA2-7|y?=8&%~6?{o)i0}e8(W&|4#JZ3P;pc`q2z&1Q zF$g*0_`ReR=t6(-N1Ao!1N2~K%k0?27%QNj_vv~JjVMo3fYUpBOFpK+g3CHWh~#`? z+-R{J-xTqQ9Ri^ptR_!{<(p;CaHJ>Ex|ZtI~@Jbo5u_{>q)lbwy3dhs>%I zoTH2!A1@IBpfRi#?Gy?7M`?%03H+psCzcg+gqUjv1-FDDi@XX|nHzJ#P5%jO#t;4+ zO(!s^0O^Bhs80Jk1T=|X z@=f6*HF|fFz&N*3w(N|up|ih&7YJKPBz|zyc=x3OAju87a`i&O4PiBJMmULDzUAh# zP>El*1j~iX`IT3HoK``-3!o=7`;K?l3ld>pYD;y%V(|(oNKZoNGwP`vne10^GouD# z#t*(RzhcmNKd^dr_}P-4Z2^lLhx2#EM4sS;{P!lecXo_W-Ogi?$?cQWN?M4j$`D$TCd4uC)>VPsAS$ubv zcAMB4ECtlnO_DT@5<|zvu9Q6L`y0c%W~e=h%|@R3m*pKNmG3b0HbeND+XQ{Y{xC-y zQLW2s{MtXbbj><6eS8p(QZKI;#tJpZ6@4ERPy&U&jEJc#3B_dLQ9}*pod1EJ4%&JH z5uC!eZx~Pj9X@ciSQ@poaI`IDz*9x}6@s%*8hV7b-3DPvD(B_t=Qm=+brBlw6vQEy z`PajaigT~Lx{_F1`S)U70Rc&hrx4>eokw^x6ZdI0{p`PW49@IAc2BFyz~hHSwSE^< zpsX+L=XQ`9I?o99!Hg)$O~E=zR1qm7s5xTbsiab-f6|ERNAGexdL6J@+M>Rm<;ZXD_IQdK>rn%Uxra%F1Ri z_p)EO*ur+*%aYp_H0MKya}VKyxmeD?BM;qPbq;M1>n(_t1T4C^{CjA-R-2wEaLW4c z+pViz<-(dgf=NTpVh!kGtH&WAQuwy8HAgn8i6Eo6C~7e&xyG0vh|Imt+ERNJ8@&fE zo1w2Ig7{%;^{R2r3tKo=aF@IRgDR9~b_g$9TE zif=pIp^r#Rxj}XKV2wuXPnKS2<)Ly1u8+`HU0@#3(_N#tcm~*sCU9H8iSxb>_M^i= z1m-tFy@I-~Yq!bh_OZtt(967x*IEr$NNPHdt;K;Dfv5WdrXLw~rWGy*r&8g(-aiG? zH8))4CEg!TYL)XG%>4R9_`bAz_-lRqzOp8Zp`Dpcik5(e*o1|a{gvdeNM63RaMJV(C$LPID%^1s}g!}mAJe>bzb`29U45$@0PUNBC?>Ovx-4rK zjC=4nr7_aPCp#%;3g&w9r3Yg9O=>N}zH4^<{IhUs?zA8x%vOd6)TzrHb#_vny8Ssg zaJr1E8s&era6qYf0!OH)la_cvcon}jbPpHLG}^XnEU{B{@T>hP>%r%H;KQX-o{;OY zX1M`yN&tA!VxFzeL*X)*S6cb&RuyA|!`83fs5)-NSAUy1Dyy2=V*ov5m`Sp z(qh>?mqHu!ZhZgfF;lUnZ_C+vR^NVAy@kBaCJSKItW^vG^8;VRKza|QgOEw1fwC3H ztGmWc+ckT$zfy;ueTpfR?E~)AayT~FPmi#J7zEsxtZ1??Lg&#=SxrjQ*D4C34`BZ9 zHpX;vn~}$dxfOLWnm$Pej=fmTV=e20Ba&U#R%ckQEqf+>w^W+sS1FXV_idWZNnF`g z2cdW#g-A&N7}O=%ddNCrel=b%t1=miw9TK2mKjVcX#&ayS;rOAqV^{}xys~&4mLO_-# z)JW$ijJ3**sbjh-KID{5g$rPfkTjb23=nNJl}_(r8NWE4%W+xXgD1kxRyK$7CrgHI zkhjZ@)yuALteDp9+r8Vt5 zzVqJnFJ#j9MZo9j@FY1M1a5!_CW&qo9Og@gJWh%(J>Xo}7}O-a1`EBFib;p@VE=e~ z5lzqc4x4%NID))o;Z<*#2Q`Q@t_GujjV?La^O~kbo%VH_w_O`)&S9U=%xK2t@5z}a_ob)gdpqSF{GpG( znrw=2MN4V+eEBqK#lfR9ls{t5tAbtvI&4kLK(PixUC1$sZu!(2>#>#=?7KuAAWW;i zm|07njM*>3=rk_cswLp(d;?H`3KO6`*zdWi)q9hl+>PIzRA;c`GFrpR+PN=ZFZ=T6 zPq)9{+Vav-osFo4 z1cjs*R4c6I&1;98N+kc@0g8YqV7pT&SEva6J23290%#QZ?@(yR01`lJ1RQ5sr34M) z(bug3Ox|gWxD$Ldc6A6n)GAR(`-m$E();b^t7MPM%shCYk zDYS>-A)++DLy+nl&!K@TxajIVY|RKe8){4K=dyYFf`S!XJ;~c>7vqLddQCU}zII|m zZhXZ<#{vWbl{lmJx`K7{__Og-7<(x&clRB7uI5IqM4H{Zau|r5yJ1TH=s^h>d>RU}i>6q&bwP-0- zG)KW-T*`0T(o$Ap(^^^~l30kR{a#_Fb*r{5zp><&bRK^nLOI#ZwM#NEa#T&AERP^s z50=eC^GiOqu8{^iX+OUNA5ac$tZ%yG&saU4?lQ{Jn9=1NV?!o?S7FtCCu+kt@xNKI z9d(DKT)C`Yx&8orb?ma4Vi>--+~F~LxaPVUO-NobI_++|jbjK85^Inbey}ABZQ=+} zNt)Itq~)AHXO_girRDAC7fi+P;^-He;<(BW$d*TI*=!pfYuU^1ckE3q(|UxhIOsN9^>u7{sa?KJyURP2V8rQjwC_?vZ zMM29z2P59oBTQvErQ`Hp$=TZG*$Voa>-oe8GJ|A(ix7l38QsSWX6EbX2r;)ZSJX%N zl`@Rl%%r#7oPF9XLQ8EC7A%q#{f8|3R;PUex6aoSelP=v<{g#p*N|l)oH~s4S7UjnF{@Cd#&LdZApgC^)fF=ccIO_Rv`&>X$ax?~ zK9G+T+AA~LZgTyj)CD5NXUJt-8u`@s_REe@-zqPh%PBO6EU^1XgLIsUZ z)0IIELh4T;tg7(sw+rg#+@5LJ05k)Mv>B-qAmW}za^Ka|Gg?+tP7Rdh z^01Bd@Cic=Tf68lM(1mbDEn_tM{2obvl3b^Vz`5G@s*4?b?Elj zzXqygZ_-&q-4+v13%TbY)k|pDC(Z-2Mc6TOpsue6LkTENc5<>BWY&Lj4uu2Y;lGz9 zwDN-*tu>QTA0mF`j(YfB3TWx)gQcm2UphQr>!4AY-PB8xnT?gALpQbgw7F+~^O#;= zKDr!Hh%=~R3lHn)@X`DiSCl`~u+;nwl>O&;+|`k}xV2Uai5l9$1CEw=#FD!yfhueS|ZQqhaq8YAvC(E&Ij#yH@-2{?2=a!=t^;6 zgoENlFd?6_@|CDSKm=P2zC37wPqI(KP%>8!08hXc5Tj1zNduogOnx$;0!_N{EN!s7 z0*CNibN$bp|}@ zN-$rAR~5zTXQPN=m1UXayh|7E*I^izTJB>i9Am>S(WI5%vyE;CvdRT5gLe2Kl)id0 zE!p10VQRnTDK<5wwGPx?H`2XA)*Z6E*ZpgH3nk!&&~qxCkW@118jsLYdobGj;?%Io zAjgimvOic-Uj*c=X*eG}JDQB?W|x}^gW1?rR|W8%4rl5>tCP;2&gK%&mk(h};2q#x(TL1BM6JCXd_Q`BI|J3+ zq|kSzP86G|$Hz9`tYu?}XNLT{<+w9s=`35J>hQLT+=Zr1JdLAqU~jaLA?hHrBxQ+% zN0*avsF+8eGtKZ~amYp9jPwYjfP3zYVULFjdENJxeq~B(d0Q5iFW`30Yk<#2L4|pI ziu3P)awxzIxFS8ZO!oO^hsc;$%LS5yWZ%!zv8vAyL@$D-{BpLWaEDz=NtTLD`H&ng zr1)Y*5HMC@yUu11lJ82MQ!~a*p{qsOwqrzD{WPt3uAQkKEM`Zde7 zW&`NsVG`nza#$^*yKy%pry+^xj;+gPnz!>6B>mmZ?#n41XZ(=J*1}zUK*?6iy?7#L z?O4MOx!@C3(2I-pSa`X_pnO>&i9T2?LOo#eI|_<(8i7bfa9p(+0=W(*kPt+~ydc#o z9I>BV4++MFnz?^FC)|)w1|1?VHt80;0!W-AihL#*?tYFKGJA-4PFk3? zloos=h6-<~Z_9B<*%+?HSXy29437MV?vPNfj8{tUIK{@UbtHFa9yjDWg0-(+0b^gh4W*IV7ZpWdO>UHYy0{=LGK5l}X4iji@@)VpEvT1f^)-$>Z3vASy1#R&=AD;IHv zHdPUC1nEAMb@T|LQ>Tb?%&Q{110kpmML=?09VyB=!%YiEmpJTMcgmx(79mW%bCt?E z+8;1TN65ep_$Pyh;1#qca1Jun)con?z?cx;&8X;mDI(xCmd-;bvEQe#1>BM&d+Ep{ z_m`Mubu-Y?lKmmXsf+lKOPjiOyuGy45Jx7)v+RSCgXkIvov;5`X~6WHd`|atJ z-$TL_H6hGGK}4<{o}(=CyGp%;X^I&n^%}oFqDUdlo~|_Oo$#4)CP^6i zb-9(8@!9@^Nnmbg7xM!F8i>nqIUbvxBf6-7-8{Y)KP;E{X7AH`JiD@cI9FWafWJN@ zrv`WJdd_s<-w9V0`1)g1=-Fypf-D4NCQ(0gRNI;PM#4qtt9yPP=hWXkoTUvyb{b&y z+w1j2rK!B z62mg%KPc9uakHP=VyRB)cNZ}Jjp7g@uxi|%?YnXx9iv{Ey06KGB$)qz4TC?gx4p6b zW(i;vcfnsd2+N+sF(bISt@B2&o0{&CCfqynG#Wl&sK|br?5a)e{9` z_?(xPBp4e8`$=}S0?X%jn#5GxhpfKDvu9nxxJLs%m~`8F_{B{_*b5@iMVtp0FrXo& zF7{~#Y9mDH{mOh9luq@P6XUPf-^o`#A(Gst4UEXydw+Lk&@P{armrg9C{$C9^~jOI z5Yy>Y4qInR^!wh5;UVaaO|U#7_IGEv(`jb&-H+drV&C_$0A>U;J}B5-Oku2N!94x6 ztfDkF{Ab|Isv3!@;&*(A#nEq^S;JL_BPj3odS?+mQ1);;KF#mWU6%Z}V+Pyfm`nNK zx2G9q2OT$N;T{A3hpcxD&g2Wbev?di$2KRnZFAyGY}-!m*tTuknb@{%YvN?`=KnlZ z=hS)6x9;6t-B<1E553o3*ZPs2tX{zXVwKsB+&c``fSEQS6Y(3%C16pFL}szM%B6o_ zVDk9g$kEMj7X@<G{0N0 zK1^{m-k%;BdbqK4>o%OsNHC;MoIRebQLtlYZ!x4k>(z=Me0}9aZ_C@=94{Pg0Y5*6 zU|pZiv$CV#yXOcK*t#67y%%nz$am$Lm)y4{k7-l;>h6BGUG2-Cp>=+??x0?>`)dF7 zlC{q#fZ0SHswIoVP7#+PSOtjzou52iUZC#$V+K}TFKyK6&lcveRqaOmtKT+68 zuRsp+M1RAl=}Lx2y?56Qu%b}UQg84IlQ;>NKV#dV^ z-I^Pzs4>imWk&m_{}(QXEM)2r>R$+f0ZE8F3Ros~B&Y;_Fb|w6<`{&xr8H;vrJAg(y)LkTdUos z5!2S6#=%kS;jvZpac2}l0Xz8AzjeaK2VBN%?ogf-hdLX{WcOFNI50CvDhRwpqZ_v; zOXoK!9yuzC<_{uu3sih>+M{HJE~-Mp2a!R%fR^2);Q>bi=1AN%rkeJ5q(f@;4jLGp zkXldX(tZmZg(Ex}mg4;Ix{>^new1I>1Krz!8Gs4WBk+|D9yat8I)JAz1q}ijE_`rt z9A}b1G}5N-4fx8F6hKl zc?MbB$!oK`jsD#)^I&F4OU%0sa&E_4xCVItEk6Q!O)HW6w+QY zZ-!5xd8N@7v$D3|WM#Wau&kc51n4x{oon++)+A0YXP9|oBwB^F+izu4qw(j)#?6%NYQMX^@MWiI969Gq|;Q)cQn^AI}^gmZfagu zI%rH2x0+ai@|taD4HDO?C}zJESC;-8Yv9GH!pC3m0StFt8@I=eC?*fQ0r~55BUV<@ zp>Di%@BO2RkQ8TK@PwrX3_eRZf0x4KjMOMv>2&cZj?PRl*kSBWz$YgT&S ztYa@6TD-L+cOrd8zPiOc)x$ML`wA#I$V_x%ke0wAI~xiGitk~s<<@SW`R zKOC@BuSaM&P|j53|6*KN**Mt#zXrD{?X7P@7z*$^-bu*L3{#`}r8xHQ56O(fxF1SI zDx{92jDihqGU>BLm=%v3B}Xq@2oT^L;71~*?8JOr12);q1gD<}Bh zuR9;ie0n;%wyPQ=A5J#@>}>z@{deu#$_4Cv1J1fu{@HRB_=w{J-Wff8Y#m6P)T%EZ z%B6RAdVYkNKztZs+f{TKXp}puOAir2a3b`+em= zg25jxp%D!{k?Vo7cV?9=(z(oC*FK#pWu^GqzM;CziA=<%G1bm@vf-hXGKxdsk8eEs zHZaIz*Z^TZvz}OE*@eD6$6=Z?bnLz(NPf-u9nqig%Z5~`LQ|$F?biFBG-OC6F4izE zJxLB@YxJm0&->86%ZlC8mJ*%X1k0bcv2E+U_qS_P4LbJFFrs#(b`}0?4WS0*45K6U z@h)1545xbc7GC8@dJ#x1eN6QYw_bW0Kj6+rv9@)p8JK&B-r&AzBW)p0uS(*>JpQra z96<^gcNSB-y4bs_Ney)mp`!wWtw9sKG#ph@q|Aie%D@3&Rm}B?i7Q|oBU+w)80QvDkOHdM&AelfzxFf#uWyY3-I=b z)?kXRAD{we!s7`}Y>xpc{z{F55&SbIKw6hVqp_>vQ;}6HYu>iDG~aKcaX8Z?C}&?) zcf}&0rGhe3v36)ePld7!}0~Zmzg?Ec&lO!rFm3 z1w@D_A9D*Se!sM%f}Q>Kx^bPLOrTJf>DnxuXHqG75FkL_$p+^}A-5*<*ws>eOyAO$ zaBHX$qTSpgxZ_87aXQW~AflWrZc%~il4KUQLFZ@rBMQo{bKTU2keF-HjN0GZfy5}R zQ+wmMsYhD57Q4Ds7T=hdcJY(B43okQbT?!c|kzolm2zE4@rvU*~5wMBYKsgMgt8*&ywvO=hEMZiMAc4L3{yeQ~lJWAwwyTIiBDN5to1+YH?M$=N8bpiy1SNaz zlwAh>icb#mYG~&0y1*F@O^;W@YBsnOqr~o2ZF=0eJ%Ynj^RoWixM0s0{^v%>Y-cST2@EeR9m+Nl0yQ6Bt4Lo7P4Yw4|3}(;{hL zm+JZeoHK;mK}}fYw6(hhX_GI!CG-xWKZSMov?Jo=iM- zn|V@G=uEwDuv%vLe!in+h5erV`tnz-)Qp9#Jusfwb}N=1)4ynlRT_1=CA+6WxB!Ec zJQZ}^eV-Ew-^M6!^D&LN&>pM}Rf5S)T{NP_hTyLKkh3CdL+u2RaNH*Yzh?V9ZT;!M zfHBbxqbbt5qS0iN?36-8g@4{cu33hWNvZ)OHDXHedYYo0g7r)>raB7w1G1J5fB2M? z5okhWxR0DXZc^Ybx^!sRuxwMR{Dx+&32@Q|(79kP>7Yla)(k`1K}fhkety+(i7dbAH2!!e;tWci-1+KHr(WuyM~a0bXKm zhCy)dQ2I47j2@&AymDokv{34JtU=hWCV>AMQzF5(X5HSOqD^iF4zYWk!mVq1ql z-S#Wzv!M%%jTVNcxRG(Ca{FKR_Ix}*j=KfC%D~Sr2zVhbO>o$aM~>x?8s zTH&Tq$w9@{I>A*DpTFkrI{Coi+C>c7c#+YKCfH>xuCx;~YRJYSEq>nMrMjW@84$U3 z;v&oX?|{Q>nx}Sb`uG~zGPOY3L>xr6o-4@9I`vlR#S==0o|XNmd5FV7iQdjvsP=L3 zFMPMf{=;9Ld-@h&JgEbF=i<3FE5n`z{BR^J$Bl2K@6LQ}X5X#+oW@!v6oP&-QH^{R zib%U`rmkHrr7JcaWVuEAzp8P+36-z~r7UAVswCKE@3Zx6#NIjh{1I21agR>y2_E92 z{5kH+Cx=Z{dD#aBm~F#9xU=$IkMT&E`9*Wdp5Mh6s3B}+yGmG&MI2d20Z^=(dtR9dzVp{e80`q0YaEZP_%*eTPPfMKuz;mvk0#+q z7~4d3`H%sw5;npwxz3~hZE;B?LO*}xrZnjX{N~DJyxZ8IBX z*B+WEh89&a>SZDIp!oH6XaMYFlYkDl?A+;ZtLWK*Czz(Ou4BVx@=3;H$tCEfP;W)5 z{^^&Uu*0kC2m-2f*81tpXTOHM8H=M7Jyu&3@2{Ih?^xz>b`I=UR^%NK%`|GwLnP3k@f{GB^IVY+vEbeF$_Fb3u4!=!*t! z&v9SMVNdJ{cAam2^SvNAipuV#OXyOPAi%me&dBcx>Vpmo*yVM_r@buVH?`gq^{;`Q{jl!AkO-E}K3&U3jdu=eQNcVQ zxEL9C7Nt+0NDC1pX9a?bKl5lWyGviVE=oTFRL4vyWG~BPkRUJD;tz66$w#8I2d6S9 zDqrtqyebf$blKe-U}d6%i@Inj=@h}tjq4z)8b6Qk3M=h|SwBRKA=YWFdN`9$*yfTb z8GXW{dKN5reHJ8cTbIR`Z;udqHf5*NVxUq%@r|N>op#*~ivTY?{L6^=;NI~Z-K~Kk z(#oFcUq+Vshj^#})M^5*)Y31*aIi9D_YsyVRei7vb58Gx-p+ks8(NQVqRZ+mJ?_E; z@yF#=14gqFs%X68y1e>lDp-c-P!qje&U@w}2rpa|k%2vJL%Z8qT#{@K2{gEw+ zFPP#DI)?jzsFZ)$v9uElT|Me29i=RV&v6TfkTj!+N({vV83-zUvs&0A_I#7=%@5sP zqrD}3nlO90S7CVF1R-GrIe|ZamGW?r{AVi_?BZ@p033ZIM8pbUXhI@3M0s1LzUK4w z@RSbpfS#@6RAC1$BnhWcs0XJ9Dl5M^rPz-S2P378|5f{{^e>0Za|GkZ80nW65hNeQ zM-)`M;d^36ChH2ky!=}viO{e6v99>Sdkh$il6Pq@{G3?invOw& z1Hu`G7T;dccI$%}BW)!2|8CTQX7RNqK00`8_#AkfqcbGd3-p z1+6Jir{G@nr=aaGs|+wgO|vglAoRtSWCMDc6=-DbK@##URMk0x7wtP~g~m=OY0Xzf zPas9HHe&?yh!(_85Sf~*;E(Ab+4DDZ%4vmar~XRP=O+ky*CP=?)H_y(4PjQNASa(^ zebFbi{5P+}H)1d?-|y9`#MP5Yh8d+U8p!1qyV*BfY(AU4EE{5j@Pop6Uy%e?zx{FO>6=CFb~fFd`?;Io6pnTD9+{NJ7x!Wb3a%7O-21kM6mLAeOlTl6+BFX}9kjti=y7?8Hop_=TdAha$rfi9_z?+_uyvB2JJwfu=cX7Te#LfrG+?Ry}K zB|6@7UY14awZyG`>9s^CS)SWbKq+x1XC=vawlwn3d;)wP>wDlwEn+dmJfA zYe;Q!`_(7TFqCMGx`juy!f*tr{EE;XIRxD5UeB8WUg%cC8MY}}%V&&5e9i~_^_^Us zLZ^lpPzgroqw4pKdm0beK6UVpLi1E=mnV@>^Y^`@7*H?vMd5A$2*8mES1dlSrNP$x zs;~Tm_{HQ|SVLJ?Gk8%N3DREuFU%PY4so+PW=>jJsI|VU#m*Fzv)XT`G|a!T_8#r?qHqI)OJ67jYGX>*$5x8hn86TuB_JDr$tf*B-wQMRy4<#aOrpZPZkSg}3%x

vFRBhF5)M@{PI{Rbs)hSP$vF>o4#t`hfQ(r)+y9uIWZhWt3H$ms5ds3NRXP=Fj?tMg`I2`X{DX?^l~zmO;jg--++OIp29i^Kz}v6%cwvW;sDJ+NgCoUP0;&%tV5<+ zzIEMI-(B*qD6p-n)FII_mi-JhuGAlEMbc;lsGx35F z6xVLiY`b|*Gg}S{#IpOqroU{)D30cm)aTC+vo9f#z2M~Ed#*`+J<0*I3u7M+xlC>C zo=|4e9D=zn?VV+j8LZY-@v_%(6}+M&cL`@JWl@HOP|iIPfr)h%6ftpkeK8_cW<5R& zupk<&o;KL|y*~^!QT8suLQGi74P;HuhN-J7&23M zaK%B%-Vw&+B+3&%MdiGkSm%v9LgPHD-lGD#&UdYZ*1b z?tB>E3zg)CHr2o2P6(-lgwiJu9xenkhKesE+)vVvqWebBNZvf+wWWhIA?+U*iEqk4xXcbQfR+3#93h;G<}?@d{??W!%~rK(k8m1_ntp2)s!QXorgz zEf><;Nao!MECZqSqv1aoUM^%T@8&2uQsBVC6rjvh@r#xpOfRP~^uY+0l)=8sw+<-6 zj%*1NXWiR~)@LB1F= z?gt;^*W;@8xharI>&(PqlBxs4m%97>jb5-{k=wA;~e7#^GSlhD@!G@Ln;(?4_)f-X+BHbJ3{z}7ywX_{k2DLYdY|(U&R42k^N&PL(#3Jz5jiSUv$bv#k zhXNssys5q4&`6kmg%Kg`(95Jm7dUKeia1`g#BMq}qafjKm3{ItR(r`-G`8y=p?p2B zG~aMKj46Hq*)42avnsd)q-|R@?7iUDQC9{J>v7Kj$Udes=_;Buk6*Xn@sHjecLvk9 ziM`}#qih2k9vmq|4yp(~tXpJr?_BuLD|~IRd%IlA!8SYkd7Ss*a{8{<^e!RTtzvnC zE!dYrtQRv|^iU2jEQ@_om~#LmnMZ2n!fk z5!|*-X6Di^Oi_B_A6_EBy|2y>POD7?m8bnCU*(miMog(Pw!_(-Q3w`on?Y9 zC4(BQ7zn3{@hUi-0rCEf8v^NuaV>sPPR>^in%gd}JAbm|8Z41orYMkYJ}2*|+kZV* zKldQ@;H=oq=ya6=a-Gd>9ONBBv5K!6F6c9^HzCMb*0(*%bJ!|`)HVa z73v!YV%4;1g=MXHXtS#H^qC_rao2Tq9tQ>Xz!ko`Ijr{RYd;ixZ*;8<(N`nopEkZ! z+C#k{F3D{@wGFhYgcCfCUumL!2pAd8p8W5Oo<^(%_TPvGBs>Qz7Xuf|Pe_CF=aN=H z1w)9$!o)?yM5M&1p{Yg0!A-=PW~c;;o`&!ZjPNtwrwuHFQv#Tn+5ZD#{C`329v$r; z0~>}Pp}}|1&dPcY6$!PHlKtbanUzY8n0P{xhU^ zh5^2->Kb2m{gQh6d_GPNyi?gdiy9}h+Uzyd`upfmL&m@-lczLw&C*`%chT1Adp{qq zv#La$pS9iI4mUY>2M#3;?o@Kr2b9&L=vZ10JO?Ia8oSk4M2tM&jwrlv{KDFEhF(ADer>#VFk)Y+!r{0}Ppu@tlqovjZ8 zw{2}V+kL;4G!rn%XBpJhqiP9PwC85A52IYIF1C#MoRU--F5|NnA>e+$OFBYDmZES! zO6t+? zR8=#qCc4Li=Xj*4WtFPfyp&{9ib%4Lc!y2yDEhJT_mj$>w$ z6F>d;PM~Q+Pu@Fx-bSy#kNcQVTV1n0yTRd#t4uG-o3sD)+Am}fm!P#&3uxchrcJkN zD>~CV%{AzIf1J+3nNJal2A>svw(I$@{CAD(EKYPPM^;!_ZQsu}1n^W!?uMu}NgBf3VZBPI6nu0g+Bf_Kl5 zWQQCfWTH4MGsm+rTIIm$wBbXdBf|-U&0QtI+Z4tx1Q~+O1?+*VK|Yo{Cp?l~%xgMF z;J}Z#eYv&`j#~s|j?qM)-EJ7l%)d7wtI-9qY4A^FI!6pJFg;%Z{N15lY;?2vXf!wld zWfhmrI9ux-1Eby}mwFE#qd!z@=ywUbgnzMPe86QBtgh!DhJC|CMma=ILbCZlL3EY_ z8wz@26MT$AJ@#b$2Whg^s71hXn0#Dri`34YCM??jNO0=o$z?m4cc;gjR*(m zbo`}$<@CPvu09&;V=(T9J}ujgZ3b?0r!aD|gI?e)%!02YgensY9fEnsDAg|f733X# zK$mR5W)S>gC>iuCtW%Wf-M&8n?w%1@y%O&zPYD}(Mw>ohnq#`kK})dk-Ye=taoWuA z+enTG#?a?Kz)-MIJ}RppySU03E$W${=7h>w7Mlu7dOP<7K!s_5 zUNCLSBQcVQVF!PDGmgkJk!roJY5(?jGStdUD)S~eZgV0G48{_y2AL@BxEn6!#*QzI zJ`dTPJ7-$pFMITsQ~Pl$+VNgoEWfuxaI(y+lD(NReIyLi?g0X%r9X)^G?Hbu8Pa)5 z-9gb$eKuyv_$1Xb%079*$j>|zPdSA#7@-#g$J#UBxd zT)vK4XHeiDLnXE=;(-CH*=;wfQ?>BXs98c z2c+YQn(-^783$z^#eN!=c&s8+cyYMn7BTgN^Uc~pO8golL==LNciSpXS?X4kz&diA zk^4xS!*od3s~CwPaM)zxy~n+9c+DWh)h9ymmf+NO@Lxo+>bNycACJkt>BCW(o<0uZerfxiU2>9g&s za3L}*@o#+gb_}k*>X-F(vxeBMD}%}+5Z+&9(SJ9_)rcD2-Y;(4hOX^s1Fi}4S+M#- zPi1#+THUo#x7V|{nx`kb-MpiaqvdnbjYJbT#Sz7p5r?r(_cd1K=P=?gD47(AnfT)p zEb3cuqhlEIk0_Hm0q0^(yE>;C&&V!#b>xftKCY*Bi`y3PeC9mEXR$nwIM6Rtf4pB@ zZlCzv);?IwD+~D)Qllucx5yV*A@>JkHKWBe&%I1znS$x=WHgytT{GvC#9HHqX4tl~ zEnmyp{vyiXI0#P%QE!uLF=iSY(5QDEsfjp&w=D&_mZx*;|_b=?bNhrocB`yj;a#vX=M7Dl6Z z_r|CLO~?;L9TmyWrzg@OF+GIU1}Vo~0Ao0pEkf{wsAuoSMje{|*v*v~=nS z2^WGTRHpNh2*_zy1P(W364pW>N#2M271idtoZJQ<(E0zscs11)%qvHXIMC^(wv%Q; z#x#;Nw45p!K6vE0ZY)X2yEXl_=!3vB1>d$?Jv+OfG6($?-3?;ir9rSPe{RJ5V3yUS zohPo<4LFkJfNg*<`KAg_na5m)8^Ou(FvtqrUsq}T33x|hvlvxNUXtH7a9@HmL=bUX z_8jrGI^vU{>o&^&*2MNqm>#Siwa!$AW`3a9q`Hm>nHu@IyF7gZKju06DE^*n?MoIT zFQ|o0iE9I41@BSZ6O?3UTfgEz_2+Bp&p4(Cp#D$PfSTAYF$?!@8CMZd*>}Nc+M4<;Hf)UxxlUCP)trRRTUV;Z_{SiT-T3 zT}IArng=uu1}Pg1$oeXsVBw-U>@=*Szy_#;i%G^=d5AY=cc-cGg>S>|aZ4s;NLcs= zfOG(wkk$fF1?Ummi=nTYrhju&STCQBTSur4^I6grWnBvM2Eb3T@fd${XNZwvpfD^-j2k$VaLZ{S2=#T3g-PY!Fgkk}cnhvMN zWymf2wwiA*FnRpF>EsiC^ASZ6T(ow`N&eW%KZ-aR^cb@e8H}yl;xRFZW2YT(pnx;hnn!o;l1;s-%8w)}GxoNVo_i1lje|wTPTN zY(@awo{T>ipFb23$FpzeZqe=a*m`6s4s&cr+CqPz01sI!xqu}x+Tc=6M^L_ zTx$AH>wH+S8(G8r7r0K^3Z{Uz6+j+v-C=ch?~W-2%G}Vj5-1)(QlwGQgQEhp|Bqi? z-{2qQf!<87G@4>@?}lE$*BJ(Vt%YM(52igK+Nfi&E80+MQt9x2`WVGzN+jgm?(}<| zEbMp)fJeR#FX!^fO(WeV``!*O<<;SLJLe%ab$h~#_x1D>@*6PSkpYqB38_>3`;Z_h{X(K&7|yZNytmiyU5p-0U#ycoS;GAi71$(bF)1?c=rn`w>f_akcyK z{h4806qkh8pVpc?v66mr#CA4)UHTn*#^D3I40?`N(-=biyP`jFFuC^klUdK=?;ibe zsGl19X&X(tXc0vF&u;uHg;a>|_NiS^Bgii175#Ne+$6YEbWi;zw=q3NZ{Ap2Qfk^c3pnfSHSkTe4n z2Sd~=5x4C^BgkymJB=g`&pC1vq^L*D&k1q)&~P=xFuiENBv<%i#inM(;T-tZAtb&B zXxXFg?_@LKPG<&#bJFy2qN!Pay;R6?*x;+hY^t~c>YPc@BJK>Rhp7^7;|*i_YYh)R4on-`r5Qxu0Ti!lc z0&-)Y|Jf9zjB`S}C3aY5bgJ2ye;b6DGagJ?r?Z!DN6Q8aa$p)8D!6v`J!|<>MU468 zxR;KAc-S^Z*39r_z*Nno)~!+mRVA1^&zA=WGs*M<<|y26J8hkO)xC^gR3Lb-6Vknj z2ZD1rBjhxXDyT$hg~grV8ez^(b1YlhvlW1yZviqI?l1FS^Kp?G*+lK@I%#^i1quHO zFCV?AYOqdo3V>NME}CS$KUV(DvSX8-I?pB%NzU{~r$NdMHl1~JV3FPWRNBlZBRCQK zk)3!32oEbvu0JG-=ZoAQxX)Fg1s<6+?6x2>8q9~&M|g|eqvvAu$v6Rgqa;vLMi>XvqOJ$(Ka z?VXQJcCuq^V?U24sw0*NAI0tO{wlSA7(xmw;&gC@^;g5zQ=7$KDY7lS_47I_dXVgmS`u6y!j=!)BHQZda?zjdt-j29XjGzP6q&SJjy7r1j6=->xWZ`cgO49`>#@U6_N zdrzL!e!Uj*^`*&4oeT-a2pxzwos|cGiv!%$UO+cvaM};_!G^#STM|yeJV!?iiSxz( zDddV$W9gIjeye1V7+L60V};!a7SWTnV9Sop&imt^ANagrDBgjbI70f0t$i8Xw3FqrooRIflzqp&696E8*yZS;ik?e zCkf+IDYt|x1un^v#$n^i`&Sy-R)%$6__kBn!+OJ$E^u_3LkJmFVrj%zfJ5GkZMtyZ zf^(e@`JZq_wp#l=H3m~hs_cFEC86B46Mt<5+yBv@SZmA#%KBTS2lJk5q7 za4a}WD!i8%O8SWYYgSNoFzYBBX0h27Y4}F(?#UH31L`0ht$zL$aQ>RfCl*&Qjl0E! z?L)v+T3ifyJ4M~AcbY}>YN+cqYd z*tR;FiEZ1qZQHi(WRiS&p7+~T``zo;s@1jrb>Gz&&f_@9LXIi8CC)YES|Hpsx;kHce0Ue*h?-c;U3Her3 zJwXL>k6h{CxsOP?Yspm{XKO=D6G4pIrcmh+v_!Y)m(Y5mdF8QW;b7t7yxyW9hefM~l@ z7~(o|h~oA2S(A1n1lT-s zI*L>#c)ySo3r(Dl7)dOi>01OD%A4y_ZoAIE#|uG8aun_-RoOyPHge=xaRv(kru0Cm zL$%qz3gP&Zn9ze|;W9+{>Y)<=UtXEvGB1`svejGwD>-5xGI1ToNGfz#CeM0ooYs;3 z&~JC|zlE7UQ(_^AvNAM2S5F4I#1gu3)XtMKTsNyUior3InOlvP604}P1*#f_qxn;I zcb*Yb=n|_T>SJXHWoL<-U)(iv@PC)CLWfSoQn7vuswKRTYuVK zpQQ!>LgTHXDX#LN1M0CF3o1*d)n#0IyzA3>Gi1{s{0^I3{>3I9H4aCL6r%_%mx!Ez z;y$HO2f~!&2)cpzeXL{wM)M)^{-P6>#MEJ(()+bUs*+(pFgqAFM-lL$P{QbYw2li# z=KB7d5cu**-v0Ml1bw9XKr^MpZ2P9+$g3MbBb^n=5+BBr9Cg#^x~U2HBXRfQT#j<>AY#$BVXyz=&57jf>i0-tN_PxB&<{l z^sL0l{`pN*erlZ`Wl|;PMGf2rG+_@iU-IkQ6BVz5H!!#6Hfp@)97{Av6gh<+suu-d z>kqGdNU{H~eDis1G%9}9vU5iyZ?3^ir8W^q{U!@Ip~`@FmgbHHk6kTM4z5H{qGY;+ zL>^IA5aP2&`gA#*{nFu0At|1zV3=Sy71h@1DIqCL5fbb@lQcBwXc?ffQ9%Cc7cCZG z4bFUKV3Thfdx1?}eTPoVQJs1t$EpKB{)ZVoxk63)U4_9-?P-+&J{;39!QZXIQfdfa5i0YIsWg`1cMdw!S1lp=DH~)U&mx9!KKpbAs|XTxGHfMk z^u$=v2FS@xu>8<@JLaX^Lh_s<}`bg(-#~ zg)ZR81J>V@8Nw^&&I0;K7$bwLqjHzupo{7#O)M>W1lP+`5Jfetwn@STzdDG`Xy}l=PWi91 zv3-+2pdve+CTamcteVM>%cd3(>AhJYbW?0oET)Fv(ya;+%pV^!(tcM){|a#l`YTmA zHOu;pkLyoI(5#k`Cq+i>RM>=0lS?7`)d5%~!T8+MA!sy&(&zf61w8K8fNjF!{p2i0{{XC8rLtK_d*x{Wi0=;5 z=bX#T(gW;#-fER73>UfEf%T=x7E`)5Ub?lRCVN{th9B(50P`&|p(;`6IMN#uy}Z`x zpy`W_2)Du~)~sMnOjavER&a5Y!=eV`jS48!6n|-~xm3=jzN)EkU{R;oP2ID~yuMc6 zRdV>IEGuxgUB8hZ&21yj?tFAvHt)l~96Z#6SHMN{z2ls*EH65qf**%VLL#PPQv-|+ z#8{v=-!dUY!5)qZvoiOpBEu~cnL&ClGClVfk?=Jta3G3Q8MGvzUe-^~A;5-6R<0Fo zso{!4EobT(27Rm=xqMl9i%iXY5r1cp75U&|UYtbqC&D7?pEN zdKOB!=V+xW-pi8z#DKz&u5ApoG?vb4f>qV8u^++e6uILd(6ewitg1Jj++) z6e#6=Ts;XvML6cx1-^77QkImHNmo3wTY2X&E=^1$oh$?>8a92@6P(7Qxc2!Kwk$eW z(#q_XHiHT{qvV%wtZA?k4bDMDLZWu9!ocva0N>F^Gm9mr$d_i)s#%^Dat&B-LQ3S; zW53@5TdDD9GRupRCJwuy#wnjiT7toA>ZnCWCYG0U*J*T*i0r*DLSW=zdUTh25uK>E z1X#XIt7-#w&V=F2Rv>i}RF`s60(3-GNlkg#OB=%-EaU>QtDSc|N(QP_Jm5L;2KtPG zE{n>NB=QK7!Q7cC*fmQ@>OwKsR37%jLsnt?R~=axWc2G~Whr4Q-xC068N+GKrUm~# zshjtjuL+U|2V6H4d4Qs`5+T&i| zOh%f7Gpw!xM5b8G&Co(#F-bAd4f1S$WFF$<_d@s1TrTMenUK!?R83_{ zLyBzRg4tLPdmS0srkdEw0ian)>>Mv*eO6J%BknYf1xUTM?CXVY$a+(5M=8fKc$wI7 zP8wJpTLY-AA)*cnpx$iQ%b*;DQoKuLc#8~$&7BpXx0oyY&IL7*~ovoUaR{GS(Dn0`zT|B+bY zq;N1o{12`o1yK?NF{N=8m=eIs#mV-+*B^%TE@C!@k-zPFzd`31m#{fvCbo`98GEC% zC@doj@A5v0PC$Jrvr^B=)DO3glpX;$lb7-9MG~^own&h>(ms>Z(+8Z0(N1q(8_N&p z?NQyY`}eLJ8Y>ZN@@!o`4R#w(TZ}21iWzH1ic7YDuJU!SuJ`kb)2WS`0#41JoPrvAYW4LmEfnQdQH(`;pDu<4KSD%Y(|sm~e2$*r>;9j1;$Rq>!}pU5$>0#<+|tWT zP8X<*R23zWSS25b15QpT0$*&2V|=+(MC<4zXu-=k$#QrHr`JzbfvWuhVc545V=sj@q#R84;ejO(Xm)J_&C3d&fh9zMfeOmT0SV z5M6>f-z^2o6?InFxM}WrnSibvW}ik8*yv&fBkfkUk_19;{ps6U@F$JeyrF^h%s|n| zkQIkJdcWKO^SmQjvo|(yOpLF4Nc3M&Y|&Z64|Kc1(n1G+#9%_$1d3gWLE0UqDeDvf zDy>$o_C24S3(Mr=m-X(L@z3@|O79L)As@f4S)DV~hoZQHTMvoyP+x?AOoV~^%(+ut zvVqe}m2Zue2j<5TVoRdNv&7+O-BZ|3>~oqM&U1v%>BO-3a9FOrHcy1}=|m1aGfx=i z{7;)iI$f0*$h=nX*rKsi=5VEjk^u}yK>5!6?w>(AnjlWeq)plNbv>kH#24Hf2P(^HRc?CoJ&5zjqe~thP)=ie zB9zwwK*O;NQ^xvu(5{wLWwFw9(l8#B&3=AKTXxaYLS9t0i0^T~qln zv3=US=G9ZpQ?7;lg$EE5r|wn_d2DCrz{3;e3EY30-|5?w?VMkyYFc$3RD^MQ_(%$#MhX`NxIzujV4 z7=x`9ukY%r#6m#Vb7|NIH9gRL7hg|&n@ialOpg+JK{zoPSZ#9ZIm z7Y0c6u@!D;Q;BpH3Rw$_f|T7ipbFw!(0deq&n^cdG-CV(!IIWsgVOzxRnG=&2mW2m z>}e_yUU*Xbl_a0*^W8 z{_i8v?cA1KBv&z_{zt8t7UkZA-fuK;7LL#js#@LSPAZ|*o{K0vY;cz8j1H>a zGIKH*6C2!K31IgK$j>~bIt)oS{d%Fhns7da!!@l$@Nz)RBjLL17?)73upyOy98vB) zSbzm4n8*=e7(gN+DK*^AXK)MLdn=WL4(5cxEr*1~;^%@i`ljL^=r77f(u4L;1LRE0PD}VLcw*aGO-A>r#s4dvmL&*8O!6FNn)e#hZe^;% z3|W-Yo9MdVYL-r<+DB>3&GlO`o=VxQ*+JwqK=T*-sRllM75k3z+G7(CS5_ZNiEp9U zEeqZey6plZAJ99a7bf*Bd94|PeMCjKQoEH^tA4;#xO5$E6Cl@8ryT%b z!GF!nTbVfAHD|*d?GWXQg=HG_u{QZ`wpaJ95Qu)MGu9-Ld`tYGv_#Rt?o;?B;Db-q zx5w>WfbP*cM|P%71=27vZs}PElHo@^2d-t*@qIRT^^M)WuO7+JJ{;|K=OdFJK01)4kV`0)xbf^n;;JccH zL-;%}W$__n&YHH_jwb?(CM#&%)|(GkVLECq09*1O2_#1`*5`BqQ$1xfG?j(MP*jH@ z5`^GU5wC10L$KCDF3m(FPhQPPU?*U8RVcSux+Dm*5K8$S zcT5ym{Oydec?460gk~G$S|d1V)xA`5e;Yt-x8qf-_x52JB?xswv32XywvKXkotnfa z0R161W>=T_Y@F=Ec5BTvw~)m9!Tipxbn0Qz<&BZT{2(y_TB>-klPaLoHz6G>r{=T= z((Xh7Q#kmZ8zg$VoY8h?cyBOUQm1SsF`7i(CGs~ygrna`3qVJ@PQpU8uu)g(nO+T7 z5s@M9e>ZDi#?Nus17>#YX@i=V=jOCE0i4PU{co{iZT z8yTfVRZ^(1`P^CVzi^QPk>8uy^WpOn??E;VzxhaHp+hT$2guVOph!}H#gb7BM`S7R z_O|URcu~*`Z%EL(4ACesN6*MExK|~+nrgs0@d0^}FD|cR#0S2kP zmvVHsceH{bH!Slv*2-b4H{RPD$V47WqS{VOT~s+gA712xO1lP}U>}pauxn)rHM{OU zmnD3GdanDwWmS;Vr-@C0HfgBrdbh?iH|cX>0q=~wmo{2vUfQ!bsa~f=(Oz|>;L)zC zxRD@P*!q?7aNzoEXb;V=xy}p4fP7YT+fO?)825@K`b~`BY8HIaNVQWf8Fy6GS%D+z z`LT>;T$Ac+c8);^M%6V{Ii}@gy(J>mDCmk24WwVP*Ga}YA_T#f_F>Y8sSl26K8jKY zx)TK~`c_Rg)Y$i%^Qnyiab8Q$1S~aPWjJ*CU=G{YC_|&eb-wNkq#}DH08N-Z92swO z*@dxxe&T3x?R~uSSLI;@n2ia=GkpS2$#ta!R*=k75V$jS@-lLL!}mS1FZaVseR{?P1*&9qkM|p2{1@XU?O^X38LuOe!@@<%yJ_}VGA&6SBw-H%=HGdQIfS9TXc@I{ zZgt&fsF;jjSdwtn!|b7nXk3_%@c!m|3zwUGTNkV*J zh!_Q>c{4#PMDlOE0VYz2Iey|UET@?CK+H>i-c=8NNh4*&<&v1BL<}g?8(t#h&yx69 z!lG>kD6LBwMStLcdLSSHcA6aI-8*jD77fJ{`m6=4w0Twf{0ybICKP{41Ccdio-*&X zK}iwXTNG=ZTN+nYT0oZduJX4Ju8AX*JKDp=v}S&9RT^iD07(7um2LB_HYD*g4mqO; z)rotwHV{xEEVDU!L1Cnt>ana|k>xNi+58lxJk===n)}3*ZXaHy18luRUQ@SVYOVrj z4s_@6Xs+P?HHrzUuj)a;8#XN5;9P2$i^-r}3rN21si*=E$Jmpq{Wav=2fdW?R-}6P zn^8=0ge4)%0tg~^RUqhqapcrFemObbIA2c0r6~6YAr^15xABw=6I-deoNBJuQ0Qtp zh0kRCko#MG)nqh+oRQU@VhF9Y$NNDLBx^r!=)rX$-sc(#koCUb?Bj+-!=j z7a(5&)>_3Arp!?zqY9(SkcM36NR+Sg=Z2S`Wt9@Gxp8B%`D&q-2d=7LVS%=^|47=~ zY-ArDY~H5!#LO6uO)kpW0uO$U@@{bWm23;u5Wr;}ml<&`X58)=$nz2B&S;H1PA0er zf%`d>eE|#!QA5A>Z?x|s#0vK~J&OXAbZ~H6|0r>ej(BYj>HX~|P!%p@BAH>a>$nuf z=erhzu$hYCxd%74`6S9h%gSmT0$bgoT&k_;z^V9vfH?7Wq3^y?-g9+8)>$Mf51Pj> z3>ZqIQ~pZLUKc$6-1_o-fVolJGtjB02Js4SspPd1Oa`qJy+GNeO%RYK;p`{akd%tZ zQ*%3hfHCMm7kfVtf2GX0G;9whD_n#tn4}B6OA;GAF0$8-{?bUx(Y%2g6D577dT9L{ zN+u`vz8Bb@+i*G&w=?Gy$BJ%Q=?wVEWQsdGMx=$c{oTn7r{NDbx#sp)_#9W ztlIhsJU1A+p}?c8$-y-{j{_ON| zAZs+g<(l|!ApCS(0uap}Vkf8}X{mt@;)t(3q5 z25^`Ph{Q;5cs~dd5)}Dn4DJd3g3h#^xYsgKrf`rFWEjQ$z9Z4$2mBrKm6dslxKG*HQg2}e=j+m!1T@foVg3`~C;3kmkCC!-1`OZwLxL1WNHJsqqXKYo{XZFl zB3;}66xm-tMfUHWBp4s>P0V=N71!UCj=Q2 zg7f0@bAbHAGrjls)XL@O)CA@VAsDS^T0_Rs1ZH5-tpQU~F(0E=w&QQMjyJd%-AU7DSO}#K0_`s6IT?VL3tH#XRlFabaf~`o-)U(cD#FwZv z$T=hkK4_bI6pPN(+XG(H>n;eD-2{C;?{Jf!0r$wQOJ5t{HiJx6PT8~+XepKYoj!H{ zXl`BiLSI5dNa)+*2Y(!!9B-?&c1@|4yQeY~6H}KmlowCO6PGfjg?0qH%`$Ee+S!c` zvJ??(>If-xmZz{COT`5rHCp1F&Gdf1gHl48-}ySm<7aM<0#sVohyvJ2-<`Em2!QMzUCdZ)Xs zRfmCXRb4w`K6>=LA-vjKT0<7=7afsnC4yB^SIaD>hnLD{Y3ly6%08}MZ&ufxs+QTu zeY?DcXYMrax^73$nDJ8A5_XBuj{Aqe2v{ieuJnKT1;0h`%f2eyfAR0v;#7RMm>9N9 zt*$y%e>5CL!+ySNUz>6nrpxViywt!oJ3;?jTMXx_79AJT|R**orbv7#bb7Eml`z)9&L5POpAB> zxdWno3KR2H2>vH7H8uf@1>F__h{amvCvl7m<`W+cO!=}yLWdX2pplXP%O_!CI5V@8 z4EGj1%ECsH0`*rtqKREc6!GgjG9H0D9B6haDIWk%V5a-gU7V$)82ge%{?$HMt{l3KEhTWc}&(2Dr5r00WSJSnRl- zdo-&th-dzAsZQmPc1>1e+s4~}uszyxJu5w|H&Y(FH|M`KmGCtq!=akg49Wz?Sn`tCEK0bwe~g|I*87usqQXH9yWnMY+UCJ+hmWs|`gf zN$RK30zrl#{(e>lZ9J_CARj#O9HB@WTBE6%NaaQQ%$RiqS7ZM6vih$&AEZZXi^zZv*1RIp$?G1l!^<&I+}2(%b}y)pX}N|KA^xnqV|?%#_P|s53$k zu2TciD%dtnJmti@K{To>$$WCob09`v?C+L$PNvg2ONDS|r-lWd$a-nr(7lGZ{Zn@hKv%#(hpD^@XsYJDZpgUCK>-B=H*p?#qNaHn?5LfVU#@TWam?VJa^ zl3tP3$>`KB07Oq+kv*(mW|}&+r-WfZ6&&|fjBbY7%pd43$TiB$N74c0=n-T#04}HD zMHH)!cX;&Rv`#l_V~3Rv%tk=!s1-HW2GtObW*IEK=!k8T_l$JQNgi?S)I0-1QXXAK z>f(1>G4J^oV3Sm{X8KGb4G-3?ia3Uj@>WvPiriF2Zh>#9v6;k0U+x@w)D)S7<} zAr2gt?^4xtIT(N|H}x*F0DI`U;Y-BxIJmz{U$Bi|L}z1ni@l_C1$nfY5J_)9Wm!>H zm$XvRC8D0!p3xOj9<3hC|2hgZa|*GE#G(N#UYqU$$WQ_im{(p!baZJDqljk3UpaS+ z*`R+y*@(VpqaCmA*L}j_)qiPy;PVVo{D$iI7`>(!Fkg23JM|P8Bdo;KZZ(kPq}_9+ z+OOY;G?xb=B(mfnM;CpWcW7{y2^)&29qqXjTp<<@0N0)9I{Y?cVzR!zc(OS?b)nx^ zKQSHygjW*gU!~{&Zd^$CLu*{#fG<(}?%UT6R8AyC!cW5+E@NH~uJ= zsi{oUmz=WL`55-t>yFY*^|hi4QWC9RB|rKM_{B0flMkbIBrbfVLsxoG8$U#3KwbUE zdgPmA)(5WurT3uT?)qvCtiH8;6o&+Rj>?8!Y1C8o#me%f-d7w_pFmS zK6*x`UXFXbo>!5$n~qMT+63tRfiKO_8T#^$Qdo&jea0I-u~r9I zOs;}+~udne}ZM_;_$Rqkikfkd)?ipxarYz(FUJ}zQ=9XA(6M`YFUU}E+ zMt5=%2%Z79w>9VXH+kL#oPg(62}GBi{oOt7uP?kKN+@iR`$`AwaHu7u&QXy90D(}c zI03R%ZH^#PJeFhjh9`X>bwus}bx2}OI#r*8W&+#6JgH7co%Y&#t*Mv#g#V@My(TSW=`tKau!9ECxY{mo^`@EekvpwBzzYwk_w&!C{ST9Vr-mZpV~Vu~zO)nnVMzV4T~`B9oMd}3Xs zxsys}AL~GXoEsS8cho(hSULd#LSb?AKT%^L6&wbbVq!?ngt9v1UyFh}fT*jOzRtQ_ zDPIxzNC9B$^Xlgkx!Usz0IrToAIX@2Z)w+cG)`B|YNmwz`#{q9*=dF`^zRNr1~ z%uupvEhq_=%3xoTlX0aID$u6<02Ptj35GrLL^UaG zL&2$n`*36g>JkYsGSC_AWk|8LI^$ZBIU_<^T*SopFqoPQlJ7q4ZPsMCWyK=RZ^Gol36!{ySgVBXAt z#=)3g1U8)5gTP?&sZw1c$0Wv)=@iDePnwth^F>bX&$P&;u~hShVQ~Zp}PpmAkQZmI zsPIK3@X^@TN^XwGoPEN^p-9@t32CwNP|b|j(Ko_KW!c6`7# z+!r5MTzLwtmoAZAfFUR+G$8~J-1X2ueXJbtt{iUi0AXDxlpt}3b6gTD8NI7b5F7zn#)-~j`)-mvrd~xmlAOFy1Fp+36 zN{l!k%bY|9lmgR)+Cf{Wq?yRzcJN8A34QJ3tP*0nd8+Ivx}*#a{WLQsi|HV{d~I_B zhw)4?U_TQA7lZ5GeAASI6VFD2=*uD}5`MTNZpAj5sLW>#Q&U?(lEW(s2bcNu?gV{lY>09p=Xt9jM7nOe1@z1{EPbl|YC&Smrv z=8a96W6Xj zCw{=JQ{-OgKc+J;O!~dC?qq1=@F);lg09ZL0*x8BLxY!w36M#!`QgW~$5J1>D zQkdC+Q9)T)SW=KKe+J_Jbv4LVfHW}xGo>KwK~n+PIRE!ByhzXXhXsK0)!q9A>099} zg%(Hhs!_9SvZvF70rl!Yw!|blLQ}%de$9}`@<8kC^>cYq#n+=#{ZeUpqe(9w?<&X$#`IXygn=_m8;<^Z|@DJGW5u&MIyuw%jBLXUT&_xhxHivT;Y$E%v{qaeu+M; zO^Gvm>;1Awol8<`p!C?dY+upz`fJb>v(XVz;p3K8$-#)JY1KUB4)~>~{`iFd)yYI? zx7(D-o>91Vlc9-%t6gehMw28Lv7U40^QH4QUo$$>OK7)+%A2%T1m%V9>Hf{80b z$%`#jfYE@$GQ);>tG99lC6L~0g|}Y)6ZxwxYNPQH`?JuuOQ~Utg~x3yGV8>Y<`G+` zREyZP98$#2NW@AZRK=2dIyG!mi&|Uz%y~usz!WP6dxlRnF1p znK|xCbHv?n)F~VQcn0kv&NMYt3;sD_#MQ`7aAh#dXhhP;=mmJEMH8#%RkD6>20A0F zhq@TzUSV(+kdfM9Kyi<_`Kcr6#AOXg8ZEzzeynOQ`d_0!V3rA8P8#oyz2zhn%vavd zB{1Cxbel|o`Fy2VeQ267{$Nkx2EV31S;q#?v&s6c;1mOXRt!}au>D1vQ;trq%WhHzn zPQ^EeNI+455!TmdSINIYgnlHKLP|R|ZuD!&-M|IN>9Zy+Ivs>Js9@RP>zYB5SHrBe zZqR}pgq0jGL9ztNM9vF<*8CJMB>mkHb+$3y^wH`yPQ};2Zjp_m2*i}u_)Rf0t|&o9 zrxUOW4$r^#MfkQsnzO-oL%^nZIA|b{>lnZblQq5om%M%|6OmOFqs}lS);3YRN-klX zx|NN*Edp}|E1z8Sf@9-5d`M0Zz5Mv@$F>&Wue-YyyDq1WZYyYpUkUhjgV}15te)Ci zt|t+F2(@{%#weDHoz4h@g)|GDaON+L#?Q#)m}W?usO-8mEe59<>MnQ)h4*qrONMyH z(8GKHi%ppbMOpN!2Zur=mY8?{`>vOFN?$!|ClT3yBOYLW z-GI|ypA#BcYB`0!VX(6}Pp(0x4Y_=R;@*EY>O9Z2s7_`?L`AgUM9xM>&1YUi_G30+ zD=&IsSt4-VbpRw20gPu4=tyQLkRbKt3nV8`yg5_Kr-V#{C$J4fuMat=Sa=+Vf#vW4?J>RWtkhDzhCSqDOEPlU z<;OyU(BqCVTj6}ha=SgJBwPjFcQ-fSCD^#y=uwrMK60pMe$hQ(+2_Kr(*I z7aKXlquw%x#f-~t!ve7S4*4FXHG;(0``FTb7-C=6#87cVftJ{$3j%q!Xm=rFHRn7 z3_c>6zr95%Y(WP^&ri>5T zfUQ^|na;L>H>zi~MIlc>@e6U+Hss~MZPV{+6j<(lio8NXZ(rymuj2dl6P3~?Q8sU? zwP6u`RJ_dYAH{OsP`$TSX*-7dyZQa13i@<6aZ%{i z-(fsFgPQ%tAck3`F@6NjDBDWP(yKJDzh!lwRy!Z5NnAhsRc5LI%o$-#oZOWh!xj4E z-izk3-^Y80c1#UEE~3v#461EtrZH^p6V*&!CpMF+o7pgqsWA*fd)DP<_z0kfr+I^D z6>@FXmNW*xSs$4+Xy+V)57`T2kD$qCSXAy89sGgMy_e_7F4WnON>`I*lE+DqI1w|h za}j#=w2ULBOR63KRqLjZyO2B7`b$UUp&u$k66EYf=6xpnwuT&7WfhI(qSSM&l}4Zu za=!iXYIk{I(2Zc zby`rX)VEu=42XoraFkESX#`ApF!!C5aXUB|v9aXvRpzAwHu?sSqocv-j)zt;Do0>t zrn-=ix1~h@;A2alRzHKH?o!;B%yjU-DoVYVh|hD6`0c0h?bo`_3@*yCZs9^k zAuB_dbN+Dym)REco7ElumTc)tu@=C`M}K;eTu9PON#}ygStc=BmnV?=EuDy?U#^t! zgC(w4@A^p(WR2Ew#D~q4kiN^-b8g7^Bd&@K>w4gZD$CN4ry9jLBq%B$8jjf{C=*H0 zSo4Sh9Q#V-%|sx~111;oZkMpOgQU3?&2APz6Q{r%H4GNp!G2z1foD-empx%%rFHlQ zz!4ap3XT4(Xvm3@HfazUq9C%qI2{S7=z?*7fQLO4ArMvFu_U}%D&#vhcQ_+p?*mW& zk;*3;b~=|YlNeW|s=Yo0qo8b{Y^ts#5>s3QBsDGc+zb>rslX;e#6%F=s{}8#k`&6| ztPzmfPvzvVab+W1;)xFLl&&IGstm*8i#0C7nm%gp*rd+O6)cpXlesKkMsm1UAnthK z)s^(3qDM8@iO*2p;_7Yaxpd;t>6TQ?KxFH)dq>S=NxrgG;?e1>=f}$K$oQJ5XtnwQ zg;nET^~HLV%oIWFrfSG2NnGF_TJ41ihe^TtS`AvpAN(@^jxrE&tPT3O%zwiv)~JC* z++{DmU8Yn6FX~>eR6p=CLl91^NNHxy&TjsEEr{c7;Re<3E;S=#>BB_&tZY=YFFoOB zwL+D&dt9S>DLGG=#jZc>9kq_v($(bwwU;sc$7S4ZTCtMaC{v#On%X)g31oGNFBDqI zl{+YO-bTJ!&+xr{EdSnyT#FF&XX-gee^uFctRyl^hy!@$t>y?mZL`Q~YUS%rEe zTwU^-l@HkZPexVM8rc&Yp?)`&F{7|ASvxOu9HMh~RgEx_jVvJ(V-n@B-k&U!H(k_{ zk!onGO&IMQnJK4nRYsD{L@xvjAC1?fivvQ>xKsv#B}6z9;|}{JlFf7gfRZ6~&12ED zH?D`19(~R{dY5t(zyF`XQ8yKO6QdYkEqwe?`atc_BlSZLt}VK6tAhZr2~@FqQL5}Y zZ^J6=r8zJ$0*5U$xm&V+h4|>c!NRtCIuYyYZW}j)T5!yy>Fl-TdI;8+EB32X=b+5v zL9Qfo$aOAPE9DG?neIWrNGSf%<~)V{k;#lD?!z<4i7?j=b@9M~6&71&FDDuuBvKA= zE+lD8T0<0tSl-=MBKO0l5G^#{{b>&ZkEq9wk+-8=FQ8!w?d^>$2`Lb$eaS=`3??#g;v3t{zUrTMoP; zVo*%o9YqXszr!5h(g?R?F;nh>wc~z!P-~;q1PYr@#2yjvY{6%EZis_?5QpP?#inHh z9jc)8C-sxU-~js1@QPO*Wgm*{cSG%BM0z0kNEWObICAkQYE^9u=aCtm{xr0T)S+)e zxyNyaauOp32|O0{h0SL7gO%!v#qSk_{8nVl5CXe2g61oWJb>%M-x_)JMm zijY>kK4mG!>bpRj_khZk&C75CyD2I9$jJ~yCWJbW*MzjfpVEHaw_(dChxPpgolbJU z{%mgMOo{Bzd&?D@&NwZ^iPL9e#aEwXV_X6HeOhy0xp{uHfZDndd1z<|)UU;YFb~dl z!g%lYt)Fm0ygzZZ>kJzc`vN5ycFSn-y*-t!-Py(ohi9z|z&4xTPz=eoZxhP!%}Gib z%3_xol7E0;Ps7LmT}TvmbE3y%%y^i$cwyY7&HP z@LiaiM2>8}oXSWhR^|3h&$S=5{3seRY4+N>1L0@eWXm@L8Oj-EC zCcAY&upQS`Hlc8(^@Z}Mvn3t;#IK+rzVwq2BJGZRdp?zaev>g*3Wfu{{2bA(_m6sr ztS`FlBmF#8GgnQCH7BByYOH=4c+Fx_?jNCPA|%Cv?EWWV}e_pXE=rQ*K0DMyJ| zJBy0hFUh<`mEBYNuUNQ=M3*hl$9`B6kbh?Zela}grZt7njwW6(Ilgfr3m0~vr}if2 z+2+5CtvDU!NaD~y0}P_R5=%q3?Zd)DGhw(s5m9w@Of9p(W3cu3^K^JLvcF9#ntOWs zNE~=z{*?%`?46eCp z|KhiH3o+Lj#ChAlf;qB3!xX)PYn4v5)z4{W(bkkghxWU;J1-thl-w|zQ5WSX{?O$i zYSJ?Un#T}iZt0ILr~wKg;NbVfnmimAZJcS?SRw8FCcI`r8~<;g>Zi-3>;y@if&>f- zj>^o={NI=c3kw4qD-km%$N$7Mu#vb~{%>R@3+sQIR^TiwKRJz*He?VM02?bS*Z*!) zRq1KlA4s752U!VP$4E;*%$70b>S4aVfcR`GLn^CVr^zt?rya~MA!rL62k8aH@u+7=+L><|p!-9BzSeXJZ@zpotU zU8UCn_+1PD_`V-8H~IEEJ-*JLpb_V-4EZlVfXZ5`fN!nA1Tu#4AIGSM>D)(2i+%hl z@bZ_3?mz_a&e!X+eBvOq`R(EHK)C6}PX3EvkM9HjtXO+Gnz5r!&a&Ipx_GJPZp<<3(};-z|Y%`1Kf3;K3+8`(4k zq!@4Ti&1(^Xb#xv_bX_go!55nS9p7QUf#KWZ1%>Ru!ob|4QmhW2d;T@Y`vH3*piZw zNFm$ii*D4^oG;mB9iVV7vC;0=HaLdQv6ldIV;Df%cb7JBQ6~cVTFYv&>UQi%x-@nGt{f!e?Onu@y!}kF_Yrt^I6zi6`vutPnGT~VrvsXT>r~0B2vo=FE zz^+9G|CsLAw^C+-j7F~f#y^rSqoqKiY-L}GDVxPT>2%7X$AL8jgw1il0$a5iXIG)H zDSC?2*@SUNKo!ARA)|}Ltkt5%@1%r%PIqtLvD}5iZjq~}Ci!BLsL*S?KNVAPzg&#P za5x8I9a*>$Ybp55nufl=qlr38jk0ycwt!H)p-g~Y)UA-AKv*6?o#Gx+HRDGW_1OeS zs1g!KGZlR83+Ax+D|AT!>M=@{nAY#S>qMMNU8wHgI9+U1tt%FVF;Njkv_*&?Q+E3L zFfoHV#fEc~qh!;z*pui}KuQ5+L1V;57W`Gc1IX*W+IPx2t>jN`8Mps9ddFCfjAN#_ zs>w@{0V{$4IzhUoudcQW(y5p3WHA+^j1r=AF?nVYtQm5w zNuZ{MR7$d6ZJ!IT_GE!OX_LJClbuAR`KMu(K(7{jX8mDc=acXs5#gmvt-q_5n)#7t zvJO%H$jr@4hoF!GvV!CrZyCbgX~)~F6H#Edwy1dePc072B3dZ_-L1l8;4xVM<80%W ztBNo^_;37zdL6R1)}FkSG&J7XZvC_HO~f zOt#~vCf-hZ{5$aZIuE6`oG7 zA9gU-sGp!7AQ31?f&bU^ci=sc7&HZk;Ssll3DQ#nw+B^9S@_L#fjJxk@M307%NFHG(+YSA)SV8w8SZ#N(%>s>7GcU=V z2g4UXg*NyUzPr^aF6`R&>J^NIhJ2>S|0o7BsAPN5Z=D_&4=!>PAid8)iu?b_ddJ|% z!nSQUw(VqM+qP{xnb@45qlvAKCbn(cnIse2w*BRK-mhxEd+(oX{kW^E*Q&0r<2tY7 zT$O=foduy11@r=-O)Meg$s9(!17FoNK_N}6StC?48i!$|qwu4Ix1~$-!M}p)y6Kj+ z&T-WZUcpUt;~U{kv^57MoQLZw4gO%}O-HztEEc8d;fW){zIXc|qD|^U^rc{xDO`hX zW({jw7N(<@Ay?D{sb_g;EEZ-^rZ6)x(uo-5{Nqf4woe57@m~lw;9MnViD+NgvTy9V zypJ^cSFcsSnbK(T{3a1ERe~BsEZ6!~So{GpjR^*bk^r$}G}Cwlr-ZS7J6cvcWtSVv z7FmesDIw`DR-8|MWSdRRXal{;+*ZKG`>u;rEURSmmVQQp@3&4FT(a85($IT`b4_N?M-Bl#e&#M`wOtBH&svW_SYe5fKK_hP zoNu`0pH`5SgLZpW_wGegUAj#|KEAKn4WJYuwHz*IrOX~GubWfgDjZ{?P)~RqFG^C|{qhgWZG+>}TrN7(@s(ZT1e=-NjT_5C#sGpS=taTV1e zr_ok#Bry2RM`Rx7+7mRJv|~4<+7Ftyc2qZ7;wzwLiPcgN4460)P4byJ>SF8D_^MyL zEuJfj4=zzCAT^8VMFb)&O=HWEPTs8*C_n)VW;g#fSVPP5Bz`tvYeJ&&pcZuHx`^n} z(3O>$B-}Y5noRlHR{9!J2JrK2ot)G%&L9J1xT3{EntGd);EQUkBY6tS=MUO-c(0;) zJ!@F_TEfM(j9X#%`rSU7B%I{h9v0MS&%JpqoHds_GaF-QsZYFg|6d(>=kIo#*JcbZGR(0PyLMXUL4f<3!(_RYKI zwD(RNvbJX1CU&J}(W+aVOPzDFQnlrOFr3)-j#Vj@=sc~HR8&9kw*QVnlEJ=U;4Ng@?C(P_tkrj2O zno7C9>Kx8w3&D+&V-nrxueP)ugNXb0aWV4pJfp6X_xWX!X?)k+xYUi#8PU~X+3_c0 zYHPZTi646g-tI%&_CX)2uj=$XuTZ9@D?HPrh_b_OD_Y|?rLxJe>vuRHLgP`_brN1` z=l&gdUTBE2NFNH@DZMMJk16g$}{<|Q0JNvlza$GDCaY3RLs1|6QF)B##pcz2W>7=yVm7baEXcz}g z9J=K^k`^jhk`upzvfQ-Kev~`-987;|(j=6+hVYL+8B-GBSK__^XS|zIKX&&mYxGDI z>ZNo`|9?_w)K1+}nwXbsif>)6j^uN+EbyL|4QjgJih*k-PbI>Thk}c%&3JZUqTCrG71uyZw$i- zDOZ>?3g)cy$GkfH#*>ryJtV6}oGD^`V@_V>1hRo~7DhUx^Kr(%faAxUs)5_4uLfdR z1Tt0qlZ%UsijPd^zVlzGuBv_+%i=12M``$q35{S@8|v3SfWO1ZCv^d*Putedc!Fe( z{-VgF5^<8ONFr410e!KXh{J1r*R7QZ=TVc2Hfy-{_&G`g7B8r2G0%8^D~{dvk_-aZ zgLUm65B<_McNIIyw~n;9Al_8Dm?M)0e4fW1gS`=E73JwlV*DuBRMU*a`i9i>#n6Y| z#J+HleKzGcfONbeuR`Zf+g*t{4^|4jqW^6uMfg8!R80_D-bpcNzVdX5k!lYwbjqT@ z+?NQA3+7N_;@3kNNNTkNzubGh!lBrk?vCcQ6UpEjhul31-02wF47TDFBi-BVxal^z z@)9%>jR zPnvVSfWk8f{NIM0(~eS2Wkco($9ASXNWq}7Q+QeQaMK=#nhmo;>#){|?~t*!B%@Y& zf`p^bV)}d?%eZ1j4i0xT4esf#Y2pY33hXSqFsQJTv1#J{S=?bwgLY*yBKQa$&p=_>4XS-3if}Kd;$8P zdpk1!`gu+V+34kUA%g8v6!E91`I|~103YTj>@(4DhlYkBJTg{cwcr!hS){t}Kg4#p z(pj17M(gE2>K83o3M%9L zXB&C!dy0Y0n-y8JEZAg{u^jtMbKl(xDgMh_z?gY}KP(|A0W2K0Q0{x*Zc!;q?wN4cOMx zuJ~XA)x7dLzoFstE)n4U=vMSOn^-!)$WLd~>Lsl8<>7W0yEkN+7ee({ULc6zFna&D z)Frz{6jg>P=A~C>ndIRcpVIliyc>p}ZN+2fYynECWJJF!QL9FIW|){9WwZ(pk*zhc!Rh} z0dsQLq8%1zHqJEfVXs~KL2OpU7k`FZOv5+?D&BH9W^7OK$ykd+WgKQPBS8A|X|S*< zDsIxh6~!9ll6KKG+Qp-VLV$MIh-*RtT0MMlmXh9$oy|U5SDm@wj-UKBo)AbqD`{8Z zQP>B~AKG`Pj*H_T5}4%q7Z59oUEyp_$&?F#}a6@Xk|Yt>}9>S7Ee6P}=tCyYj$N z?lJ*RnOeX$BwjrCy6S)!h7E_*0WG00llsIt`@~JflLc)7g`LU~%y;?P0Wo4QbX-8} zHGs}E9oe(w-uBuKLRTeX_p`V6*5~6ECBi@oj#`2>1;iJH^$NsEAbt{;t#=yAsZUj0P*EPRs}gbR};ZsX3q|x@JX6%);A&2QwS}PhQ5ii z72c)s|0H|%IW}b#)1>0m$Zqcn6R0Z^0u)F84ti#@S~Q`BD*&ABa@)aH6O*ko)%7fz zz?eIj{W#oTIYC#57Nyn6E z!W`tji%2$kg{V!{WdfIB9-v7z`K_DSCu9W*bwJdkS>kPB{JBRx67jM8hlEzKA*V;p zk2$@ssZ*OOw}_8w@X(gb-i%sP&X)C1FI zBgr8yUS7&jB=}Wc@#-pXep9Vz?n6oeuxkp5a*(an@dX&TyDTo&dexj$%iGgGN^~LM zxfO;KcFL!uMw$`tJ1l9adE&nZ;JEZ}{c^yVmKBr+W15g>%mw%6nd`Xe--4*s}xq! zFK>GHEB&AyC8b;K>|u%{K;)}I#~&rm;H9WKDTN_tU)$gaZ0vKETjfkG81KQ zHO8cvP*p@U^bq$sy5%iqP|=Q#%NN3xT?dVo+AClMBcOwT1Nky&>L~~{J+Tdvsi%&E zf~2uHTzZyOfJYuDZKA32og~ilZ2l=#)3!s0NrufP7Jm)h1kn{Kf(NF}L0HYCU7)df zi~)U^h$er$`Y<6WOOy05RW9=f9u)?&k_~JkAfD6ZzeTn+3X%%7Gg68#uV(y;HyFvd z{_L&T>;b2B8Fn>xUl7>rgH|$lb$4jv-Zh#ghh>u?O_nqY=xuE6Dlp{|Ycrck*_!Tq zzcVyZ>uP$Jk%?~Q5n5Q`J~WvBmiY9yn*oA;SWcQLE$*U5u1yYd@gya(4xCPS zg>QVhuV0uMDbNtS_QbCfvu+5u1(wsZGR>7!0gs|*NhQPXqpcx@mU%kZC^6}nCIRca ztR`eih%okZuwxHXb<6HcY(P$XTKG0{-Tc338i$7tp1D?^`sY_;Pyhs01f^(k6QiuGPMtJC?JDIBr{yP_oDIQI27W1>-I%7$FpyTTi$kYUFa?We5;6E?RF+SR^)*lh)--&d?<(D#s+jVOt+Bb&)bkW=e4n3 zX04M}u}Z=}X(n9tbKlR_y3jb_a}8EDDcIWzU&of|fpnY4U+(?%(=_{I4-gHfE%8t* zf_!vc>d#7&Yf^hgNwKg^sYT|KX8ChWKAYVJTEY;k%kbjW%%eogN)jp??@=K~Nlw0} z81Th|-qalt`eXVp!5;q#H@7v&IM9&b1bTfMsjRy))Up$;x0=UpasK5aq<^yq_gHmYBkpjg{9(Ljj9ru4y<-hl&OPql zy~XIbA;IgaA>>6_7RlVY?D%?C!?v3SP#{A(<3O)5ahT}|6)W;E76qK1dm%2fT`nqq za$$_l+3)V7muxX_+Fk!tEDd5F5FXucdGn{!-LF_h+QKKAuzC|cvLO)E`_q`}FfUi~ zyR{8p?*i@L#urqSgoO}mf3vueg=YRX(U5?n%`Ep3<5pAEx`zbnS^gMgA<4kt`gW|V z3XE)sdV1|NWZ@`rA1~lWvapl)82{$|FEV@S#l~cb6X@O0GJ&n_?Pum#w#sLUe~}Oj_u1xMPi|C`+J_L9!F2CD9|Lt0s@{O_Wxw=eaH7lF zM8^9rtxF?oT?yplw_D8x7mXp%!gS|d%3pSY%`ff~wmDeJRKEZi_I_8D_-g0k_+IND zDmmYlsAXTNci!vk9XEbe?CQ!29Yg^PI5_2z1C~=e$+*cuUVvv-TMB9O|C_8W4pZdzr>k$CNxS+Zu8vTx`8D#SDa^zO@ ziQbql=YQ2!_J*0=d&9QvIM$2G&}g*+QQyrBzJFiT*0-~QJn_A9Oa>|tr{aB#S`u7Ys9t z>voE%i(doao4n477PbA!nuFGU3e;-jPU7hAuYE%Jk?8UXNj#3wSf#Bj<(o`OHs7jXYWdY)AZ9 zT!C%I-nKxi-_ba_%BmaRHdfxi3$Od^xVGF5Cu2;+Yisox7_DCP1}iThND@r zucv7Qn)GC8ofSGTyG~Xf0;HpxOk5ks9O6tH1ICQwjw^>8E`_$`%GBA9izvVObI+cQ zO+SH32LK~+dAnV?-^a((Y*bHIwBfpdpUYc@goJ+KEMVjH1RaawI!=OAW|uum6|+HK z(zByP>3duZc)z}v`4;>cGy6LWnXSCH9A923<#d953;xJ@wdo1Lu5o^f2g2gUp)-;V z?eZ_6SI1&{R~9q0lJD?Y_%x!dvZoC%Z-Bq* zGT1oz*h>PoxhM8SLwImtVhz-iH66;L=Nn6?pBng#?He-awD&`2V(;*We^$IG@UHb? zTW|mye!(ISA&d~1#AnS)F0yy8sF!$LqGdPO0h$A7em)O|gC&$_mhwtWg=Tx$Ry|3d zw`OjcH@Ltz9G{&0jS-c_d{3QRTmU->;J(9M9gdH|ti+s?_*MsME`#;jZ}X#)xnn442#G)2$*s|!g*AL$*Jk{r z1|S=kLcF{IRYV7Mcw>q*Va=UY=(u_Fej6@Ky%&?@ElptZ8|<#0RIW&ko{VU?>F1qK zSg2>OCgsnUo;2QHO#rgbAY&c#Lp|`g@eBH|kSsQ=Sy~!f*?uPv=~&)X<|L)eQ`xW9 zgogop-|_W7cs`wG*k55K^zw@X%@4wh0oQ5pTC!J2e_oL>>jO&`h+1^wR!XnW6@&8N zJzcRY5Nxo1Iw!Ux_@_ZaPxNhfdskWWVai5LyLNoQ#pPI=VGe79@An-%m~(JP1nlO& zowInD#dHz4mVoK#@1v?&S3-C_u*;y~)c$%k|G@6ahF|?frFsA5Bu(>~t5leA1;{{C zZ!k<9iH~4O7^H0(+X#00M?zXl9b<9XYCwtZ29_V5j#SNsll;TfEFAI%Nd|$RE6F;G zr@|=WF9Laa;lyQyg+xh^KN~wkn3E3o8A*eTrjzdF06$VSjB_L#a@4*t7dCeAtjJ5S z7&RL0->(Fre2@F>U1s^!_D1cLd%0d zvC=8Ibw;)CF|vZ{BW+{#fJ;`0nhfsY)kdkH7Dj;?Th_LQzJ*Vw1~ zue~9oQB^^A7~-wNvXWc#xf0G$NR1;# ze^)XvhKSzkg5fi7)g++#q_Ol7)+GYbi3)~47YNu27bTmu>s||1Rii}Fqh&= z;lSrY4t{fAe#@@(ob~`0aq*K?w#!oBMd#^`8t*TCjF?B=;TVy}plx<9@E;lwVj3`^ zyt;jAqpJq8&Q5lLWwC4??2sv4>wm_CFRL*eDV`PDd?xu<-kehSgS8JUcV{-k*mM$e z^;|4JoeJ;$TIi0P)B#d4c<`fpXG#@#5Z|t&g%k`fbDE$L2`o!15*ZGb^pSta_x|+h z&=>3h5+%v-qtr4iu;CISbL5;9ya4r+*aiQ*2OcM3Eb2`Y zj1ma`)?ZND{=2)|wO*&O9D(urm7x^q#!_0h6R3!`qTHYGc3^`m>JMV05#(^7VQg$T z_(=qwmdF<%Qhv^j97W8fIVDcXMY`c)a6i@p!O(Ur^V|8E@YEqM*ksgB=lVkWD7-Qf zy4U0yMHrdMzyXs3>$o4wTcOaYZ4dB>75t%iE}LMvqQk{w1{iP;1GsNyG5v{EG7Q%Z z3DB}vY;C}1d2Uq#X*KZ;q!WKewjnm^VHRL|;~z~ObfTlGMc`4GK?md>tdfe3)CLs2 zLM#!??-V>uL;ZYBBG!e2^n0bBfMO)rw3a*8c0)}y3qXU;&WwdT)iYj>UTt`)q`6qY zueG|nB@zgkUC}ll{21~wbQx78XV7TIoo$VJZ5pu~ibDV1BP_39zY$JvSDdq(S5PQx zG2h#zoOc~w-(SygaGMd%i`;@m!4FMB9-ZM`DO_caR|n~TnVsXsh9$$}>hB4bFQx%! z!(K2Xc>uZO!i2H%q35v3KFp}UBT&?UK9@amiAPL5Ii!TwbE3Si0#W7H`K%HPRztMz zQ-^M$m9BF;)aUy5Wo}_?G3fO32aJfWyh++1K-%s=@EU*W$zP!a{8XMP(;#@cb%9Yv zP3>#%AwBucS+AGSOE~KH2pI#ch=seucf_SuEP$-5c}7^I@@KQeL)yOlG^x3H4E-{0 zPwi((g8^2sw}JLURqw3o6?Q9sA=22gRdXmwb^G4lIJt8-tA+mI6}$?JD)`fhBd{Du z%~l4Rr-l~h6^M8LZX)GMh$PRjVJoLm{tp;*0gFV##ZAAthAPA0UKJ zlz@D?Ei-1r#D4@g3J=@ztn_R#tZuk;s1$r=11at{Up!_L?VD%1#=rovMua6N46K!s zD$V_HmOphGU7d~A?9IK|v>FA$kPy{yE;@{Bs0X4(rS27KqT?{VaVuS8u%jcr*>T~S znjfk(3ld0rL2BGFu{Y_4VdJG9zsc9BX#v&NKq>+{M$^m5OoA9p58r2YNL3V+TWhM- z%`j>l&BS|cw7;uE^T1Q!LP_n!Bri?>os{qzhuMWCw?(>vWuC~--%GOBQB_ecYB6q7 zGrVaw;TUhH)7g?6ibNiKq`!OrfxUY!Al-Ua$?HLk;jv{pxKX>qsV_47k=`WQ$N>sg zXYy^TH0myt%mQ6p|E+r4B;Dj11nz-*5LSP&4_)1eCQhD5JaJ$p<|D-@L-Z|N-9v95 zlp>G6cH2o)JVI@XS1C^#zh19l#L=L8xYGga;3mwcm#-;c$}9QICI&zqvE$+Svh&M1 z-NP>-gq36-ICnNv2kV2xIMiW*+W-kR&r%PbW54QUnqK;qQ}zY|pP{9&S{3N|%=mBsR&C1}^ zX^`dB@>SEki-RUk0?S|@yQGi>5H+I^Dh#J>Oi0A0w0>4v|B~I%;9g5TDc9B@E}b25 zpD*S?yW7@^daO@0(y}T)8E0tU6J?mkTpl1giT`8GpT9tc;{`HULfW|{vQ1OWN$sUF zNb4gW-0#`-cRrW;n76QLoD0B7ot5r5u>lve8-Qj2;d5Zkl7@S3W2qiSd~n6u+-tXp ztJfc)DrR0*1Aq+r$*O;F!C$h{q4Af)bqH0MZ~n5oKTE9klD5{?Mj>~TQSRBx5gQ4c z58<)X#L?3WnJs;}V~58&w#JjK^~Cu=mDKECegk!E7PjfhIw5>S2PdG*>{^gkZP^{i zVCT{OP_D5Ia!3AOHgcnf48zu8MK?j9v8S$ktO=ptoC6Qg%WGO2F?vE$N<6q^LOJ&k zrS#?Bf@(Pej~Nr8GkmB}vik$E!53ti?GbdhhuRN%-qew4F^6)b;f#(tbaTd9&~YeM z?Bl$MbadFxf7lw#Gid;FPgrl4I2(elg;}SiV*f+aybb2u3;9!~^iQMAV@|2tFA%JC zNy4V3^w4W4MLRxik2Wg_J+=>c5CI#@hZvOC1uT^M_5he1Mo$3~>Y=UJ?jg;vyU@y= zc?OZ%?G*G*!bum;nVBHra1;AwTzn`6H+cb-X0(4ahwTD6Ag}<5-Vuu!bIBBdtn!Sw z6?W(00QIW8NvnXbj zqK81%`7daGi{(rw&1WtZfuxIOpdHJ^Y$JORLyf^WDt}bcBn817?GNoqAG2T*LdQ2) zPdhCcQKkFeIK_Y|Xvdr=f`3(Mt;UKEmOsy5OSiC>W7gM!^nJq#bO8eCTWRapV0r-E z=XyO(Wn=?L7TDoxhIY4U%4B=m$RW-=5axg2%M-%j_uoMzGJ_=^k`nQbtC_eMisG3w;_29sW^mbUn^dk6#H8cD~ z248c;CoGMe{*ywaKa<$yG{^aBf_#s&ea0HuUXTE~*NWGz8QerOLl?=>f{xybsZe{_ zyqUuTW)^%7l1o27xLh2s7^#cipYa4+0TXt=o*IlK%bw}u**r_OITx@GF-$k_k+NK$29_G)$6$u&2-O$sTG=C(AOSF->q*k4oZ=mI7R z5$pZ<3^5kwGH=t{Tp^e{O&o-pc0uBHzJN@_c{Ha`&LSrm%|tx>{IG%5EdWwi zSVK=j7lc&VK&FvX!dSNbCVI(vLfXA67kPUaV@xAm$EtQn=JpfR?(6C6&}gx|7lLvg z=IkGW&XUluwoxr%s|$nfD+?t|H8wjf&x=yWs_2;Ugo%CC!P64O&XKr&hp`+r`5qbx zG6&ph$_NKf2x>Pn>roK9A}ldJfq=0#myys*d|2-DO0GwN8=^0?FT4!$V@EuBJ&-D| z{N>-HwcE$hh+kE3c@UfZX_B}`cTAKnmA9=A)jkpS9?aHcfF6vE=RM;+oI`N z-JqR9n`J-#<%5UsZQtjudY4D%qI{H?n5#ru<5O3d+{tPMXvHW8hG~x6~H!UsCrJIG> zUoWTXz>eK&B>(4~gNk;>%f~f^>zji!GXvr)fZxl`+Q8!h)6h{p?dh%d$Fte>>qX}F zL)g)b;b&nG|76nkz~u`YrucOYoIJ*F89V^Fb15sn?{{M^J)Gd)h)|9Yd_FTP-0+s4 zewp2e?e&h)|7~F)%T>3+1%2k2h6#Z!Ln5;e*8Z)tOQ}z2`yGT(GYj?<>VXXc_H66C zzaM_Ak=#D=kt9lbTe*qt`(a|t<$H@~)!pR&2aVmT9yZP*ub*8=L^>CtvKW zDJ;~}$bId)y2rGf!p?AtH;y$V=&+ui?= zxJFGhfTNeONc#|3rwcmy`Suv)pebu|h?(pazmQ!EG+Iu?>Y6Lq600d}aKmr=%@*5` z=F{Q?cI#8za-l+X8=~7)c+~;mit8%d9v;umK?*Axej#6j!SFF!N6=4Ed<0@WFp+RA z-PW;|Q4O7DWjn#2E$e?L4@o_^M+_hsJcGP-8U*#nV^|0KD)TAY5DNyaZxF3|rvE%f zwI?2$aHbtK_Ru;#_-sSrE{Eqsh5;L1e)e3(aveeG22!T5!@XX`wZ0@5%Ny+$bIF-n|Tn(6vN0s{!@AC2HeN=8 z4(1Tg4i<;v@QyUn7)c4xafU~-r%po~;T-FCi`>!8N+{05Rc4ymHX4N0Vb$+%NRKHe z#&2p_dbds_9f+MANGLo*FdttN^Grl!;pI|!OJT|VjMgW!ok$jvapwEH&wC;hT_`pg z;G$Ke;4P3Tz=!W(>ShmBslUw4j;x}CGlS?)bHRe{KBYe?VnG7vdb?gFbQv;rUBHm5 zVisr3e>e8+Fi$h2)Wd~SY@ipkv)Wgf4Mr#ZC*t+mQTr-zBI{(E?YX|L{aes z{ge&;39HSL#33#Svh)_a<%iskS0%Ku1M>RN0wRIww%x5^`*X~(CuX{}F5euCzwE?Z zp0$PqEb@*kmv#m)rOJBwx&Dez|5=Mj+mfV z|BUc-iJ)Ig_N3SXcVrwk0&*MFIk&}yZG?9?1+nd5;lrLwD%Raq8RCtLAp6W81_jg5 z>Uy}?Vo|LEzki$hxN9tT>@*Q}*(`t>r)Bg9yT|CL0vZqC8Bea8Nj{l8vy3US5R*%b z5UQTs=M53j9}oGDR~;`v4u(&_K1XQn!`-yo#950!wu3jLIR)YAZT{%7{pT!N+eY6uKe`#3;H1u%WEw4%t{9OmNJVd7F z>bm-f8K0ed<8&yLf0;@kA_+z0G=sCrFbyd$7980Ede6Lr)NINzrRAn!7?nXeivH+k z{$*8F<3+I*H*~hdk6M)W&KOm#rgUG5@J8@w#438vD6Eh%aL_rYVZwI54<_Nh%NHzb z4*0oE3iYN#PM!3cA%&AMO{vUASt7-DG7q^rOKrGeN2@`)E9Hlqg%%Eqz6MX6?i z9T7{qS_ExWB(nw|cN9pwj0(6)o<1h;hs(Pbt>R{%gz$G(BB+pp(-NHO= zNa6gia14wC4pb`{qkP)89Z&bl3hFx4H%1x7<_8xg`~LD7NrYIgVw6_Hi{qt z`te7J_*_e>sGP&{P-MS&%!Yej=`ERDLaOW{rHRs-VTq$$fR*|n`(Te@^QqiL?i(i& zs+KOSkAfm9<0MebG{ha^<8Gz{)P}8+i6H?+E6aZ`VuD&GUL=$gGdjpOnImrfcCutJ zD8GgZi1nI%NwXVr{dC}-aE8a2;hg*dK9+;ryHQx7zMNqNJKqsaO7;z{z>MXaJk zhFby9ob=n3X`Wx~_@lQiNYI^NRw%p3H8;WjzxF=Usy=u8)AZctMp`^;?_0|+_RdL@ zde?ruln^hGLuld6f1P(4x*y%P3()fBD$%{_?;UOZ)XE5gK z6)b&|UNFH=O?R{G29?7Z5Cqu(T%(5Muwt9D{3Moi$%3)rN2lCNj|YwFSQ7Ic2&>y^ z8Io-4xD`B+MnxPx5xcWW0hoBKi8~aqCkef%?|<$I4$9dEv;_HaLChYgFPaa+Wd)pn zx-G;+x6*#tmzy}~_3dRx8Y)UDxl~D*&HbLmaz`WpOozReOCHezPBMd989CsW z##qWGN5(Bw;XT0JgN0}Mm3@kOO={= zIo+KZRv|;q%O;1O-*1buIl#CDr~h_tG_y?Py7?hdud|}>q@HUtc|cO8X#(LH%cxX(uK?W z2X#C9!HnlhdoWl=mZ4aD5azqwNa$DT`OphEy#M)E($$&B5d=)XQe&k&7{|b-jZ-c6 zi4tqYz1<=ynJ^WA2g`tSmRXCxa_&7UbUWSYLljjaS;*#D0K9-s67tTPHSMp+}?KOwtfeo6U7ab{_LO6q=!v8#kk+p;6mXR zO0-FS5X?Pzqph>$@j8yo3k#N0MfqOLMX&-E#)K5EtO^`NEOZv*Vdn+gM}AaibRQH{ zRYV!WPFYVcrE&~z+t=1P>P<))JL<&6xgDXzteJZuq=nJ|X62>5rcderjnxxsiw$XU zHeand5psqN+}yl#)hSTJnt4|_L#7>()YnCb4*m`Tid&sT>?5lrTMESr+<7rtVm+_J z4hWcFXAVMVj`Hyf5+5@=yxpI*+M29=V5ucy(6sSyb?0{lRqUd8G00nJc;;yj zY0iF<+ON_85{l52jZL2oAIV*ggzX^4Vcutm^o15pxoGhD&TVY@wstj6__G`_pcquD zP1=T%6VndJ=RY%yBGtaFlglv#fMMF9zt*$ey12E@I4#b9OH$ai%VxLh+r?ZxSGXsr zODxQO!!mPfnbS5ehmH&*-OU|glj_Q{Kz7*ufMEp%Fx1s`Ez5-B?TAlO86YXV(--}Q zC9R_&4Pv7)%;ZW%kuHpuE9r{IZ~KvKj_*h!?U-zkOe!TccD&!+VJuv(8&Q_PJu=MG zJQ!8HQwsZDE{CoBK&KJCLxLrB_tzy#?{1W>C_#G8Fh8vmLD}gS321k zq*Hid4(ZeDg%W7zvQgxYZE7c2MZ>14S>3({ z=wrovYPEa3WN+=^Ce(R-Ro^sxb)Od50H$rgY~GzXuky^OA;W(VuuzE2_+@`fb9zNF z+_B7XnGa>gpE%>D7ew8vLBa9v*xfE?J{Z42PB*$=XrCP?KD<=QcshjdE|dv(CJXpN zQDJ?*I13qT#4&}CNu4H}5BtY5M$QPJuI|a8?<}%)PmUn-Zp_|^L;;i!f+Q~I7zUBO z&2-FF{FnzPV&&NPzIR~BM>mqdc(13O@yW!s8Nn6p)MMKx@grJ0O-9OPY{7l=kQ`U^ z5(+$OTCVw*Yt4_FVc*x_O_CKKtMaA#wn-mp7m43!oK=3%K^HuI#TCetyw_9!xWKkY zOXup&)VX=+IQQ6DQ6B0c(p;e#5%zL%LL^XG6;InGbI^NMdkZVPqrZDHRNAHzBr2l` zN^;fBvtkUK9`}krS$lqrDPZXiokaNm1Hc_TtW5fdVLN)2{PhysLLDz-|J|DC{8Wt@ zkGo~e(Y3o@vLB$YFf>W$u`!$s0BF0BaYkIvg5mSko+aYeB9=jiN2p|SE zTH+43L~|Wh8yHh`b8(SihgZJ87&b%bbPzPV)?x7Gf(Eup!Uz~IHsN3ZHpFb79!HgK z;o~>^r4@s>KVQLF{QlIbf;B+2r1i2fabe$%+|4`%za(V>4UnrS)vlwh`K`1~b#-DmF|R|2EZwsQsu>$KzZ z`pAS>bvFc%3d7b9HXin|Jc4S;Pcb~vU~O4w`lPoddh^}Yaxc0|7bxqDC5@tQKV8*g92Q7(tu|!(*+X&3OBOmpQbe&{wil3 zE}$5NXu+|0HQ=9(%mMRi>;7oUrf1o)ODI;;xqaH%vE z4=Ozqzg_8K6|ypb>&`qx0zWWyyB>$!6T0u3?KQg{@X?GojJKa63gaiNm& zuJC&h&QCBX;U5Oyg3?*7oc4Ko$!E}EZ+_)brClsYs617%GY&g>OudjUv9!1ruQk}8 z9fIcD{l1appR4biW_G?n#(WO}&Z5AFd3YGGrhP#NiGbJt4?uEm{02xyUXVyYAwh6@ zTo&&Crhn8OH5{zX9L+6AIN8}*{&Ndx=nIC8qesI2o$~pB#ri+d zAxTFEH*pJBGZ$+oH%Au|cGmwMz@+t`v)KNB{E3wrs4N671C-ACjtJ2=ff51-gup8> z+1dZAq4&UQ?4bJC}#}2c3f}GFRE+3u?2LOX0P-8ZE1aP|M7<}dbEckqR`O&c! zM>;yd4}1A|wG}}U1Rzyb!JxE`AIuwdb9(xAq+ zEW4d}68b^`h;L3c+)UktlN75E(OQ%Eqf1ynR>k#RND0(wg*hKy5t<0fIG|cMmG|6? z?3#SDmEZ@->PMhW7pluc?IN8yG5@~`27%QoGp|k=tuU}pFUG~pP6Jj278(m`)vr>e z3bYmtm`|sbRIfB`KT8pEoirF?2nT^`E*p&n#P2r5Rs)!=J=~lvr@zVSCdIy1N@oy^ z%`)2ql!hBu)8~iczn#w=p-e$VSo6VJ7@)DdxL`PYpQN|BP!zCq2v0!ktC+DDQa8xl zN4J=CHo&VeZcwY+P{$&1l=z3jIO>ZfNo6$=bzfwJK?({5%sRk#(WOAG8fk^ucQt~0 z$I1Eu14$ht)gChPQft-igkp2??Lgx^*ns;O1d$N_| zCy&}CgPK|!^3#K@Xme2FAU)M6gnxzfWTdbsgwQ@MVS%Ewbw#QOwM)%{v}36}>*Sor zcvc!qm}E1FNl4Mkn*lC9!`b;<`9QqW=|dO+w+ZxqG?P=Zo%eLOq53S!{uJwi5O&GQQ+^b#lzNE z#R3NtyPKug1Vg_Sdm(@6wXMO#*siD03vLIy?=m!%Po7JQM0X)V&jp`p&1j^(XGT55T=um2+PYNdD_xO_* zYz?<(N(`K6qv@!ixlxYe)sRx+7g?TgheS*1HuXoi%{_c!%pcfx(|B6F@ z2U!RLN3FN>IIC>vms~dEVLU*mZuTO}e66b4OKiB}O~NxpGbbfPjp?3ro#K~V zq@nz~acsSDi*p3Bm(P@Krh{iQgl0X+e86lMUq+7NU!nuQk2LK_VfDIA5AP}fSZ*{~ zJY=0L=v&=%^j#t3o}l{<1{2#B^`RDj&Q*<=aW3u?LKS-pj@E-|aEyC(#%CxjPu|vo zTNgmjR9y-|Vb*04aZ1IOvQCKQrJ`yC>7kj%mXc_?8NNUqXT?%$9#Jy){Na8K_aOKT z*pCd`Hzi|{<}3to>(X=I{vWQ+DLS(t+SajcJL%ZAZQHid!5=3b+qP}nw#|;MPI7Z_ z@3`kY)x#dOMveVYRcqB;-^9^s2FQm+b?oBX#*CD>a~H1dZm;5j4t0AqtrFmdyV??Q zd&Me8$-tG(LXzI1G}DXdDX90OCPWa}GZaOJ{bBUlfGEdfIL|?X@Sxpgsug-Ut2uq8 zPvDd->cs$~*Yd6Z`eHo&V0s$rToSU%0`&h{q)r+T7!U6bKRwD}XbA^y0$41;DMw8V zIFrPb&Ol{XQy3@_;SV46r64JbY~aF&UsEG(go^-8pfV`t(14TH`440iSFSVI#G8g< zdC%!?pIejOu2(=vkC0R&?Nv0cLH2yW?9?)`at$(}2U2*5_slKF4w7`o#f4372?V1H zK&=%53wINx5rz4fMH^et0~|z@66be&vAl%B;NQFzQM2h!!|c=JckbtWEe=;Hp)KYJ z+O?)T*ExX|@#7H3$O=QvmiPE()Px@Sf!uU@+($<1P|CZ<>cREgO@a%#QeQApPZV3& zOP{2!3$?&PyM}(_7DgS+PrUJ%fDy?DI1Yo(;J``V4FSa~RDtEe1FWPS36FADO?vnbzTljpI_NTnf`Sv_|Fon9n0DM&y^U{-nNyVe+fzcLcU3&tdo~ zv(fij$?UpA8*z#u^JAux5NA6pj65YPITsOXA+8qwXk5c33f2;mr~^a~C)6R|tg{wS zWC{r|RC=~j4MS{`%;q!WxN_bc4m zTC?Tazl7uPDu;KBq^ti>!BYw0Z|N|=%rpy6ba@zY5hb#M91Mq?+8>s%y;}grk#pE&a!WW!7<14?=8LwOMhu^JxyCPnEzLYb>k8IDswlow{P^~0LW$GKKX-|BvlLUmy?^|DABT|fni>bnoxcYEIENM}H?;KY zwbR8g&?(j01wf6}ierh^Q>c#nR|8W=q)pfxzCPzKSP5OYt9z+Xr(6hp1xXAHsR_FW z6lgXc;!)dC=pJ87W$BN9$C`C-zcJcak2dof7)GOFEQ0UlEDy3+%;u)K=@~iavn9@E z2YJL4yWvTC(nx+de(J!Glb8ngZ?hxD5?V|R=K$m2b3lIBNx=j&9k=%G?LSTazFb+i z8e2t&4&D`@_bH8D=jfdb4N)Ur+( zO`X;ohLfTt3v10jM#I2|nO<4%Fo8ok@vSR=f+MMk#=*CT{kU+4rGeYsuY;JhH6b^* zdsyF$X#geFu^h$nDqp;KF|$tsoHN1$c+XE6FH83}EG;LE zGgVWo@$Ccf-lbaz(;MBo!9XojT1e$fWw`K<^8vEEV^$V77o1o2KB%Sb6h(b;E*Q0b z)gy2_Iv*Oa2wLH_@*ZGVv9bEZ9BXWE(ukV_VfhN1X2`$6LX(LM+r~UMqR1$9D1~5n zdL5e3uXi-0;#%*%N7Ol$22MfKZ$7x(-_nxYG!(E)Uhrv6*w9cHTznu~31=05554$M z?E)6zB;a;OJbsq&dTsx2@{Qo5f?dhv$SaiKz-g#K?DBLoMJjESw|)c^7@4rWTr)&E znyQtT+5&9ffry zTh1~5xwz?&Iy-G5(XrKxf&El#aUvd!Hvre6xp`)1^*pO{ezl$D*rl56w#BN*$*wRJ z_a;dh>1{h`9icX=UhANm9AUFXg;47y1)pr6obtlZ(poBEW8=s1zJ)W>kmw}){UzPm zk6%+J8OEdqrovd&<lR7#ljLlSThTO1!%%NSlj2QH~K5 z)Esl^jY$%b=ydwYmU^`5sZmM1=JN_T0gdTmu#e3ogQ_sTt}2VraqunLX&*}X%`>%p ztgJRwWA_zO?}Y)1J1Xil50u>7Q-GwnL-p);yaf&p@gl(Oe)yM;341jtJ;}ayFgAt@ zU(|IuWUJXE2DJ*-Z%^;%&?1*)75w6}if+5vY8gLTu6t|nP!nvoX6bs^qbfVd@4_gG zp(#?laB!-p+UCO~a4%eD*j z4%MVLIqN4pYUGBwt1qhNywk+gk1#&?p&i@kmir5vypt7Sv0u9t$vDw?`*^4ed}RGO*Lq{>OC+k9C*Z1<&DW-mNqy`@aO&Nz=1^tzdobw#!7=r_rh7F<|a7- z;YIM)mmz=ZLtn?fOIJuR8F2c=zR^!yY0A%OVXi9_kcf>mg|P*DsZgZn4I)Ft>B_CL zjB%$3M}_H7)-7nd;c-8cj{1kCiy#iySxvrkvI0VaDciE)w+vKXA}gLD-^<^4s*kr+ z*UET%KQ4#NB*8y_DQAY|H8z>tZe?d3DW)l%Z=5d%dhX3~KVOs;)d8BClECkQm3kl;S zZWSHP0gTol3_#9n{Vg(O0>4rM)eDOP;_~9pnjpye^Gt?oO4Tu_OCAJ}W`DpQXjEov zi=5CH;q;W#qm}V;J5`HV)*)@V0w0HLgNee?aT|a*KmyfGq< zxUWNh9)NID{TBWCY^`U}eIq+}YSLK_v(erm9BpPY#$duObt5kx4LTLx5hLLM|3$M# znu;{QZ&&Z#!QCpN|CqUqOWkp+*oR8q`1X)Ko4wR-ezlF(k3_G8dWoNx1N#9&vOP&R zj#$sX3kBzU6WxQ#1n26uFN))4*Mb^H=lzlvixk9hC$hm!s+4tOmU5X)hp0&Rg(lPy z(b@Vs2JP_^T3rsz?LYAcsrZ#YDSeL{EGh;wBPTr<5i=tbJqHsJGc!9q3)|0-Xn2l~ z%=SNUlk6N!iFazKNGvS>GxJZ}k0iwWkBJ=Y|1Zo>&(cq6;XlLRA+s>D|3_(oK~qbc zh@Fdwg(Xpl2Q^g<6%;x3^7^OoDS8$)l|UI366yagf|H$|ljXl>BeDE<>EgdI#X8tc{mj6v~80NK!J!*;n(d>QaIh=D%S(7O*4Kl$E$@|;_dqZ7<8yj9B zX827(ozJ_HJjwDtteDZ5sfg2;%}5 zS!HPf?b&Q0d$FU@%4=f$VWoFz-#^gSA0ct6j{ds83#07#pjkLLL=^bsl3wx!sC0>D zB-Qaz?;*~T&KxF*`O{@>TAy>F~|cxu!2+D_x_Mz6oV@mKhGkO z?FS|`wlxr~uO@CCNo9$9B@d$mZWFMq91{X~$&=r)gX^Um-V(s6+hNhice|*KP4g(a z`sbj&VD;)8h1A+`1@(kU!B0*=cXxhzu}?9K z_#OPjx<~{W$L?620%$^xQi18iRWdsAR1LeUcyOX34mqLbialtl4w~u!!1^mKOU3rI zX7!YpxL-0TvPyK!{PQwrP^l0x!VVK^w1R%9bUJ?*XNMkncu(wkZvntzIJ>-3Z-J=< z2J-J8S7PlldVk^gNoy+D5-h0Q(?@tC8>nZTmA6R@C|h+wb_{zA|7b|I%EYXk;B3o- zPS^=QQF{cT+1;7NHPLYZ@O!xSCbctolDo?!H_SbB3a`plwv+wjZ{e6faXwj~;@esE zD^sAA{!$?kkLZkIHv6|n0hy>}6%nX@y9E?ZS%EiorPDtBP3{gh%~oW;#R#N6yp?eIFsa}Drgr^ff_H@Hp#?W37wqVAt^DsI3M1( zZwCH;=XNGNXh>gu^M}&FpA0)r^z|izn%?}hYe{g4pTv2E?n{nCZgVgdv~AaC5dr=a z|CwXhJgoPWXzVQu(en(l<<0JpDrVDzwj^#9fu1( zW){vBWcp|GR}mC_e<~-ubP5ME( zx6i;p8D13+0$8@R`^XtoMedUnm4j`=Vu~z1cC6nL(CoB(<(*`==s5NDj!EcUyssp7 zwGAJAsxj@=qLkh;n|I&BUj2|7oti$9amSZ0@0kHBeG>gN6A}gru5}u#NRUab7 z-CE;cwU3pZSkyd?3(OWH>VtDwm?o?!2Aq=6o1;~3;%|M+QnbXj5CKh)SoTvy_!|wq z;79oOoFDiHPKWSbmgw~t(yOZ{c~Q@9J%bV{l3LSI>KPrhME+*JVxy1O73F27ayXJe{puTp-I)S-2s#eas1WPgEvbn%M@ZZ%ch# zuM<-iHM>hbeSE;DHhBXt-sZzmgI0oJ5S<*IC0hf>scZv>$*x>IzdGR}+1(nk>$53V zCB}m}>3F+%UMaY$cZ(6WBF3?p9JSK+72<}qUIC*4<_TKN;nH;3>SS+?xFrMM_AaVqP_qkkf(!;fH=`r_NER0DbI2#4I z0Ds|VL0yHAJ!6b7Dp+X|UD!#{5V?Y7HIk8;E!+YdLZHhEhF6J*Jotp~{emC89;Vaw zTjKU}b~E?Iks zBh#xLhlixuD73LtVnxDkbJIu{vX+%m0w6``CTx4m|ENorr-%PgD%2zW)iV{l!JqxA zs#ovzsBEq`_sXwJ$Z~T#8eYk=D(F8fAi7}Pr8wR2QQ+aWWGQzo-!iV{`9j1u0Tqyi zjP25^S;OLVjmw7T;!&_tymuU5V9zwa^A4Juo3S;`k|cM0j!$<_qRLKz4^y)IokF z({75OE7g7_ZJQ`VbRg{8{-jBxZxoJnOK917;UX010^}G@=Eq@pTE&W+iO?$}g_T|~ zWjQz~Be@3FVeFOQ`Q@#&T7cn5ic!28rS#Qpi+Ie=IS5;NT9Si4vBJ>7Gg9-T7BWk& zC6{{o8RGT@ujqGQ?#vT1K#(J>ej#Mt$-cM=!fBL;3C@La)_35=Gp-hIkhsGz#FyN` z4$2#POJC-|uC%{VYk`&4B$jS^4 z+E^O8V@l1sw|OsF&A%RnK6IXhiwgR7L5w|U>;$=8$E2ZZm?m`ZfScfb9|F#834>i| z3EheHp1nE}kP+9EjSn|LULFhAN-H}zu$jKKGOibXSfgSS%A{(AX#!gjx`qVHjb z0C06lIw(UT(_yF9n}R`8eeul#H0vY#m!hchxB_m`!N!T-{)2WhHsN6=L4U4KXogJF z(vsPgjZ&30>5E-E0Kh2fl1ojg@9a_$_npNYde_sGN{lbuKCzP)W0XT1mYxi(NuTN} zrVA_W$jWYp#aZxJOM*g3F{T6j%z0WJ0O1PjrVoM`Q{!tJZJ(%|rn8M`Ap_hflaQSO zp$(L(Te>V!3mxdq+<4-wtPO(tcWzIa{lHLupD67KxprlHfM@!suI?|6lO2xn=;pg> z=fnDBuYe3QA^nI{g(fhFg8qxCp*ihNVK|#Br=(c5df1xtq*?)azR-FNxn8_q{mdfe z=bK+|Tjk0jO7H@#63e04Tz-Fck>Va?6+PxV$dC|P zJ3tqj(VnfV0d<(r?C3S9?j|>z!P{GH(rdnjNFXK-uvu0zzMC);##MHqcsXUroA4&O zCw3zZU^Wp#%(6DbWo4Jm-fS5G*YlO(TF96-vq(vN+BQKEXRxdboK&)mNF2rGS&z2e znH6bH-YSfi2Zn8x*bV%lcSU`3>-}{l_%69MY6w#ofO6?5Ms=lxNHkJ%o9gmfZ@V-K z4GW$YZrmwwlU>su0gk9gsWwxRAHA~PoX%?mca!tN-$_4L zzlI(osn{&?IE}|QbR^Uy5meM#L}^q!u=|P8`}BCzYSf8@G)xU{;-CMS71w^3A<1WL z7C(|%!AxtdGwK6X)O;p2)y&*6Hxte;b*`8XV0~&cAicbu3=EiW&pjzNB`+)RuPmm` zwL#azHhts%2glQcF=B6^GHBsV@2C!hyX?xE@wiI3O8vzYz^bBRE`5YsSW(X%@wiM{ z@(1%zy8=^MToyYr42^h)I#U8nX+@0++|OFj2DdzujTNzPn?|KcXL#J3a}YLSMamig z8D*m?yaP00zDS|kAdw$C+{yz?gZ?6XGr#1>nR`vyXLkxTMzB*x>3)M*D3`TpY~U&~ z1KZ^S&p2jqOjSBr%{V6XYs<6$lGH$pLu>!A$=N3|&@bl*s{`PVLIB{SZd&S($l= zfud+1K*t3!`7JDePIWvykgF~lM(J-qH?U*#)+a9{Y;AQ(ctmwOH1eE`eD{V=nt1fB z3UwLnTSA&685IIYm{u@HB9y%?X14~pih348Tn+_QtiYYx|3#!mym31OEPSSi>qgWF z3K9{)GMh&XQFb@4Xzwq}1|88AMT-rO1U?l1E;jbi-V4J14j{TL;KZ7iKo|C93;}5? z>=5e>rV4m6>;#OUdrfIlbH8KJhL5>IC&-hL#Tp8&VZ1WNSk zIh;t37p+0yWeLvKIxh$dAS{J_Rjsxf)%@$3<1^WCDWU00nfg}a9<(C_!uY}4T#LnS zxh@?PiaR^r&p*e3rw|tA-gp-(O3?SZrOR3oNQDJsM6I@o8~;8SZbhge%S@qrQcrO zh&ui&%`C}&ya6VsN)5{NE2>1{Ss&qF@0&A&h&?EQP6@}?$mT;LKmP5lBFiTgvGcpA z7_b)-gk!N4SQ~5#hmfl7&ygY{K9un;5c!J3az_ezJ&M``gWnQgKfe)ko zEBR;qoShr1#O?3B2)9yx;d6Q{T3AoIFc;cDIbi60rOPw8mnI|Ziij*8NVL-$6b8P zR|6a6(T@u&0jotyLS<7%Zt0#8f62^M-qunBFwz3F*TAIXGPa?Qv8>w%vC{@!gFJ+p z%wB_|z^8W0h5__5`kh$kDjVgc$l;?soYZtOJ|Np5hLUX(+IVWCR)JNOnZI0aHTSma z=~hC=lln*R*b2~pF_ZjWTr%yAM;&NbhLIr9rwYDP%Q#CHhIK;Ec_TC_rdXvGwxG>? zC}QJo<44q)2Ms%+|L)pMNQABY0+@u0JN#$GEHR&z2#ba3hp59v#Lmn?&%#N>@&o8$ zVfm5H{M4irVDbI~s{?EfN`l1lKZ!idsY(ZsKhhXxj{jxNGOV-f@Z%utXJGgZ*`4jP z#(1FcXH`GIzLxIVA43dxkD$SKj$&sBQUbx$!Xaqz^M*r2nwbjG%B()@8br!gW^mu} zddu(j4wvXPt-H3vbeEZXP$QzasR z!v0hU%7T9>*-V*}P`9dP5>P|$>eZ`%-aw;{Szy~~?9$n>SKxZnKT%C@+pbkByFLhB zvDFu*);=pQh(zEBRfB-vM*s07o&2%=Oq#Z2-?f>gCZ&m33U zb{v%;vr&+EvzC8QgOaRBzpGphq0MEgi@jJ5p#p?*HX*+L&c>b0s)Sc^F~7hREi5Tu zqR=%w(rY)+W3~Tdua4>VCqx?S>k4_nqG=ncg*=Qmi;I$Jtjb+LY(`54J1NkL$HhIl z!nxc66BE-P0Ua=^p?K+_j83aI?3!c-%6sWZ+PwxW>sXSxCT%TBkETM=({kl>hu3G6@+KN8dGFk-HGVG%j8LQ! ze*j-aWpEaPF1wbFxouZ30>Ql%3pY4D#)}mM%82OM!oZ%B^UUFx?(#feyuDG#s<9u; z?y-%~SP#ghaGFd|gPf~fMCBx3P0PX!nlg$CAmdDEoT_&T&55?stnPv0d$A#7#H1Rn zuUKKV39^_17=;zI zjew>h(@=JQO1j`=_`^Zg5aRz2bkgr18dMRbK#BkzDOFg?QK6VZ%PAT zYEVdZJE!FtgE6i2m0F{8k5jwqV`#dsc?4hw23k1rP)JG(TJbg3;9-wdm6BlttxizN z@%F5)9Da1FHQ+N1T=jr?oOl>0HWMcY+sB&5bwOIT*bFnJP8D74f}mJulNNjUoH|cVOy&0#kpY_b z5#z%BKZ+je!=b|W=kYj0xhBG4rVr}WK;G2AgaJcXd$#!HL^N43#0^f$wKMhHAQ8kG z#sv0u#Vig_16Q8PJi5nd>yF4EBZW^snm=tx^6*)n7nEj~;qkeP6tdC5m}zbF0=#Y< zX$))LY$ghlyYxWY)cCtO8O3Edqky^nW-3~wIPEp1(AAO>BBB?h$3Yu`md_I3UN^TZ zMm{d2vk-9xJW1Rwl*k%62STX1gtasJ2Hng=Mgk5{2z~Brh@v`p4$zZGrKa)8;?tzt zd#OBdl7;gG9f8{=Da=n~!vMan)`06Y%hpW4j?t$voyYrj$5!E%t03CRcU)L5DJU*8M+-LB zuZxP`G`-_me4QE$z$#TSA}FehF8gsS1MSm0%=x_~`Ot8tphC)XxF zy)P=8-~>Fpy%-60&6&^wFo;q5Em{xJcsm?Qx@r>A8}+s+inDBQO55{?)zc3n4a0vM z16O~HjVzmrN=+STs|ims*CR&BQA}ZD_EJ^nv$hSlPQN@IuiDNui|7s z>*%*LQANd(L2oGAucU$Te|+C|bn{Azrgl zaIbiuK2@`~iM7lZ3PdILb*I}eT@$!fEav>v{0Xvbj}$w~fH~Gj)RgqhL0dD&F7ti` ztyl`<^u{it+c`B}Y*lTmeI`aG>vZYGPI~ET_FhvBc@Ppbp8{&U4|m>Py2I$2JQc3U z-&lVAThrppiHC=Jy{rWRa)tef$}|oS(3E=#xa^~fIy>^?tNCzeho|k;RlR_^d7|2} zL7ECTG78r!?wS+Wa(LEynC9Z12U*ZZqDh0~f}w2or?nGSu^~!V+dg` zuVJwuSxc2Ba0X1Y`W-Tr_3>}n(rvuNFbjmbLPLK5EuHwI=RF`xyHfHn23WY{eXSm_{33FtK!L5|%I<@g|dnHaF16q-jzKSl2OSk zuD~g0V+Lfq%_+Xi2h3Gvu1z2=lEnT6SKddhq3z%&f`RyASl_1%R~gAe@(frc5!Jrb zQj*^Tbc106sF%HV@aFng}<9pBEZe~?2chdV6 zKt}iAcTiRUXA2?h*UaKMmnpP!Hz+l~biL`Y^px#}y5!fR#r zgvY2y-j$sT%PSm6%{dNYPpx>s-3Gm-4t{vNf+7ZmF?+WT~a~xJsx0AYJGo?e+@=yO2mh|DU0t3+M zp947rrN~bvqX|k28PXe?kc&wcn$i9+(_BB%!r zoQXslG`GYg%pg#ID-JhWY{J$297G;W5aShRO8ZO|gp)~Wmxx--JL(k`^gHe+9r0OC zAqp*?rSZXFJxFub8mfB?2oZ@I`vFZe6_wu|nF~kh9^6OJ9?!=O7alQyV0RTvZW@WR z&dD$aX_zK^&p}nugTw2`hg>R=Hl)toE6b=VOU#Wy=2qPhzs4;jf6}h)sdbRYOeF|& z><&CcsLqQFS@8E7;-8zZJ#7UnV?yack(xEAzoto^op}{!`hG=gn0BvVJOKRR#<0sL zxwI0Z2WnlwAy}qDdO=Pmq#)$|AdRMk$kXO?Q-h8$p?)}F8J~mgkuL93&QPX|-wZ@Saf5br$Qq537iBeHrK^Z`q82<}G3c|vbx{C^m^Pl+BWLHp@ z|NDg$;Rl=X|8+7X8fFru;<|ydrQR)qlBQZJfg+~;f3fQ^aqe`Q|Px;hR=BlZ80d4cZ6ph@aJhqU62`g`ExLL-rezq}5Q zfwFNhVLL&PNnDKADyX?7US1n1O`Y`lui!itcXZGj=>6vRS$%%$*?64i*!6j>xv89f zu*dy;-#;wBQD6Xk-@g6c@qM*%E6c0^)GAE3?u!2$N@%|S{(WtS5sIpgm|^(t^a6er zfPJCHODAwn7ScwGd}zw~}6rznhm4;R_0FMwG7@3+rRfdT2ZjW&Oz z`ezLPSSRrz*)g*$N&I3GdS;gW>H3Or6+RC3_d^4IvH7rG5{9q)bA?@rKOXu3Y$?vb zX9U~SsR)vl1w2j+8+n}8F!npc{9fDSgtkN1)CyJnS z&qDk`qI@x3jDPYRa3~JYLqB@XQ7sH8usP@4ZN1r-SmCX!>&4Doj@!cOJ5b+M7uE=p zpL-I`Jtn$@XHnPj6;;=h3WDn5!F^bX>MyQ4ewk(PM z8Nd(vye(kvp|>>1YxZ?(@vrx9bBBh9z+lGsHpEI`&?A#XI_(4JxbFmrz3Y}Pxe(97 zo+{l!3od21>tO9Bl+}g8t-@~)e)U%_Wex1$oNM7N2M> znXjE*|6OiO6Uq3jh-fQdI}ge-)!uUTsi*yT0V>D z7i0Bf2_3FCc>*V*B}uVQ&AXH>TaI!O8N%s1C$;LPn3~C>5s&k^Ti8SF(EI}|C8L$c zqRvwZ;pnwK7q=4K7!~r#yadhV3(pdfxi*ZsG}?tG-&j3KJ);RA*PTx)PVFt_`onE? z<>R;F3yc~rA16(7Iauvkt<08j=;@hb(0-dl*n(anvT1U8Qa$ZwyQzQ1G*MDjUceng zvVfbn)t&X78{YP;li=<14hdG(5tI zhs$YdbMScX_wWy2*8%2*Q|ejpHeQ#fDYNx+9uoLG>dC;vI_U}bwm9aI#0ss$a0D6y{NM*_>4wi1`hc5I6k^&@%6gyx_i>%aX4iL#)<@SSrx%VStqOJ?Yfo}Unvs)C($+SO>fd=7V zc41EQZ*09Iq<=>VD~h-Kaik1;+5#N2;EfqTWW!`amK~+!S?#|#di%vwbm%F{#WEh3 zL7x(9Kvs<2#nvPKCZfw?l?sUQ| zeV`P~;W#uth@zdt2}BQ703JreCy4JjM0hpx#RXp`m2$0xyT?$cPb&(DOGAA~$p*2+kb>)g=tm4r28Ai(fe@(2BncK5J*XDZ zKNGhu$dNztU+iZKUYjPv#mw6ZFQx=AU6`5rdqmJ?O4@1LKnZ2wdNAX%QTl&SKOqM5 z!#j@Rlq+f{ptLP|A=XGiZ`Iqvq>~*sGp7f^;u;LN2{LwCd($~T9_?sG-qLyhX^bJn z^{q;T9;sr+S4-pZA0_u>GHN|ytKgC8u3 znMjAlJNB8D8D1Auu>(<{0t1UPD=A9BA)+xfKlO&@8Fj`H&`czMfT&I@dsO||l2I|Q zGRqWGxvL7$0xIPIdN>f2?D@WC^kULmMIO|% z{@e|VbIvuiDLQ>+6xzqOM8rePEI&ss#9;vZ1YF>;=f;ncMKdUD*9cczq$dmll-bw0WsX zL(ee{P-p0fXKp!0OuI&>p7y9gSfxS8;cfy?7f0va#xy5p%%_Nh(nu};T>HUu#0Piy z<0k)&rK71C3s2`q6A?)QXvg2q$J8OvN?yCXSixUdh4w(_UtD%qrUTTN!0F|oayfc| z?pju~9j2)T^kO7ts4H0e;rv^{a!)m&Y`W@U-SELRAYZQGzXjZBgNr5zH*Jx_u;Fw# zgan<234LAyR;Wsak=$IBg_OJAtt)D3d+hDuBMd-Il3 z2;BOW<~3b{4~qI3h6r12Fyp&_!oQjZV$h5if+e4}j}qbsr{4$_-bvK(Fmi84o%Ayl zn7o3+r@4vwv?Urholke)oq?IoGTV56=XNq_u2*(1&y zgILk0k~gA(A~>iaP><90=KB}3)6_fl}5aI6}A?3Brw}!^_+QecAKr@MtY9pJ@X7C6m3Jjv$LUf42-OlDNMcN+OU4|xhp zKC}ebZxWNBBTf)2_prK;==Sq$?l0t+U(|%mP@Nf)%8WJI;>_)dgT}aB-7QRkNu(m! zFInh7ps=Qc-fnv+6UiO9@!Z;~ZgF*qg&=UK~aAE9ce^J2W(Gox6!*9p>4{SJW6|OrP@Lw!Wra~oPhHI(^NtDfeUe&I)+ayapL&bs=8vI` z^z6u^eKfo|0UJ4Ie6X;WkV8}^Bz5@qk)czxZ**Hxtmj>back1j08dLIBQ4+{>gfS6 zEl66W0pS)ILC<43ma%KOBgOT;I@ zW1;^xcwCmRySo}dSo7=o3i3X#n5d+vqzNq5o_Nqw#~|6KUs+*SGC_ZJ;c6d4+{!@7 zcUWo1(gew7dQjT03Rp~l5v>(GzL-@9o+mzz_zh4VRMtF{beS)jI2t#Avz`I0T5H4$ zm|a&1%phSDGw|6o(ai<*=VED-nb$1k&ep+o+n+pg@8Rz_}qUk05dG?Cr(~d zD4EbJ@j-O&UvqiJ{Hj)Q7DE;)Un=zzm^#zL8S~=JSOm zumoyolqKxSR#iAtle(Qe3?2YEsLLC~6+GO8OoH8owNVs#OD=cnwHDBkQmH@CN)G4w zJiugq4)^JuoTz4rBf2py1kU`|=BQJ)Zxk|hK8MKlW3N#bU9{*Y=F=p*H+VL&bU>Y|aKTCCBH)1yZ4a?WJ@f#H6*e;y!bZSfKCE1T#e7)9_Ie{U=vehOx6~;aM0{yDe*=vq2I1Qa6vA@WSS>P_Iv+v77mCDq(JH&EngNx)S>v>fUqS z&U&2zBh>AMtncdbP`R&nq>Qk zoG4yn74dDw?{2``k)f#o3Hc4_UxN*v<&Qf$s_pJ(zceXkOj`qM#p%>bqsD4GqZRW~ zNaVwN9_#{!8$1dPYwq&j%#u2rgc4{x=4r!W6U$e>T?=_lGj=wqCu|;Q}MI0+$jmAO4z;q%>Z6I%)2rto_ z{rV+BK(y))b-p&-b(Dp~4efzb6=iB@RO044?r6EzsJY@L*=_YLDg{f(8LXvESAG}L z2(NNb<-O=CR)-yNU=(NF;24L&TO-gQy*(mi;QWB-eiE21YW6_Wc>iQpFvFYOD*z-Z z>v7#B)Lb9)e1BXf9n8(7=n1z*sGSQOeZ1uZm+v6V=kBiG;|EcN`?>6~>}60LG+b2c z=p#HkNBjGxgQ(OAhME-Z78^be;N$cDx3PV9K&J!az!0rJfZ-${$xGToHFtd z8!|q#%+`E{drB8Z+hmQPeM*yiH?0>IHf{idM(g))p;NJ*yvJ*b@Aw7Gt_1~~4r#(q zBd>m~MOH_T0%rLDj#rHba+N`cnCHl1yQ8Xlko}XiyU>(LEt6!W!uZA=9R;vsZ90Xl z8?L-EztM|K)g6UN^HV$A<_E_GFmiDHPo7D$?uEl9C(5^e-gi(>wy!1H zUGZp-zk99TC5R4M=8mt_b5O$CAA9`ay5pwx!LJ(*mLf7`3aejN*B~*4a2BBtuTGLN zzu$i^vQ55M$n<<%Kf0|hYqUmQ9Q}Ko_FdiH{q%dkbL!^&RNQ5?+Xk?`Tp%{fV_x3tDiRlo4>WquU_1 z&))l-_xN409hKdZZ<<2z+^71R$twSsY;S}H_;y6@z5APr(TkcJv*f5Gq7J| zjJ!O%I{}}{I4*oHuAX0_#|IYow}b1!@cL_5CT%?DxJk`1h1b&Fupv{82?4?JpcOAa zQiDiuaHSEIs=o4*)d>7xB%{7gd1HDY>RKHQdBg&_gbQ@6^tYP~DPCe*hKm0r*hLSWIXPKfs*b5iq51xa~52=ySdq|>2r zN$&<3_6z1M&!_a*z(w?~+V`+n-Ieq%PiJ;Odj!p2K#eNG(E*q$nX!+`a4uHVU%+J* zI}H_PRmM(K!g`W$Bz;^703Cu_jFjz1L%ANaTS@4tHT7&(WbEI!E)aRZ{Pu?Z$?|CF zTXv9$$2NayBg0q=e)VcKZ;cYc-qs;{yxCWvruHPDZRE?^+Tp1P@yo z-M)%@MjHkyb9Mj}Ec8(6yJ|DbZ$oLI@%9B1UO`~S_J|dmc9L%o(Ei=B+!vd~gckG@ zn_{C84*N$>Jd#S@tw<8}ZZyIewX?@c<2pPG8I-mom~WwWWWGM@SxI<9ThZulLB*>C z<2wj)nYk^cXCqnjD7JZ=K|^N=Y;o(!CI*Wisyf%K#WxN#EMta}>bLVoXVHXW_ArPM z4z^}rzXCp0iT}zI0LbMG+qg_4Eis074wlWME+=G`J1W`P0T1 zXCi8hh0-GcXiE;CL?3FD`LY$!nBl}y28MS9@G+GH=M<|pndFYAa-pe7UiXc_e)3b^ zav?4jGL_^q#A@-oXA=y6G6q4ir=*K3c1rUMuel;Y*9<*U=tz#h{mCdcJAzOywhki^ z{)|gp5ZXo;0JO%gRh)UON>O-Q<1BTgrt-=Hk~}LqZ-QQz^PB8tijDUzt3xlb?%5m2 zCDY+9)n7I6!K!g$jT`1tkNSe*zWUds~%^k$K4lce#MBC{p4 zI5&&PXt#3_Dm5E>W&OcxhOagm8@CTk6eohcrhZJp^`{Y z9&Meh6Rohwuo}IU^NFCOf}p~0($Dx;_b!Xz_Qq2Neu78;a{ar!w&K#3Io3$oPtmAk zh@Wft%L5P7)pjP{LC6mPDC5p?3N0byRw;Y4nzyxlRz=x#7tS@-5$JxB8Z8xUCx0NY zipI=HfSZT{DY=4CTJMu2Vdfo=a?p74S^uRhhAFvLb-)S`lxk@$&~vR&V4V;ea)Lbq z_tV);E;Cr7Iy^?jpL5Gru36HXanZ<_OsGD2XE^lePdGrJNt&)#-mLOxs#)b5YOd0FG zfv_J+6!*91S#G__?L4U|t#@IohDz}FqoYCGuJ3X+yF?E8=fRz#xjnmr(AB0h zY_lqC`$X`kwCIun{VlilPgYm5Kol%d;w&4J@}20fwC;nti+`vki`N0=T(1 zHNkt<7r!PRuJ5Z1FcM-c2{>SG;6$tKOmCG67F*Y0PrqfqB0w<2fA&j61Ww_tN$6(` zFX5kx?`X+)mzOFj=HBPY6|c>l@ePCzL&b@ONL z{8ng+j(4#n5E_eZFur=^qb!#y^}wyvffB7#d@Um0P2WM7dZtaqkzmtXGfc zY)n&{DtaAW?3m<|rgJfono?2B$H|G#1fwDEPiyM41Y_`eihgIPl1epqH^Ajf`WSr- zEdBmPj4Q5-AiTnCme?zlQZjmQu;JqfObDfeb3k!q)P&IQZ$7T~jq%Q+iTFfya9PV* ze9>1_xD=CPIe>NA_NgGGmaI4iL4jl6&B1`mX+$j?JcQR3j*Zl5Qt0NFjIrArViM2XSfiap z)mHEdub+}W)VmI6bB91L`L9~j7Iw9PY18v4KR5;q?eV#m)Ljm|M^0(~V3b-&Sx|V@ z8Yg%i+lOxgY$ht3!UXdd+lIpLUAP++6{^IxdouX#sm6yH90wPL90!j!uD}DcHi4D;x)xH9qUKes6;%Q=xYX^%DnfWcy z7=PvqQ1^BdV#QXp?d1!8C)o1krt=#+HLS$+cKfEekfy)UT9ya>c#Asw_U+yK<{Gfl z=WNeN{7Vtmq&n* zr{Ew)b>cYgRYL56aK+Zf7|4(F8(virO0+p6exE;e5#+s~F;Ad-QA6*Wwa7Yj{m-sL zWF%74f@`d?Ob7$K5-ZuT>rA*ho-Gx#QUazYGd;DdKU5^UG%SAC~X#wCd18_E)+ox_<^rkXGYPp+s+n5X9AR>bj<{*-_RU)%g?aU2?ghyO% z)*8Z_lX@OiQPms_aMA>WY!2s}5O9jEr_3#m?O71lFTh_T96>?6C#2#T^BVf|`PoO< zIdr3sQDj^68Zs)JK7m}>>e;*APxjac$T&T?YvaXI$$$Z}la(zM*H6~7>B5Ee7TePn zVE)7v($SsA`{+R9bp&99DaqR31roEW^#h7P3%VRrOtrIgRW!!`1smoBjST3~cpe zY;=K3Sb$1T{pWLWEYBq3kx`(_AKO`e(<0x2uN7YT!rKL!Bn}FvWC2Bu@(i&-bMzbTShGtz{~P((rRG4r+@l4qqZvMTL%?WW_}HpFFsGsT!Hg{WBx0%EN`i`r z+5}(e3w*1``#5w0?#=%F$r>-boya5deaZ&B8*{rmmyMU@Uf}*!_Q6P@SmgAKV)6@w zZ$J3~?`pKXmpO5tChW3Vaj#B>2A&L9rDTUuyf&Pw&dqr!*pn9PDjs)@;~_+)6}lyL zcvJ}&#}ijW_k8bgFL`UoZD#gY1;mFL3V`~R?l1QPtAY<_RXWR8!j`3LOR zHdq-BW0l*+PrM-#_oO?6d@d%-*ykmuJcMgIrxx;bA#MFww&7K2;9uo)MP2GhcG^o7 zpl2;awrt}brJo_IoYyLUgy8dv5#|AbWECTyC5D%H5qwQb6sg<~6_s(_dXM?b-Naxl+%D4UyRu_4V4XtY6?|f6!FaZ3nYcbEX zTy_bD4--G}Mz6^(y*zG?P8-f2=xrD@rP{6rEB5M~Gz}1*3LzCpp3$6++VXnG7TFC&_sq)-b8} zske7gj1+fvcYg;{5yHqs2h%&si=NHe%&zg@>BEPZiRwOSg`PAH&?!$i!lH(PpO3w* z{#%aQnMG-K0gZTAcIA$b8vdCcEB7?{{hg435X@h{ZV#6K0+l^Or7$7`p{HQefWZI5 zF!8DefkgZ!pRj&2PQGy{jNb?oR?d`PPoOv{@*f}wAZ)B`{{U22SpU~x(|5RY7c>z% z8{Ic`eErL-3SpVU( z{9gj=qL#HSNej}KPw!`lNRJZr-s7FME*= z&I;qFuieKA;*NooYu%o)@J>Y7wQa4**7U#WU4O^VRk!^~6WJj3Xi~C&ykL47#lfRZ z!+fWE-nB2_$u^@oR~waDKV9nfjMk46%%B54kEQ_=(6-$G9>a}{syJ0N*t7QN4PF2l)x4ppeIjj1HF!w8cjUiOoU{dGyKE{9O>R)GIFIxCAlQzrng~oj zsmpE8YI&rpn0s6bg;VA|^*?K|#D-`;d(3@?sFGRQZn=-JSTeO{*TDI!@%XH;UF|^rVK1(cl1K2k zsc%OE=rVe^rG@Jdo8Mn{7v@j}wjV~xjs&^-)3@MOKNW;a?0oY=g^+ zItsN@0~C;aiTc}Lz)WZ`DPe;&b%!&f^sA=LWwr!ioo=ZLwf4n_{c`psD6@TgZ~Vo@ zF#sk8kcSZ~NAV*M6cdah#sIiR5|l>{2!##-KsoWF|96Ovl~|R-;tSJ;Z@9DK5Bzx> zaIh&g3xz(HL1HPHDX$@}h~o4UJA*8;LV~2bB=`x&@2rd3Heu9YhV`7Hx~gRzgtu=&R7NR>_81=Zd<|CeF1Mx|DjO2VKcN{EpT;JY|*Gv-1PPgFlG;;gp=A z!j+pLH7gZXTAE?SI+4GQ*ccBDxnE>U8W8xw6cfZrAA>DM1fY=1p8 zf6Wi+E?O1@6V_+%3uhG@y*ur4DS$toy)#TS+&7_tg15}TP|3(GpJmu(5X}a%azYs@ zA^1YO-{;|N@sc1njD|6TT?RDMNuMc!O$*(vz1aXd%!bw6(F^iv9N$mN954g_RW`wh z$zNgt@%gy_tONYG;!;+|jIM@1L}s$RMQBKSN?FB)j?MLl!B0J#WS-ZrQ(_#ZhBG*4(0xI$TnMgLuEl22|7<`51x+O)_Nho!dq2Q0nwi?&7O zj1KQhk!7=%pB&nf(@|D+5BnS8I|{5r86+d`F9r(vtWQorUs6#Cp2(1hFkBR}V?P0&q0%8X z%MhMv58$CNb4Nm0Q#eY}5z`pxavr3YYbQqNk5u<9RIYA(o)HBQ0k z8fEt`NCKil7%c1vUBizd*16#nZtnE<$#M9wEBV!9*-Mn+@O=rZQ}0qd!qc0;WZWe3 z$q}-n$BAee2f6WH4NlJR$900vL6&Q3QgJ7*L=v2!mk&Ki= z7tA&8+!V(qkPk_K1Bk$lGtr0JOXQ37Qbhq=V>hT{tpPj`#=^kHqG_sXzZh-A&fmxe z^(1W&^%`&G)DA3MxZNH#LS~^-k*HFk)Q=AJL<{wXGLEGNCR&M0kVFHKf(_-}$Gxh8 zmUMJfa{L&GBN@K`StNyzu*8vlRH|d44AnIYYh32K5`EGu0M$9__ z>M0Y^tiJ4lNRLe~lLzgX#}J#KGpn0Jc>bvR1hQWx^mH<^OLk83_DwNSTW+E;4GF)) zIwj{5U`>}5lIUFeZEp1TL!lQVXcRH%9T+2n!!qUJM(pCGWk$s(g~on?fsHegU`Xi7 zCpByG8@Eey1JEt_qCy*KN;S3po|9t|b4J7@1v09s_6@fI1mNebk@1SX#d6o{(V;^) zHK|?GPi9Q=5o$kpAM2nW6I866nc2ba2j!<{whMB+FpLYajS6|9=nbqb{Su3plO^lO zx}_=2s7K~sLMFqHkc$v+U{x4(ZJ6wg%sN_{O^J_%051U8tW${Cx-IPeuygi`N!7NuhEST0!Upk~3E zwmJkx!275Ma%emCX&Edr!TMt#k&snj2|WX=vd%hklwzhRcY!~ZQq7DX4-k;x>jNCh zqA$N3>a7B=MtfC6r_D$8=?NU!;u7+Wt$ESMUj^Sh*eyHXt%>-JBv`WjV9>C~_052M#RkMxW2s( zG$v%Tu(OT_gkk%yNOpz;sT)%!1=4$PciA}U!3d*hX|Yl7bbiIYy;N;~l;jzZ3Cj}r zp1DITw>Bww9GZkaMp0$`^~{|qrC9ICl4F+7Sw_`$0oLLtKqYVQNvglKrVZuUyOe0Aqxx zX{l0})L0|Nh%qcsSL$bA2CcAuGdn5O++9w6A7*LRuswC**Ozw$d1tR%^5D~i&QV1! zraseZw|bY|<_=U-@NfvfBzKL0=r~0|Yt3W#hQP5*?F@}?f`b-|goi(!J}3hSjc*3< z4me*Fzy&1shbiwRJ60cS%`=C40Vx7@OfU@8nLpt8-+A!~A*GC?-0j6bu^Z(!VPt?} ze$tgGB?+d_aDk<^9~;Uh_2W*1>0&#QSKpeLvB~V59h1nQ38#l=+ux{=LeVQD>eTAs zJ>4nVAWt~`s7myR{@tfJnO+#tDuH^XgfyPQv7h*MhEA!`=#ct4CxI)1A1b`TKzZ+x8VZ+{vmcjjaFr|UPp zaAGYkMpB4D?joA9=BbbPDxCrk^7F&kouTfy$s&T`4r9^L&j*0j5SGR>IO9&V_96^e z5Ki_m3unEK90;3)D`B@k0+4Le@fOkRe?x;4iEhK)@K{c?dg#_@o*S~i-7o0%jgjfR z#?V@6xMGCuJ@6ersO^@_yx+lk^h~5ZfP2DsT|3{Oe&)n^lAhCtF0(IollQG)xGN8` zayAfF7 z<%@bi2CkTvW#=MBl{Q0sq4^RviBx2o*%5WP~re<{}dEgJm zaL|)bVN?|Fy`?_znf2S5;b7cMl(u07iTc7MN=f}A);d++(}$+QF5b)~wMEcA={N${ z>F~ppLN2y}t0e?ZWF@Ldl;k&ceF_DciDqyNysFRo3q9V#2msE_`f^^+Y|8Vu1G5g{ zo%K%K^(=*oR5_a1Bd6%+p8-)d9(li#D=>a}9G$O4}yo+_*rFn{^ft6(?wcgu6(gARQTrg|* z;u>7_g*$>X44`w6{NpQxXj=pJb*U<4123t$00nsmNAWX%IhhbV@NQl7I4Vdf`7U{+ z|E-XAC#9`@$s~|1#By@{j&Om?=bklun~U&l5x3=+v@eIqXPCRYXH7y7yVHLatptzj#EkCM#F7} zPqKD_2z=MkSW_7{@nBkaCbG_wJ=Eh-%jpfBU-V~lPR0JZ_#5NL3q6D$*JT;{W&`!d zCuR#7m5I`_xS>oiCaR+sm^%pRaUD_2?R?L%hG>JyMh5o#%kg&a=T|gWml#&yN?+hCu=JhpJEhD!{(V9#!c9LDcYMOomZ(G|WSj#1i-ae9%==`1{_LW4DkzHv9tSyhAt*1m9RJ~+Mef8HY>NKf`dLjOEF@b@p zRQsQgvOgJH*_o}^iw7b$noP>Y>;^cnNA?IJx(s-j91Sj!YV4t?A|Ue$9{ph0aSH3Eu%U{Tn4b?KrVutTo~yo(~kGy!sTP|K)aY)Z)z7r>^$M%A^3i} z0w)OAd02=ks&E)m@3!#zZ~Xm%>ZJ+#&&&r9bBaO*H~}^@BO4tP3n3c=GaV!QfBQIW z|Kfh6#BD=jr|5oy!2h?ClXBtoZ9}%)v~@%#t$u354}ebznBu6uk@(w3Jup@5Yn903i;` zzYG6I_MgK4L-zlyjKsvs_`mv4EdPn{;b8jzx#b4G-Etdj=spOse{);1)EDaAW~?=YNj(|e`1b)-g^`2(^P6(=#@_IBjV_sbIu!V24ZUio+TSFt zkGHo)&Dg*>aG=PdIiw#kbz;aT@^>uzOrz==XypT=&H0j!r9Sh_{8!u$6* z2TrwIa_19RR(uLE(KHpmBwE%7hac0_td}_;YvH`R0xuqO<^B5FTZcruL+f%%riz^?STGgj;aAaja`Ic zUfxr-8{zM%5ft76K3;L!g`8m*ZBA

tEc^S(dizqjPT`MZ5pH>nmx6-udE#$f%x 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≺ptV6+0~Da-p#EZ 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

T9q72MAft!S_bg{1OAtE6C-+FWNw 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%0ATN-U_w@2CUwEe!Zwmh!zS{SiE1 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

Nl!-=I7pN5FIY<=E7 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

m=Jz>u6t}WsL;P`~ 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%0DQQ=o;5=i&+2^GqY&pnG~-TQDd^fbeLoo2 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 @@ -120,11 +120,15 @@ TypeScript is a trademark of Microsoft Corporation. * [4.15.7 The || operator](#4.15.7) * [4.16 The Conditional Operator](#4.16) * [4.17 Assignment Operators](#4.17) + * [4.17.1 Destructuring Assignment](#4.17.1) * [4.18 The Comma Operator](#4.18) * [4.19 Contextually Typed Expressions](#4.19) * [4.20 Type Guards](#4.20) * [5 Statements](#5) * [5.1 Variable Statements](#5.1) + * [5.1.1 Simple Variable Declarations](#5.1.1) + * [5.1.2 Destructuring Variable Declarations](#5.1.2) + * [5.1.3 Implied Type](#5.1.3) * [5.2 If, Do, and While Statements](#5.2) * [5.3 For Statements](#5.3) * [5.4 For-In Statements](#5.4) @@ -139,8 +143,9 @@ TypeScript is a trademark of Microsoft Corporation. * [6.1 Function Declarations](#6.1) * [6.2 Function Overloads](#6.2) * [6.3 Function Implementations](#6.3) - * [6.4 Generic Functions](#6.4) - * [6.5 Code Generation](#6.5) + * [6.4 Destructuring Parameter Declarations](#6.4) + * [6.5 Generic Functions](#6.5) + * [6.6 Code Generation](#6.6) * [7 Interfaces](#7) * [7.1 Interface Declarations](#7.1) * [7.2 Declaration Merging](#7.2) @@ -172,7 +177,8 @@ TypeScript is a trademark of Microsoft Corporation. * [9.1 Enum Declarations](#9.1) * [9.2 Enum Members](#9.2) * [9.3 Declaration Merging](#9.3) - * [9.4 Code Generation](#9.4) + * [9.4 Constant Enum Declarations](#9.4) + * [9.5 Code Generation](#9.5) * [10 Internal Modules](#10) * [10.1 Module Declarations](#10.1) * [10.2 Module Body](#10.2) @@ -812,7 +818,7 @@ Declarations introduce names in the ***declaration spaces*** to which they belon * Each class declaration has a declaration space for instance members, a declaration space for static members, and a declaration space for type parameters. * Each interface declaration has a declaration space for members and a declaration space for type parameters. An interface's declaration space is shared with other interfaces that have the same root module and the same qualified name starting from that root module. * Each enum declaration has a declaration space for its enum members. An enum's declaration space is shared with other enums that have the same root module and the same qualified name starting from that root module. -* Each function declaration (including constructor, member function, and member accessor declarations) and each function expression has a declaration space for variables (parameters, local variables, and local functions) and a declaration space for type parameters. +* Each function declaration (including constructor, member function, and member accessor declarations) and each function expression has a declaration space for locals (introduced by parameter, variable, and function declarations) and a declaration space for type parameters. * Each object literal has a declaration space for its properties. * Each object type literal has a declaration space for its members. @@ -868,7 +874,7 @@ The ***scope*** of a name is the region of program text within which it is possi * The scope of a type parameter declared in a class or interface declaration is that entire declaration, including constraints, extends clause, implements clause, and declaration body, but not including static member declarations. * The scope of a member declared in an enum declaration is the body of that declaration and every enum declaration with the same root and the same qualified name relative to that root. * The scope of a type parameter declared in a call or construct signature is that entire signature declaration, including constraints, parameter list, and return type. If the signature is part of a function implementation, the scope includes the function body. -* The scope of a parameter, local variable, or local function declared within a function declaration (including a constructor, member function, or member accessor declaration) or function expression is the body of that function declaration or function expression. +* The scope of a local entity (parameter, variable, or function) declared within a function declaration (including a constructor, member function, or member accessor declaration) or function expression is the body of that function declaration or function expression. Scopes may overlap, for example through nesting of modules and functions. When the scopes of two entities with the same name overlap, the entity with the innermost declaration takes precedence and access to the outer entity is either not possible or only possible by qualifying its name. @@ -1193,7 +1199,7 @@ x = test ? 5 : "five"; // Ok x = test ? 0 : false; // Error, number | boolean not asssignable ``` -it is possible to assign 'x' a value of type string, number, or the union type string | number, but not any other type. To access a value in 'x', a type guard can be used to first narrow the type of 'x' to either string or number: +it is possible to assign 'x' a value of type `string`, `number`, or the union type `string | number`, but not any other type. To access a value in 'x', a type guard can be used to first narrow the type of 'x' to either `string` or `number`: ```TypeScript var n = typeof x === "string" ? x.length : x; // Type of n is number @@ -1376,7 +1382,7 @@ Parentheses are required around union, function, or constructor types when they ```TypeScript (string | number)[] -((x: string) => string) | (x: number) => number) +((x: string) => string) | ((x: number) => number) ``` The different forms of type notations are described in the following sections. @@ -1598,7 +1604,7 @@ var a = { x: 10, y: 20 }; var b: typeof a; ``` -Above, 'b' is given the same type as 'a', namely '{ x: number; y: number; }'. +Above, 'b' is given the same type as 'a', namely `{ x: number; y: number; }`. If a declaration includes a type annotation that references the entity being declared through a circular path of type queries or type references containing type queries, the resulting type is the Any type. For example, all of the following variables are given the type Any: @@ -1705,7 +1711,7 @@ A signature's parameter list consists of zero or more required parameters, follo    *RequiredParameterList* `,` *RequiredParameter*   *RequiredParameter:* -   *AccessibilityModifieropt* *Identifier* *TypeAnnotationopt* +   *AccessibilityModifieropt* *IdentifierOrPattern* *TypeAnnotationopt*    *Identifier* `:` *StringLiteral*   *AccessibilityModifier:* @@ -1713,29 +1719,39 @@ A signature's parameter list consists of zero or more required parameters, follo    `private`    `protected` +  *IdentifierOrPattern:* +   *Identifier* +   *BindingPattern* +   *OptionalParameterList:*    *OptionalParameter*    *OptionalParameterList* `,` *OptionalParameter*   *OptionalParameter:* -   *AccessibilityModifieropt* *Identifier* `?` *TypeAnnotationopt* -   *AccessibilityModifieropt* *Identifier* *TypeAnnotationopt* *Initialiser* +   *AccessibilityModifieropt* *IdentifierOrPattern* `?` *TypeAnnotationopt* +   *AccessibilityModifieropt* *IdentifierOrPattern* *TypeAnnotationopt* *Initialiser*    *Identifier* `?` `:` *StringLiteral*   *RestParameter:*    `...` *Identifier* *TypeAnnotationopt* -Parameter names must be unique. A compile-time error occurs if two or more parameters have the same name. +A parameter declaration may specify either an identifier or a binding pattern ([5.1.2](#5.1.2)). The identifiers specified in parameter declarations and binding patterns in a parameter list must be unique within that parameter list. -A parameter is permitted to include a `public`, `private`, or `protected` modifier only if it occurs in the parameter list of a *ConstructorImplementation* (section [8.3.1](#8.3.1)). +The type of a parameter in a signature is determined as follows: -A parameter with a type annotation is considered to be of that type. A type annotation for a rest parameter must denote an array type. +* If the declaration includes a type annotation, the parameter is of that type. +* Otherwise, if the declaration includes an initializer expression (which is permitted only when the parameter list occurs in conjunction with a function body), the parameter type is the widened form (section [3.11](#3.11)) of the type of the initializer expression. +* Otherwise, if the declaration specifies a binding pattern, the parameter type is the implied type of that binding pattern (section [5.1.3](#5.1.3)). +* Otherwise, if the parameter is a rest parameter, the parameter type is `any[]`. +* Otherwise, the parameter type is `any`. -A parameter with no type annotation or initializer is considered to be of type `any`, unless it is a rest parameter, in which case it is considered to be of type `any[]`. +A parameter is permitted to include a `public`, `private`, or `protected` modifier only if it occurs in the parameter list of a *ConstructorImplementation* (section [8.3.1](#8.3.1)) and only if it doesn't specify a *BindingPattern*. -When a parameter type annotation specifies a string literal type, the containing signature is a specialized signature (section [3.8.2.4](#3.8.2.4)). Specialized signatures are not permitted in conjunction with a function body, i.e. the *FunctionExpression*, *FunctionImplementation*, *MemberFunctionImplementation*, and *ConstructorImplementation* grammar productions do not permit parameters with string literal types. +A type annotation for a rest parameter must denote an array type. -A parameter can be marked optional by following its name with a question mark (`?`) or by including an initializer. The form that includes an initializer is permitted only in conjunction with a function body, i.e. only in a *FunctionExpression*, *FunctionImplementation*, *MemberFunctionImplementation*, or *ConstructorImplementation* grammar production. +When a parameter type annotation specifies a string literal type, the containing signature is a specialized signature (section [3.8.2.4](#3.8.2.4)). Specialized signatures are not permitted in conjunction with a function body, i.e. the *FunctionExpression*, *FunctionImplementation*, *MemberFunctionImplementation*, and *ConstructorImplementation* grammar productions do not permit parameters with string literal types. + +A parameter can be marked optional by following its name or binding pattern with a question mark (`?`) or by including an initializer. Initializers (including binding property or element initializers) are permitted only when the parameter list occurs in conjunction with a function body, i.e. only in a *FunctionExpression*, *FunctionImplementation*, *MemberFunctionImplementation*, or *ConstructorImplementation* grammar production. #### 3.8.2.3 Return Type @@ -1917,7 +1933,6 @@ However, doing so means the following capabilities are lost: * An interface can be named in an extends or implements clause, but a type alias for an object type literal cannot. * An interface can have multiple merged declarations, but a type alias for an object type literal cannot. * An interface can have type parameters, but a type alias for an object type literal cannot. -* An interface is referenced by its name in error messages and tooling, but a type alias is always expanded to its structural representation. ## 3.10 Type Relationships @@ -2263,7 +2278,7 @@ If a get accessor is declared for a property, the return type of the get accesso When an object literal is contextually typed by a type that includes a string index signature, the resulting type of the object literal includes a string index signature with the union type of the types of the properties declared in the object literal, or the Undefined type if the object literal is empty. Likewise, when an object literal is contextually typed by a type that includes a numeric index signature, the resulting type of the object literal includes a numeric index signature with the union type of the types of the numerically named properties (section [3.8.4](#3.8.4)) declared in the object literal, or the Undefined type if the object literal declares no numerically named properties. -## 4.6 Array Literals +## 4.6 Array Literals An array literal @@ -2364,7 +2379,7 @@ The descriptions of function declarations provided in section [6.1](#6.1) apply Standard function expressions are function expressions written with the `function` keyword. The type of `this` in a standard function expression is the Any type. -Standard function expressions are transformed to JavaScript in the same manner as function declarations (see section [6.5](#6.5)). +Standard function expressions are transformed to JavaScript in the same manner as function declarations (see section [6.6](#6.6)). ### 4.9.2 Arrow Function Expressions @@ -2452,11 +2467,23 @@ could be parsed as an arrow function expression with a type parameter or a type ### 4.9.3 Contextually Typed Function Expressions -Function expressions with no type parameters and no parameter type annotations (but possibly with optional parameters and default parameter values) are contextually typed in certain circumstances, as described in section [4.19](#4.19). +When a function expression with no type parameters and no parameter type annotations is contextually typed (section [4.19](#4.19)) by a type *T* and a contextual signature *S* can be extracted from *T*, the function expression is processed as if it had explicitly specified parameter type annotations as they exist in *S*. Parameters are matched by position and need not have matching names. If the function expression has fewer parameters than *S*, the additional parameters in *S* are ignored. If the function expression has more parameters than *S*, the additional parameters are all considered to have type Any. -When a function expression is contextually typed by a function type *T*, the function expression is processed as if it had explicitly specified parameter type annotations as they exist in *T*. Parameters are matched by position and need not have matching names. If the function expression has fewer parameters than *T*, the additional parameters in *T* are ignored. If the function expression has more parameters than *T*, the additional parameters are all considered to have type Any. +Likewise, when a function expression with no return type annotation is contextually typed (section [4.19](#4.19)) by a function type *T* and a contextual signature *S* can be extracted from *T*, expressions in contained return statements (section [5.7](#5.7)) are contextually typed by the return type of *S*. -Furthermore, when a function expression has no return type annotation and is contextually typed by a function type *T*, expressions in contained return statements (section [5.7](#5.7)) are contextually typed by *T*'s return type. +A contextual signature *S* is extracted from a function type *T* as follows: + +* If *T* is a function type with exactly one call signature, and if that call signature is non-generic, *S* is that signature. +* If *T* is a union type, let *U* be the set of element types in *T* that have call signatures. If each type in *U* has exactly one call signature and that call signature is non-generic, and if all of the signatures are identical ignoring return types, then *S* is a signature with the same parameters and a union of the return types. +* Otherwise, no contextual signature can be extracted from *T* and *S* is undefined. + +In the example + +```TypeScript +var f: (s: string) => string = s => s.toLowerCase(); +``` + +the function expression is contextually typed by the type of 'f', and since the function expression has no type parameters or type annotations its parameter type information is extracted from the contextual type, thus inferring the type of 's' to be the String primitive type. ## 4.10 Property Access @@ -2687,7 +2714,7 @@ TypeScript extends the JavaScript expression grammar with the ability to assert A type assertion expression consists of a type enclosed in `<` and `>` followed by a unary expression. Type assertion expressions are purely a compile-time construct. Type assertions are *not* checked at run-time and have no impact on the emitted JavaScript (and therefore no run-time cost). The type and the enclosing `<` and `>` are simply removed from the generated code. -In a type assertion expression of the form `<` *T* `>` *e*, *e* is contextually typed (section [4.19](#4.19)) by *T* and the resulting type of* e* is required to be assignable to *T*, or *T* is required to be assignable to the widened form of the resulting type of *e*, or otherwise a compile-time error occurs. The type of the result is *T*. +In a type assertion expression of the form < *T* > *e*, *e* is contextually typed (section [4.19](#4.19)) by *T* and the resulting type of* e* is required to be assignable to *T*, or *T* is required to be assignable to the widened form of the resulting type of *e*, or otherwise a compile-time error occurs. The type of the result is *T*. Type assertions check for assignment compatibility in both directions. Thus, type assertions allow type conversions that *might* be correct, but aren't *known* to be correct. In the example @@ -2882,7 +2909,7 @@ An assignment of the form v = expr ``` -requires *v* to be classified as a reference (section [4.1](#4.1)). The *expr* expression is contextually typed (section [4.19](#4.19)) by the type of *v*, and the type of *expr* must be assignable to (section [3.10.4](#3.10.4)) the type of *v*, or otherwise a compile-time error occurs. The result is a value with the type of *expr*. +requires *v* to be classified as a reference (section [4.1](#4.1)) or as an assignment pattern (section [4.17.1](#4.17.1)). The *expr* expression is contextually typed (section [4.19](#4.19)) by the type of *v*, and the type of *expr* must be assignable to (section [3.10.4](#3.10.4)) the type of *v*, or otherwise a compile-time error occurs. The result is a value with the type of *expr*. A compound assignment of the form @@ -2896,7 +2923,78 @@ where ??= is one of the compound assignment operators *= /= %= += -= <<= >>= >>>= &= ^= |= ``` -is subject to the same requirements, and produces a value of the same type, as the corresponding non-compound operation. A compound assignment furthermore requires *v* to be classified as a reference (section [4.1](#4.1)) and the type of the non-compound operation to be assignable to the type of *v*. +is subject to the same requirements, and produces a value of the same type, as the corresponding non-compound operation. A compound assignment furthermore requires *v* to be classified as a reference (section [4.1](#4.1)) and the type of the non-compound operation to be assignable to the type of *v*. Note that *v* is not permitted to be an assignment pattern in a compound assignment. + +### 4.17.1 Destructuring Assignment + +A ***destructuring assignment*** is an assignment operation in which the left hand operand is a destructuring assignment pattern. + +  *AssignmentPattern:* +   *ObjectAssignmentPattern* +   *ArrayAssignmentPattern* + +  *ObjectBindingPattern:* +   `{` `}` +   `{` *AssignmentPropertyList* `,`*opt* `}` + +  *AssignmentPropertyList:* +   *AssignmentProperty* +   *AssignmentPropertyList* `,` *AssignmentProperty* + +  *AssignmentProperty:* +   *Identifier* *Initialiseropt* +   *PropertyName* `:` *LeftHandSideExpression* *Initialiseropt* +   *PropertyName* `:` *AssignmentPattern* *Initialiseropt* + +  *ArrayAssignmentPattern:* +   `[` *Elisionopt* *AssignmentRestElementopt* `]` +   `[` *AssignmentElementList* `]` +   `[` *AssignmentElementList* `,` *Elisionopt* *AssignmentRestElementopt* `]` + +  *AssignmentElementList:* +   *Elisionopt* *AssignmentElement* +   *AssignmentElementList* `,` *Elisionopt* *AssignmentElement* + +  *AssignmentElement:* +   *LeftHandSideExpression* *Initialiseropt* +   *AssignmentPattern* *Initialiseropt* + +  *AssignmentRestElement:* +   `...` *LeftHandSideExpression* + +In a destructuring assignment expression, the type of the expression on the right must be assignable to the assignment target on the left. An expression of type *S* is considered assignable to an assignment target *V* if one of the following is true: + +* *V* is variable and *S* is assignable to the type of *V*. +* *V* is an object assignment pattern and, for each assignment property *P* in *V*, + * *S* is the type Any, or + * *S* has an apparent property with the property name specified in *P* of a type that is assignable to the target given in *P*, or + * *P* specifies a numeric property name and *S* has a numeric index signature of a type that is assignable to the target given in *P*, or + * *S* has a string index signature of a type that is assignable to the target given in *P*. +* *V* is an array assignment pattern, *S* is the type Any, an array type, or a tuple type, and, for each assignment element *E* in *V*, + * *S* is the type Any, or + * *S* is a tuple type with a property named *N* of a type that is assignable to the target given in *E*, where *N* is the numeric index of *E* in the array assignment pattern, or + * the numeric index signature type of *S* is assignable to the target given in *E*. + +In an assignment property or element that includes a default value, the type of the default value must be assignable to the target given in the assignment property or element. + +When the output target is ECMAScript 6 or higher, destructuring variable assignments remain unchanged in the emitted JavaScript code. + +When the output target is ECMAScript 3 or 5, destructuring variable assignments are rewritten to series of simple assignments. For example, the destructuring assignment + +```TypeScript +var x = 1; +var y = 2; +[x, y] = [y, x]; +``` + +is rewritten to the simple variable assignments + +```TypeScript +var x = 1; +var y = 2; +_a = [y, x], x = _a[0], y = _a[1]; +var _a; +``` ## 4.18 The Comma Operator @@ -2904,53 +3002,29 @@ The comma operator permits the operands to be of any type and produces a result ## 4.19 Contextually Typed Expressions -In certain situations, parameter and return types of function expressions are automatically inferred from the contexts in which the function expressions occur. For example, given the declaration +Type checking of an expression is improved in several contexts by factoring in the type of the destination of the value computed by the expression. In such situations, the expression is said to be ***contextually typed*** by the type of the destination. An expression is contextually typed in the following circumstances: -```TypeScript -var f: (s: string) => string; -``` - -the assignment - -```TypeScript -f = function(s) { return s.toLowerCase(); } -``` - -infers the type of the 's' parameter to be the String primitive type even though there is no type annotation to that effect. The function expression is said to be ***contextually typed*** by the variable to which it is being assigned. Contextual typing occurs in the following situations: - -* In variable, parameter, and member declarations with a type annotation and an initializer, the initializer expression is contextually typed by the type of the variable, parameter, or property. -* In return statements, if the containing function includes a return type annotation, return expressions are contextually typed by that return type. Otherwise, if the containing function is contextually typed by a type *T*, return expressions are contextually typed by *T*'s return type. -* In typed function calls, argument expressions are contextually typed by their parameter types. -* In type assertions, the expression is contextually typed by the indicated type. -* In || operator expressions without a contextual type, the right hand expression is contextually typed by the type of the left hand expression. -* In assignment expressions, the right hand expression is contextually typed by the type of the left hand expression. -* In contextually typed object literals, property assignments are contextually typed by their property types. -* In contextually typed array literals, element expressions are contextually typed by the array element type. -* In contextually typed || operator expressions, the operands are contextually typed as well. -* In contextually typed conditional operator expressions, the operands are contextually typed as well. - -Contextual typing of an expression *e* by a type *T* proceeds as follows: - -* If *e* is an *ObjectLiteral* and *T* is an object type, *e* is processed with the contextual type *T*, as described in section [4.5](#4.5). -* If *e* is an *ArrayLiteral* and *T* is an object type with a numeric index signature, *e* is processed with the contextual type *T*, as described in section [4.6](#4.6). -* If *e* is a *FunctionExpression* or *ArrowFunctionExpression* with no type parameters and no parameter type annotations, *T* is a function type with exactly one call signature and *T*'s call signature is non-generic, then any inferences made for type parameters referenced by the parameters of *T*'s call signature are fixed (section [4.12.2](#4.12.2)) and *e* is processed with the contextual type *T*, as described in section [4.9.3](#4.9.3). -* If *e* is a || operator expression and *T* is an object type, *e* is processed with the contextual type *T*, as described in section [4.15.7](#4.15.7). -* If *e* is a conditional operator expression and *T* is an object type, *e* is processed with the contextual type *T*, as described in section [4.16](#4.16). -* Otherwise, *e* is processed without a contextual type. - -The rules above require expressions be of the exact syntactic forms specified in order to be processed as contextually typed constructs. For example, given the declaration of the variable 'f' above, the assignment - -```TypeScript -f = s => s.toLowerCase(); -``` - -causes the function expression to be contextually typed, inferring the String primitive type for 's'. However, simply enclosing the construct in parentheses - -```TypeScript -f = (s => s.toLowerCase()); -``` - -causes the function expression to be processed without a contextual type, now inferring 's' and the result of the function to be of type Any as no type annotations are present. +* In a variable, parameter, binding property, binding element, or member declaration, an initializer expression is contextually typed by + * the type given in the declaration's type annotation, if any, or otherwise + * for a parameter, the contextual type for the declaration (section [4.9.3](#4.9.3)), if any, or otherwise + * the type implied by the binding pattern in the declaration (section [5.1.3](#5.1.3)), if any. +* In the body of a function declaration, function expression, arrow function, method declaration, or get accessor declaration that has a return type annotation, return expressions are contextually typed by the type given in the return type annotation. +* In the body of a function expression or arrow function that has no return type annotation, if the function expression or arrow function is contextually typed by a function type with exactly one call signature, and if that call signature is non-generic, return expressions are contextually typed by the return type of that call signature. +* In the body of a constructor declaration, return expressions are contextually typed by the containing class type. +* In the body of a get accessor with no return type annotation, if a matching set accessor exists and that set accessor has a parameter type annotation, return expressions are contextually typed by the type given in the set accessor's parameter type annotation. +* In a typed function call, argument expressions are contextually typed by their corresponding parameter types. +* In a contextually typed object literal, each property value expression is contextually typed by + * the type of the property with a matching name in the contextual type, if any, or otherwise + * for a numerically named property, the numeric index type of the contextual type, if any, or otherwise + * the string index type of the contextual type, if any. +* In a contextually typed array literal expression, an element expression at index *N* is contextually typed by + * the type of the property with the numeric name *N* in the contextual type, if any, or otherwise + * the numeric index type of the contextual type, if any. +* In a contextually typed parenthesized expression, the contained expression is contextually typed by the same type. +* In a type assertion, the expression is contextually typed by the indicated type. +* In a || operator expression, if the expression is contextually typed, the operands are contextually typed by the same type. Otherwise, the right expression is contextually typed by the type of the left expression. +* In a contextually typed conditional operator expression, the operands are contextually typed by the same type. +* In an assignment expression, the right hand expression is contextually typed by the type of the left hand expression. In the following example @@ -2993,23 +3067,23 @@ function foo(x: number | string) { The type of a variable or parameter is narrowed in the following situations: -* In the true branch statement of an 'if' statement, the type of a variable or parameter is *narrowed* by any type guard in the 'if' condition *when true*, provided the true branch statement contains no assignments to the variable or parameter. -* In the false branch statement of an 'if' statement, the type of a variable or parameter is *narrowed* by any type guard in the 'if' condition *when false*, provided the false branch statement contains no assignments to the variable or parameter. -* In the true expression of a conditional expression, the type of a variable or parameter is *narrowed* by any type guard in the condition *when true*, provided the true expression contains no assignments to the variable or parameter. -* In the false expression of a conditional expression, the type of a variable or parameter is *narrowed* by any type guard in the condition *when false*, provided the false expression contains no assignments to the variable or parameter. -* In the right operand of a && operation, the type of a variable or parameter is *narrowed* by any type guard in the left operand *when true*, provided the right operand contains no assignments to the variable or parameter. -* In the right operand of a || operation, the type of a variable or parameter is *narrowed* by any type guard in the left operand *when false*, provided the right operand contains no assignments to the variable or parameter. +* In the true branch statement of an 'if' statement, the type of a variable or parameter is *narrowed* by a type guard in the 'if' condition *when true*, provided the true branch statement contains no assignments to the variable or parameter. +* In the false branch statement of an 'if' statement, the type of a variable or parameter is *narrowed* by a type guard in the 'if' condition *when false*, provided the false branch statement contains no assignments to the variable or parameter. +* In the true expression of a conditional expression, the type of a variable or parameter is *narrowed* by a type guard in the condition *when true*, provided the true expression contains no assignments to the variable or parameter. +* In the false expression of a conditional expression, the type of a variable or parameter is *narrowed* by a type guard in the condition *when false*, provided the false expression contains no assignments to the variable or parameter. +* In the right operand of a && operation, the type of a variable or parameter is *narrowed* by a type guard in the left operand *when true*, provided the right operand contains no assignments to the variable or parameter. +* In the right operand of a || operation, the type of a variable or parameter is *narrowed* by a type guard in the left operand *when false*, provided the right operand contains no assignments to the variable or parameter. A type guard is simply an expression that follows a particular pattern. The process of narrowing the type of a variable *x* by a type guard *when true* or *when false* depends on the type guard as follows: -* A type guard of the form `x instanceof C`, where *C* is of a subtype of the global type 'Function' and *C* has a property named 'prototype' - * *when true*, narrows the type of *x* to the type of the 'prototype' property in *C* provided it is a subtype of the type of *x*, or +* A type guard of the form `x instanceof C`, where *x* is not of type Any, *C* is of a subtype of the global type 'Function', and *C* has a property named 'prototype' + * *when true*, narrows the type of *x* to the type of the 'prototype' property in *C* provided it is a subtype of the type of *x*, or, if the type of *x* is a union type, removes from the type of *x* all constituent types that aren't subtypes of the type of the 'prototype' property in *C*, or * *when false*, has no effect on the type of *x*. * A type guard of the form `typeof x === s`, where *s* is a string literal with the value 'string', 'number', or 'boolean', - * *when true*, narrows the type of *x* to the given primitive type, or + * *when true*, narrows the type of *x* to the given primitive type provided it is a subtype of the type of *x*, or, if the type of *x* is a union type, removes from the type of *x* all constituent types that aren't subtypes of the given primitive type, or * *when false*, removes the primitive type from the type of *x*. * A type guard of the form `typeof x === s`, where *s* is a string literal with any value but 'string', 'number', or 'boolean', - * *when true*, removes the primitive types string, number, and boolean from the type of *x*, or + * *when true*, if *x* is a union type, removes from the type of *x* all constituent types that are subtypes of the string, number, or boolean primitive type, or * *when false*, has no effect on the type of *x*. * A type guard of the form `typeof x !== s`, where *s* is a string literal, * *when true*, narrows the type of x by `typeof x === s` *when false*, or @@ -3025,10 +3099,7 @@ A type guard is simply an expression that follows a particular pattern. The proc * *when false*, narrows the type of *x* by *expr1* *when false* and then by *expr2* *when false*. * A type guard of any other form has no effect on the type of *x*. -A primitive type *P* is removed from a type *T* as follows: - -* If *T* is a union type *P* | *T1* | *T2* | … | *Tn*, the result is the type *T1* | *T2* | … | *Tn*. -* Otherwise, the result is *T*. +In the rules above, when a narrowing operation would remove all constituent types from a union type, the operation has no effect on the union type. Note that type guards affect types of variables and parameters only and have no effect on members of objects such as properties. Also note that it is possible to defeat a type guard by calling a function that changes the type of the guarded variable. @@ -3040,7 +3111,18 @@ function isLongString(obj: any) { } ``` -the 'obj' parameter has type string in the right operand of the && operator. +the `obj` parameter has type `string` in the right operand of the && operator. + +In the example + +```TypeScript +function processValue(value: number | (() => number)) { + var x = typeof value !== "number" ? value() : value; + // Process number in x +} +``` + +the value parameter has type `() => number` in the first conditional expression and type `number` in the second conditional expression, and the inferred type of x is `number`. In the example @@ -3055,18 +3137,21 @@ function f(x: string | number | boolean) { } ``` -the type of 'x' is string | number | boolean in left operand of the || operator, number | boolean in the right operand of the || operator, string | number in the first branch of the 'if' statement, and boolean in the second branch of the 'if' statement. +the type of x is `string | number | boolean` in the left operand of the || operator, `number | boolean` in the right operand of the || operator, `string | number` in the first branch of the if statement, and `boolean` in the second branch of the if statement. In the example ```TypeScript -function processData(data: string | { (): string }) { - var d = typeof data !== "string" ? data() : data; - // Process string in d +class C { + data: string | string[]; + getData() { + var data = this.data; + return typeof data === "string" ? data : data.join(" "); + } } ``` -the inferred type of 'd' is string. +the type of the `data` variable is `string` in the first conditional expression and `string[]` in the second conditional expression, and the inferred type of `getData` is `string`. Note that the `data` property must be copied to a local variable for the type guard to have an effect. In the example @@ -3075,12 +3160,12 @@ class NamedItem { name: string; } -function getName(obj: any) { +function getName(obj: Object) { return obj instanceof NamedItem ? obj.name : "unknown"; } ``` -the inferred type of the 'getName' function is string. +the type of `obj` is narrowed to `NamedItem` in the first condtional expression, and the inferred type of the `getName` function is `string`.
@@ -3090,26 +3175,37 @@ This chapter describes the static type checking TypeScript provides for JavaScri ##
5.1 Variable Statements -Variable statements are extended to include optional type annotations. +Variable statements are extended to include optional type annotations and ECMAScript 6 destructuring declarations.   *VariableDeclaration:* *( Modified )* -   *Identifier* *TypeAnnotationopt* *Initialiseropt* +   *SimpleVariableDeclaration* +   *DestructuringVariableDeclaration* -  *VariableDeclarationNoIn:* *( Modified )* -   *Identifier* *TypeAnnotationopt* *InitialiserNoInopt* +A variable declaration is either a simple variable declaration or a destructuring variable declaration. + +### 5.1.1 Simple Variable Declarations + +A ***simple variable declaration*** introduces a single named variable and optionally assigns it an initial value. + +  *SimpleVariableDeclaration:* +   *Identifier* *TypeAnnotationopt* *Initialiseropt*   *TypeAnnotation:*    `:` *Type* -A variable declaration introduces a variable with the given name in the containing declaration space. The type associated with a variable is determined as follows: +The type *T* of a variable introduced by a simple variable declaration is determined as follows: -* If the declaration includes a type annotation, the stated type becomes the type of the variable. If an initializer is present, the initializer expression is contextually typed (section [4.19](#4.19)) by the stated type and must be assignable to the stated type, or otherwise a compile-time error occurs. -* If the declaration includes an initializer but no type annotation, and if the initializer doesn't directly or indirectly reference the variable, the widened type (section [3.11](#3.11)) of the initializer expression becomes the type of the variable. If the initializer directly or indirectly references the variable, the type of the variable becomes the Any type. -* If the declaration includes neither a type annotation nor an initializer, the type of the variable becomes the Any type. +* If the declaration includes a type annotation, *T* is that type. +* Otherwise, if the declaration includes an initializer expression, *T* is the widened form (section [3.11](#3.11)) of the type of the initializer expression. +* Otherwise, *T* is the Any type. + +When a variable declaration specifies both a type annotation and an initializer expression, the type of the initializer expression is required to be assignable to (section [3.10.4](#3.10.4)) the type given in the type annotation. 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. -Below are some examples of variable declarations and their associated types. +When a variable declaration has a type annotation, it is an error for that type annotation to use the `typeof` operator to reference the variable being declared. + +Below are some examples of simple variable declarations and their associated types. ```TypeScript var a; // any @@ -3141,6 +3237,167 @@ var d: { x: number; y: number; } = { x: 0, y: undefined }; var e = <{ x: number; y: number; }> { x: 0, y: undefined }; ``` +### 5.1.2 Destructuring Variable Declarations + +A ***destructuring variable declaration*** introduces zero or more named variables and initializes them with values extracted from properties of an object or elements of an array. + +  *DestructuringVariableDeclaration:* +   *BindingPattern* *TypeAnnotationopt* *Initialiser* + +  *BindingPattern:* +   *ObjectBindingPattern* +   *ArrayBindingPattern* + +  *ObjectBindingPattern:* +   `{` `}` +   `{` *BindingPropertyList* `,`*opt* `}` + +  *BindingPropertyList:* +   *BindingProperty* +   *BindingPropertyList* `,` *BindingProperty* + +  *BindingProperty:* +   *Identifier* *Initialiseropt* +   *PropertyName* `:` *Identifier* *Initialiseropt* +   *PropertyName* `:` *BindingPattern* *Initialiseropt* + +  *ArrayBindingPattern:* +   `[` *Elisionopt* *BindingRestElementopt* `]` +   `[` *BindingElementList* `]` +   `[` *BindingElementList* `,` *Elisionopt* *BindingRestElementopt* `]` + +  *BindingElementList:* +   *Elisionopt* *BindingElement* +   *BindingElementList* `,` *Elisionopt* *BindingElement* + +  *BindingElement:* +   *Identifier* *Initialiseropt* +   *BindingPattern* *Initialiseropt* + +  *BindingRestElement:* +   `...` *Identifier* + +Each binding property or element that specifies an identifier introduces a variable by that name. The type of the variable is the widened form (section [3.11](#3.11)) of the type associated with the binding property or element, as defined in the following. + +The type *T* associated with a destructuring variable declaration is determined as follows: + +* If the declaration includes a type annotation, *T* is that type. +* Otherwise, if the declaration includes an initializer expression, *T* is the type of that initializer expression. +* Otherwise, *T* is the Any type. + +The type *T* associated with a binding property is determined as follows: + +* Let *S* be the type associated with the immediately containing destructuring variable declaration, binding property, or binding element. +* If *S* is the Any type: + * If the binding property specifies an initializer expression, *T* is the type of that initializer expression. + * Otherwise, *T* is the Any type. +* Let *P* be the property name specified in the binding property. +* If *S* has an apparent property with the name *P*, *T* is the type of that property. +* Otherwise, if *S* has a numeric index signature and *P* is a numerical name, *T* is the type of the numeric index signature. +* Otherwise, if *S* has a string index signature, *T* is the type of the string index signature. +* Otherwise, no type is associated with the binding property and an error occurs. + +The type *T* associated with a binding element is determined as follows: + +* Let *S* be the type associated with the immediately containing destructuring variable declaration, binding property, or binding element. +* If *S* is the Any type: + * If the binding element specifies an initializer expression, *T* is the type of that initializer expression. + * Otherwise, *T* is the Any type. +* If S is not an array type (i.e. assignable to the type `any[]`), no type is associated with the binding property and an error occurs. +* If the binding element is a rest element, *T* is an array type with an element type *E*, where *E* is the type of the numeric index signature of *S*. +* Otherwise, if *S* is a tuple type: + * Let *N* be the zero-based index of the binding element in the array binding pattern. + * If *S* has a property with the numerical name *N*, *T* is the type of that property. + * Otherwise, no type is associated with the binding element and an error occurs. +* Otherwise, if *S* has a numeric index signature, *T* is the type of the numeric index signature. +* Otherwise, no type is associated with the binding element and an error occurs. + +When a destructuring variable declaration, binding property, or binding element specifies an initializer expression, the type of the initializer expression is required to be assignable to the widened form of the type associated with the destructuring variable declaration, binding property, or binding element. + +When the output target is ECMAScript 6 or higher, except for removing the optional type annotation, destructuring variable declarations remain unchanged in the emitted JavaScript code. + +When the output target is ECMAScript 3 or 5, destructuring variable declarations are rewritten to simple variable declarations. For example, an object destructuring declaration of the form + +```TypeScript +var { x, p: y, q: z = false } = getSomeObject(); +``` + +is rewritten to the simple variable declarations + +```TypeScript +var _a = getSomeObject(), + x = _a.x, + y = _a.p, + _b = _a.q, + z = _b === void 0 ? false : _b; +``` + +The '_a' and '_b' temporary variables exist to ensure the assigned expression is evaluated only once, and the expression 'void 0' simply denotes the JavaScript value 'undefined'. + +Similarly, an array destructuring declaration of the form + +```TypeScript +var [x, y, z = 10] = getSomeArray(); +``` + +is rewritten to the simple variable declarations + +```TypeScript +var _a = getSomeArray(), + x = _a[0], + y = _a[1], + _b = _a[2], + z = _b === void 0 ? 10 : _b; +``` + +Combining both forms of destructuring, the example + +```TypeScript +var { x, p: [y, z = 10] = getSomeArray() } = getSomeObject(); +``` + +is rewritten to + +```TypeScript +var _a = getSomeObject(), + x = _a.x, + _b = _a.p, + _c = _b === void 0 ? getSomeArray() : _b, + y = _c[0], + _d = _c[1], + z = _d === void 0 ? 10 : _d; +``` + +### 5.1.3 Implied Type + +A variable, parameter, binding property, or binding element declaration that specifies a binding pattern has an ***implied type*** which is determined as follows: + +* If the declaration specifies an object binding pattern, the implied type is an object type with a set of properties corresponding to the specified binding property declarations. The type of each property is the type implied by its binding property declaration, and a property is optional when its binding property declaration specifies an initializer expression. +* If the declaration specifies an array binding pattern without a rest element, the implied type is a tuple type with elements corresponding to the specified binding element declarations. The type of each element is the type implied by its binding element declaration. +* If the declaration specifies an array binding pattern with a rest element, the implied type is an array type with an element type of Any. + +The implied type of a binding property or binding element declaration is + +* the type of the declaration's initializer expression, if any, or otherwise +* the implied type of the binding pattern specified in the declaration, if any, or otherwise +* the type Any. + +In the example + +```TypeScript +function f({ a, b = "hello", c = 1 }) { ... } +``` + +the implied type of the binding pattern in the function's parameter is '{ a: any; b?: string; c?: number; }'. Since the parameter has no type annotation, this becomes the type of the parameter. + +In the example + +```TypeScript +var [a, b, c] = [1, "hello", true]; +``` + +the array literal initializer expression is contextually typed by the implied type of the binding pattern, specifically the tuple type '[any, any, any]'. Because the contextual type is a tuple type, the resulting type of the array literal is the tuple type '[number, string, boolean]', and the destructuring declaration thus gives the types number, string, and boolean to a, b, and c respectively. + ## 5.2 If, Do, and While Statements Expressions controlling 'if', 'do', and 'while' statements can be of any type (and not just type Boolean). @@ -3304,7 +3561,7 @@ In the signature of a function implementation, a parameter can be marked optiona Initializer expressions are evaluated in the scope of the function body but are not permitted to reference local variables and are only permitted to access parameters that are declared to the left of the parameter they initialize, unless the parameter reference occurs in a nested function expression. -For each parameter with an initializer, a statement that substitutes the default value for an omitted argument is included in the generated JavaScript, as described in section [6.5](#6.5). The example +For each parameter with an initializer, a statement that substitutes the default value for an omitted argument is included in the generated JavaScript, as described in section [6.6](#6.6). The example ```TypeScript function strange(x: number, y = x * 2, z = x + y) { @@ -3333,7 +3590,65 @@ function f(a = x) { the local variable 'x' is in scope in the parameter initializer (thus hiding the outer 'x'), but it is an error to reference it because it will always be uninitialized at the time the parameter initializer is evaluated. -## 6.4 Generic Functions +## 6.4 Destructuring Parameter Declarations + +Parameter declarations can specify binding patterns (section [3.8.2.2](#3.8.2.2)) and are then called ***destructuring parameter declarations***. Similar to a destructuring variable declaration (section [5.1.2](#5.1.2)), a destructuring parameter declaration introduces zero or more named locals and initializes them with values extracted from properties or elements of the object or array passed as an argument for the parameter. + +The type of local introduced in a destructuring parameter declaration is determined in the same manner as a local introduced by a destructuring variable declaration, except the type *T* associated with a destructuring parameter declaration is determined as follows: + +* If the declaration includes a type annotation, *T* is that type. +* Otherwise, if the declaration includes an initializer expression, *T* is the widened form (section [3.11](#3.11)) of the type of the initializer expression. +* Otherwise, if the declaration specifies a binding pattern, *T* is the implied type of that binding pattern (section [5.1.3](#5.1.3)). +* Otherwise, if the parameter is a rest parameter, *T* is `any[]`. +* Otherwise, *T* is `any`. + +When the output target is ECMAScript 6 or higher, except for removing the optional type annotation, destructuring parameter declarations remain unchanged in the emitted JavaScript code. When the output target is ECMAScript 3 or 5, destructuring parameter declarations are rewritten to local variable declarations. + +The example + +```TypeScript +function drawText({ text = "", location: [x, y] = [0, 0], bold = false }) { + // Draw text +} +``` + +declares a function `drawText` that takes a single parameter of the type + +```TypeScript +{ text?: string; location?: [number, number]; bold?: boolean; } +``` + +When the output target is ECMAScript 3 or 5, the function is rewritten to + +```TypeScript +function drawText(_a) { + var _b = _a.text, + text = _b === void 0 ? "" : _b, + _c = _a.location, + _d = _c === void 0 ? [0, 0] : _c, + x = _d[0], + y = _d[1], + _e = _a.bold, + bold = _e === void 0 ? false : _e; + // Draw text +} +``` + +Destructuring parameter declarations do not permit type annotations on the individual binding patterns, as such annotations would conflict with the already established meaning of colons in object literals. Type annotations must instead be written on the top-level parameter declaration. For example + +```TypeScript +interface DrawTextInfo { + text?: string; + location?: [number, number]; + bold?: boolean; +} + +function drawText({ text, location: [x, y], bold }: DrawTextInfo) { + // Draw text +} +``` + +## 6.5 Generic Functions A function implementation may include type parameters in its signature (section [3.8.2.1](#3.8.2.1)) and is then called a ***generic function***. Type parameters provide a mechanism for expressing relationships between parameter and return types in call operations. Type parameters have no run-time representation—they are purely a compile-time construct. @@ -3368,7 +3683,7 @@ class Person { the type argument to 'compare' is automatically inferred to be the String type because the two arguments are strings. -## 6.5 Code Generation +## 6.6 Code Generation A function declaration generates JavaScript code that is equivalent to: @@ -4183,7 +4498,7 @@ var = (function () { *ConstructorParameters* is a comma separated list of the constructor's parameter names. -*DefaultValueAssignments* is a sequence of default property value assignments corresponding to those generated for a regular function declaration, as described in section [6.5](#6.5). +*DefaultValueAssignments* is a sequence of default property value assignments corresponding to those generated for a regular function declaration, as described in section [6.6](#6.6). *ParameterPropertyAssignments* is a sequence of assignments, one for each parameter property declaration in the constructor, in order they are declared, of the form @@ -4223,7 +4538,7 @@ and static member function declaration generates a statement of the form } ``` -where *MemberName* is the name of the member function, and *FunctionParameters*, *DefaultValueAssignments*, and *FunctionStatements* correspond to those generated for a regular function declaration, as described in section [6.5](#6.5). +where *MemberName* is the name of the member function, and *FunctionParameters*, *DefaultValueAssignments*, and *FunctionStatements* correspond to those generated for a regular function declaration, as described in section [6.6](#6.6). A get or set instance member accessor declaration, or a pair of get and set instance member accessor declarations with the same name, generates a statement of the form @@ -4351,12 +4666,14 @@ An enum type is a distinct subtype of the Number primitive type with an associat An enum declaration declares an ***enum type*** and an ***enum object*** in the containing module.   *EnumDeclaration:* -   `enum` *Identifier* `{` *EnumBodyopt* `}` +   `const`*opt* `enum` *Identifier* `{` *EnumBodyopt* `}` The enum type and enum object declared by an *EnumDeclaration* both have the name given by the *Identifier* of the declaration. The enum type is a distinct subtype of the Number primitive type. The enum object is a variable of an anonymous object type containing a set of properties, all of the enum type, corresponding to the values declared for the enum type in the body of the declaration. The enum object's type furthermore includes a numeric index signature with the signature '[x: number]: string'. The *Identifier* of an enum declaration may not be one of the predefined type names (section [3.7.1](#3.7.1)). +When an enum declaration includes a `const` modifier it is said to be a constant enum declaration. The members of a constant enum declaration must all have constant values that can be computed at compile time. Constant enum declarations are discussed in section [9.4](#9.4). + The example ```TypeScript @@ -4374,7 +4691,7 @@ var Color: { }; ``` -The numeric index signature reflects a "reverse mapping" that is automatically generated in every enum object, as described in section [9.4](#9.4). The reverse mapping provides a convenient way to obtain the string representation of an enum value. For example +The numeric index signature reflects a "reverse mapping" that is automatically generated in every enum object, as described in section [9.5](#9.5). The reverse mapping provides a convenient way to obtain the string representation of an enum value. For example ```TypeScript var c = Color.Red; @@ -4385,43 +4702,37 @@ console.log(Color[c]); // Outputs "Red" The body of an enum declaration defines zero or more enum members which are the named values of the enum type. Each enum member has an associated numeric value of the primitive type introduced by the enum declaration. -  *EnumBody*: -   *ConstantEnumMembers* `,`*opt* -   *ConstantEnumMembers* `,` *EnumMemberSections* `,`*opt* -   *EnumMemberSections* `,`*opt* +  *EnumBody:* +   *EnumMemberList* `,`*opt* -  *ConstantEnumMembers:* +  *EnumMemberList:* +   *EnumMember* +   *EnumMemberList* `,` *EnumMember* + +  *EnumMember:*    *PropertyName* -   *ConstantEnumMembers* `,` *PropertyName* +   *PropertyName* = *EnumValue* -  *EnumMemberSections:* -   *EnumMemberSection* -   *EnumMemberSections* `,` *EnumMemberSection* - -  *EnumMemberSection:* -   *ConstantEnumMemberSection* -   *ComputedEnumMember* - -  *ConstantEnumMemberSection:* -   *PropertyName* `=` *ConstantEnumValue* -   *PropertyName* `=` *ConstantEnumValue* `,` *ConstantEnumMembers* - -  *ConstantEnumValue:* -   *SignedInteger* -   *HexIntegerLiteral* - -  *ComputedEnumMember:* -   *PropertyName* `=` *AssignmentExpression* +  *EnumValue:* +   *AssignmentExpression* Enum members are either ***constant members*** or ***computed members***. Constant members have known constant values that are substituted in place of references to the members in the generated JavaScript code. Computed members have values that are computed at run-time and not known at compile-time. No substitution is performed for references to computed members. -The body of an enum declaration consists of an optional *ConstantEnumMembers* production followed by any number of *ConstantEnumMemberSection* or *ComputedEnumMember* productions. +An enum member is classified as follows: -* If present, the initial *ConstantEnumMembers* production introduces a series of constant members with consecutive integral values starting at the value zero. -* A *ConstantEnumMemberSection* introduces one or more constant members with consecutive integral values starting at the specified constant value. -* A *ComputedEnumMember* introduces a computed member with a value computed by an expression. +* If the member declaration specifies no value, the member is considered a constant enum member. If the member is the first member in the enum declaration, it is assigned the value zero. Otherwise, it is assigned the value of the immediately preceding member plus one, and an error occurs if the immediately preceding member is not a constant enum member. +* If the member declaration specifies a value that can be classified as a constant enum expression (as defined below), the member is considered a constant enum member. +* Otherwise, the member is considered a computed enum member. -Expressions specified for computed members must produce values of type Any, the Number primitive type, or the enum type itself. +Enum value expressions must be of type Any, the Number primitive type, or the enum type itself. + +A ***constant enum expression*** is a subset of the expression grammar that can be evaluated fully at compile time. An expression is considered a constant enum expression if it is one of the following: + +* A numeric literal. +* An identifier or property access that denotes a previously declared member in the same constant enum declaration. +* A parenthesized constant enum expression. +* A +, –, or ~ unary operator applied to a constant enum expression. +* A +, –, *, /, %, <<, >>, >>>, &, ^, or | operator applied to two constant enum expressions. In the example @@ -4450,7 +4761,7 @@ enum Style { } ``` -the first four members are constant members and the last two are computed members. Note that computed member declarations can reference other enum members without qualification. Also, because enums are subtypes of the Number primitive type, numeric operators, such as the bitwise OR operator, can be used to compute enum values. +all members are constant members. Note that enum member declarations can reference other enum members without qualification. Also, because enums are subtypes of the Number primitive type, numeric operators, such as the bitwise OR operator, can be used to compute enum values. ## 9.3 Declaration Merging @@ -4458,7 +4769,29 @@ Enums are "open-ended" and enum declarations with the same qualified name relati It isn't possible for one enum declaration to continue the automatic numbering sequence of another, and when an enum type has multiple declarations, only one declaration is permitted to omit a value for the first member. -## 9.4 Code Generation +When enum declarations are merged, they must either all specify a `const` modifier or all specify no `const` modifier. + +## 9.4 Constant Enum Declarations + +An enum declaration that specifies a `const` modifier is a ***constant enum declaration***. In a constant enum declaration, all members must have constant values and it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. + +Unlike regular enum declarations, constant enum declarations are completely erased in the emitted JavaScript code. For this reason, it is an error to reference a constant enum object in any other context than a property access that selects one of the enum's members. For example: + +```TypeScript +const enum Comparison { + LessThan = -1, + EqualTo = 0, + GreaterThan = 1 +} + +var x = Comparison.EqualTo; // Ok, replaced with 0 in emitted code +var y = Comparison[Comparison.EqualTo]; // Error +var z = Comparison; // Error +``` + +The entire const enum declaration is erased in the emitted JavaScript code. Thus, the only permitted references to the enum object are those that are replaced with an enum member value. + +## 9.5 Code Generation An enum declaration generates JavaScript equivalent to the following: @@ -5119,23 +5452,17 @@ An ambient class declaration declares a class instance type and a constructor fu ### 12.1.4 Ambient Enum Declarations -An ambient enum declaration declares an enum type and an enum object in the containing module. +An ambient enum is grammatically equivalent to a non-ambient enum declaration.   *AmbientEnumDeclaration:* -   `enum` *Identifier* `{` *AmbientEnumBodyopt* `}` +   *EnumDeclaration* -  *AmbientEnumBody:* -   *AmbientEnumMemberList* `,`*opt* +Ambient enum declarations differ from non-ambient enum declarations in two ways: -  *AmbientEnumMemberList:* -   *AmbientEnumMember* -   *AmbientEnumMemberList* `,` *AmbientEnumMember* +* In ambient enum declarations, all values specified in enum member declarations must be classified as constant enum expressions. +* In ambient enum declarations that specify no `const` modifier, enum member declarations that omit a value are considered computed members (as opposed to having auto-incremented values assigned). -  *AmbientEnumMember:* -   *PropertyName* -   *PropertyName* = *ConstantEnumValue* - -An *AmbientEnumMember* that includes a *ConstantEnumValue* value is considered a constant member. An *AmbientEnumMember* with no *ConstantEnumValue* value is considered a computed member. +Ambient enum declarations are otherwise processed in the same manner as non-ambient enum declarations. ### 12.1.5 Ambient Module Declarations @@ -5535,35 +5862,21 @@ This appendix contains a summary of the grammar found in the main document. As d ## A.7 Enums   *EnumDeclaration:* -   `enum` *Identifier* `{` *EnumBodyopt* `}` +   `const`*opt* `enum` *Identifier* `{` *EnumBodyopt* `}` -  *EnumBody*: -   *ConstantEnumMembers* `,`*opt* -   *ConstantEnumMembers* `,` *EnumMemberSections* `,`*opt* -   *EnumMemberSections* `,`*opt* +  *EnumBody:* +   *EnumMemberList* `,`*opt* -  *ConstantEnumMembers:* +  *EnumMemberList:* +   *EnumMember* +   *EnumMemberList* `,` *EnumMember* + +  *EnumMember:*    *PropertyName* -   *ConstantEnumMembers* `,` *PropertyName* +   *PropertyName* = *EnumValue* -  *EnumMemberSections:* -   *EnumMemberSection* -   *EnumMemberSections* `,` *EnumMemberSection* - -  *EnumMemberSection:* -   *ConstantEnumMemberSection* -   *ComputedEnumMember* - -  *ConstantEnumMemberSection:* -   *PropertyName* `=` *ConstantEnumValue* -   *PropertyName* `=` *ConstantEnumValue* `,` *ConstantEnumMembers* - -  *ConstantEnumValue:* -   *SignedInteger* -   *HexIntegerLiteral* - -  *ComputedEnumMember:* -   *PropertyName* `=` *AssignmentExpression* +  *EnumValue:* +   *AssignmentExpression* ## A.8 Internal Modules @@ -5682,18 +5995,7 @@ This appendix contains a summary of the grammar found in the main document. As d    *AccessibilityModifieropt* `static`*opt* *PropertyName* *CallSignature* `;`   *AmbientEnumDeclaration:* -   `enum` *Identifier* `{` *AmbientEnumBodyopt* `}` - -  *AmbientEnumBody:* -   *AmbientEnumMemberList* `,`*opt* - -  *AmbientEnumMemberList:* -   *AmbientEnumMember* -   *AmbientEnumMemberList* `,` *AmbientEnumMember* - -  *AmbientEnumMember:* -   *PropertyName* -   *PropertyName* = *ConstantEnumValue* +   *EnumDeclaration*   *AmbientModuleDeclaration:*    `module` *IdentifierPath* `{` *AmbientModuleBody* `}` From f18ec2e4b39681368d3143d86b29a24625475193 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 31 Jan 2015 16:27:54 -0800 Subject: [PATCH 151/211] Updating grammar appendix --- ...anguage Specification (Change Markup).docx | Bin 430801 -> 431437 bytes ...Language Specification (Change Markup).pdf | Bin 1488736 -> 1492387 bytes doc/TypeScript Language Specification.docx | Bin 360134 -> 360409 bytes doc/TypeScript Language Specification.pdf | Bin 1406426 -> 1411202 bytes doc/spec.md | 43 ++++++++++++++++-- 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/doc/TypeScript Language Specification (Change Markup).docx b/doc/TypeScript Language Specification (Change Markup).docx index 08a3fb4ac0d9b523245e2a7e0bc4b877de642e8a..10a972fac841463d02eec520fd795504d86e3576 100644 GIT binary patch delta 361216 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Ðs0T^xpM@M*7thBkDB&cLh9Ym`5VSE{!Dud~ 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

LZPT6hL7zb1#lK-BzAV^!;15m1$3j3tH1 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ν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%0APepYE%eiNgNj$)&z2Rw`gE!4 zr=x!z!8IK2iN>lHXb+rhy$x6Pqug~ft*m0yO(>kntWq$o1=(7U^rYO+{Bn3kT(>0h z7Ej<65yXSebd_PF#=Ff)I%zR1lkquvJfYuSl(D|0#%xeWvXe;std7CT7FW0T$g^xK zxfSoEwFM{jtzevz!iuL$BDjdb=Q)n?|74( zO-aT6w`__tMlRj74X_{1lRT~lu>Xf^7lPBUU5q|9>g(kV`!6a~ddJbK9-$(qY_Pc6 zd|dieB1T1yd^t8t^29;c={(NLen|V|ofwiLkFzXo>o`Iea-xLIOh+om+IngxM>cykDxU9NewiGBFX4H#(slh2gB^vk3d_xc&9)9x&l@yF^#u#d^*2Rxv^nrRZ(F zhs5gDc~5dh{!C0h+X%(mN=ol;@L_-9)Zpa1G;0S-NDd7C+%E6ei)*m-Ppdt0;2qPH z=)UtZ7^lwrLRG@UV(nBs=6Wod3Hx}NzQ@2}uIkHiAPSP>3b~OshVIl!^M&5&{*PBSAGPJcF7Pn zANZ+KqI+KOpIlk5K7f1%mu7zzdJPOiR=3lebSl=WzsBqWN#@Am9by=Fd#4b)>{GvC zvQK`?rm`W-REq!l1?w(Z6zGo=rfkB=r&rZ96?Og#8{sORp#i8Etu##X+%;z= zV)0q&nIOu-Vwi~0EWEeL=!dJnV`?26i;5`-m=&^E>-I^tqZxXVi9vtT;m|(cMH}QQ zJ%t_dX`uHEj_iu4rtaID*DtbJG%tdwPeUU0dfsx3w6~K~f3DxA00XMwHXIU6KVEZ4 zh%rj6d6xV&+L4K>;i?naZpjJgzY;;JyUtRoz=Ni;Nsid`NF~WnG8UYz&{2b#s5Vkpm4ygjTStn{E}O z|HuJ?&3JRuGQzjp`p3)@!Oa{6h@Q8hDyC*h1aCu@CwUJ^bR0u_0=lWN;(Syy3(9$~ z?who=@0Pb$%k5v#a$YBkV{m6OjmP1%J0)9{C4TLXM>}S;g<>&-PvOz!@Dri!0XLpC z^6H3Nc~HrkI7)vU{hkTy80zjuh9D)OYV1b`j-y17^do0NPaJ_%Vd;Au?bANrt`}=OW|FF3+Z_vzH zk}`~=Y)roWUYtd<<)nFE>Ngg9`jVOsGQEqB`7xW<%tC*@UtZJv1LW{i8}{qX?bQlV z($xl!yrT}_jQn20>|L+%{|cFCC@JoYx23|6Q-Ei%t7vqmn$Fcm=yj$E3ksvwjJ-*o z7lpeemFMG@IDKr z=AlPOOu~P0)tkg{Tzo`Ig;7`S-~o(SyCdBLn4zt*eFAjEdhsdG6u~gS)MLjpF{rJ*@+2AY0X`7R!$FsD+3|E(m=I@OJY!o2K zE=Mue+O#j`2sI-Ss#`LsfO8M-iJo_}g1KiYHBNsHp{n1Q8KpVk0dM4jL3j@cTV3&_ z{I|oga%E~4B`y*n>rdO&9vyWU`$bQ%^^%6j^6ZFuHWf{m0zbZ|pV377^#+rmcmH@G zj(W9ST>rA%`_N__<>TovqS=zYgpx{@GOXP~$w;v0^(8V2Ap$vrPD>Xb73pxodt`R> za=w4ruHZsFsS6K8q}V@3Tr;D(BTKlCLqy(*?_g&a6S61Fi{16~ApU$(5cS-II^x>Q z3DYD(w~NrnLLJY;A);87ULlFo0HG?@z5g&GHlD>fI_(hbIV&=whsp^nURLMjvdE0Y zDy=;^={*+Brm29@k2`2v!zc>VxTV{sV*`I(Rjar;2+py(QIj$Q`|Cr>8jmi?!ob~H zQph^mhb1bZ-lUHH71A6h)8tj!cLdqDcJfryWW5yr`QoU-ZFZ5l?D29pC*l9dVd8>YC4j|jho=JbC*KpA?tgPrdNe??=;WE8W1_?!rm!AisJ@NpFw4`0Jd`$$$p^JS$n0R+F zkWwvGox;Mn%WRs@Vln~F1qq{C)un$q>wff=?e@8Nm3mnT1*5f*>weTVdCfu+|FkOJ zN9>Ik!g(JWvp9cNrL^XrNb@*M(^}>>cE)1SR-XLTS6>faQ<=t{&6~-r$z2#!Kt>xTMk3JsiA_yY}Sp+HF7b?jrDQ4wyN56VDWM$I7ff*X4Ph& zjwAdRdT!2E7J2eo7Nj<>ij)%li;n9eA*He-c`^z~6W5yl(n~%Smx`=SAfavl7dRA^ zS_e>AF3)Zk{G4i=7*{`}d+Xhc%vg!u`bC_>(bLY9RWy^ullqO0fG1$e%yxCP`)RP5 zQ?Y=?!WLz6@I08a3kMrVakGEo8s@Dmxv}v1fY16PC`4vP>%7dTNs6hF?PzW1tLirl zt;I(~tVXo%;&Wv}Qt_W6>oUt(N}?s}GGdhx>NDU*=mDg-8`9kSOyx5~i+Nny)j< z%WRgjs^PZlRO3FfqM&}mIH%<6_14oWO-l|4$$H!q#e>2k%pNly6f0CHT-26umoXkR z`r6029u(nlmL@)WV=|4x%oqz)zhO5oJ|c!@R1v$Fd2*rL+vU3?z%aZb4K$NPF~4HH zP)-!ri9)$5bwq!CMo!_8Og8Zz5hM7C!UJ7v>mn@;NHU+WQ=8Ehvn(4k#fIZ3NXop& zy$OB4=Vb~glsrtrQ%Wj|by-1Vf+0318$TbBgG+UEgR8~X%f?B9X&R3GM#lF%o)K4l z%$Y1ic4qK`@Ll+Bd@Ix#LK)2&TFhK{MtaoI*&;t|>sNp4yhhg7q?2{GT4;lRe{L@xOW?~a`l2`zISQQUYq&5qsavtH7+SW~WOz?25$29FLLiK(wC#|GBvFA7R}|P+$P&Mn0V+LV<8iLX%L$s&Rl}{T!~rdD z!1cVx>q&mPmYAUrKs011foQqwmmV+EA19=-z=ePEAXZ3kc(~!|4F{4JIS~3<-N0UD zP`Fl!<9v!T zx}<-TSnkBprisHwdYxcuM`xsX9nBoi_etMqgW9Q%(SQ#)y9=$`_GP)DE}>rsLU;ka zLwb^Bx97npcNUS?(Vhc7xsTC`PiE#92eUL9hdzB5Gz^sZoM5?v1M2EBR}{<;R1$v< znSq*s7m0x`@({X;L!2UKQ(u6~wS!#MzpsB-I-!XCf~FSWcyHB#Most;{c(hDzw?n( zSu~EKd^qbar=+V=FYyc_>9>J3Ns+*)qRQJQ)|&Ce!5Dm2Js;CHZ};nGF~`@ux52+4 z6Ta|U>dFeukT}mRon~(XpQbs8EhHFu>f`IMCn2ccFphA-M54G^h)Ib=*t6oARlR@3 z6nn0cg5Z^oQKE~ChEU6)QJ>KZF@;y!Rq%-p@rUp zv(fhSamM#=7gx~{`EgZsM{@-nmBnyWhn_d}rR#X2;(NDtH(y}KwuTDl(rpk)TeX-iE{TIaUe~)41VOTVCdt| zEyF~ljafV|+CCM?R;Mv*(ba#E^hYZCB>PN${|KUz#4JvIt2|@5z+^l`M8+o_s^bN! zKj(@sM*+G(qlE0{ou!(P!DaYza2dTETwGiXSnb$XgL`~*FFvYVl5agg0S7=inM^59 zq%D<5JzJ}?p#Ho83W{%H#ujdrbe-2P-a|KH+P6@383!1x^w`L~={bL>r1Dc{oT4Ea z*L!pURw{-V+6c#q0xnH~kTlFapYI`XRC&mZZgHH3@i6fzIZ}akER1=;`2NTJXOKEn zhQ<2zi*D%l+rSUuUJc%QS(nLlR)mwWk5!;5n*tQthi4}H>#!eT zA3CtmpqSf-^?pSa9*lo0%5}sC1)Md1rlHqTxgAOZl;x`EI&b{UVqz4}UM?_W>`77V2kwH2ffj?{GHpi7we?jrt9z&jek~c|%nrtLl&i78?q8V51jKdz)peDaAg+ z2v(%i-qs6ugpKZekDQ?<+2|tci{XkZk#tgZKm&?2RE9$#lWcz|i|w4zfY;LNx%d{1u6a#_uOEt*d)Hkhc%@ zMMW@9hRg}oCNed4)u#TbKj(nq&BlAu#tmb%VTQ$644AC~?LHg{qBart6&#^zJ?ef(kRH`4%^ zdfk^y{%tJ%IKW)LSwyjeR#tD4fvS$BxKfp$cb9>^jD3T=(=Gl+@0?odb~CYKOvXX4 zL7%{~st&Z;JnGMN$Qkw4E;i4W3nh<~qE?9{B`VoGBz}L^6>kvZW6lSYvYaNNPo04Z z$78{6GRvRXoR`fiMRhRiyJ1kEsA}$GrJojbM_cJ;HvU^9HAU6WCG32TIPdFG2!;u! zOpkrCl2!FuV7&IBS=YuJ9tGW8X*d;{+}Gkv&{wKh@Y(zcaX6fWLF^MT)FfJ) zMU#bjoHKuOyPjGvKC)Ug9h?k_TsB5Q{VdOr&ZL)bDM5W!#Ze^!knt}Z2Ach>J|ia_ z92^E18o|TzOqpV1CkFrhfC=-BYW=It<`;B){YA3Mv3Fa<9b2@1#WDfR3=GNnK-r;} zE0;TZRED5ktwagaGz%i4Fga9J*x5BiVmwud)3McNfJUq=2}>l_i6Y-1`!m z?8&{4=Euul$!^%8pwGulPlws89LGKyh<5TbAoY38bh17P@jjo>Kv!`CA^IWe8`*Vt zvD!%nZ{F$m>_C_^+JiNeW;Gru8#7Z?G(@=wdc=8{0KXeFIsoWw2-VFAf~yfa%6|0i z4H|!P(zuGPa(f#4c)ElSMu-Op>YF?U_k&rC(W>34P-T~Z)G?bl#m#+>JSYV)X4=d1 z`6SDd$B}44$T1e@fR7^4NK?a5J4AAL{P~yV=TDpMO{?b3#3_4|iJ6kQI^Qnd(-Z*G z1Z3>*&QP@p0+J9NTq0zC`1b%l1<2R^c6EQfM|Bt`q}FKy7@8_*j8N>x(gz+dwK#Zq&r*FC@*3$Rn!|c^aGXy>9Uv9gD(yQV#^GF|eIr(!v7E;O z=q8C;p7$*RkK-`T;w%eWFw629%Qm|aa(oent_zZ&Yk8lJf0o@^5bbN{-L|6#1lXq! ztLqQQP(YVMk+tkPP&SQG;mYxL1hIdC+=+|9kE`1iWi>-~uvyn)_%<1V$TxE>m!nm5 z>Li1MXBz3#44cWSq$n^IHDhWziIaER%`HpmVN(KF-^Tx1d|do^y6vmUypw4qH8R{Q!Qf2~;NiQ<@ z#cAxv-w}O^Q(m2=qRyg%!L@3p#HQBz@89ToPJF+1YQm(Uk_Qe+6!-%YaC;RRu~0G#Ki*!gl=EIC^0j1 zyBqv@`SGvVJ8lHNd2qi04Crr!kNH*t6wX0M{;RS^7@=@(lIK=6*s<*)nEf6%+D zf6(87p8ONWdfP&i^6GyAjjE40wU)ymoO0bnFetTIn9E)V7u6uslEGZPTB4rnqoa3Y zzQR`nUS9eq;`G&DwN1;{$*Lkxb)6F3RyWA1RI7i809HV$zw5-ER#4FRLiIxv5@=5u z-o^B|Y6DW0~i>bN# z5{&1=5_-49#3;C1m>EKDv;AinRitb4y)AF_Co41{%x-@<*4=I%-a~yJT(7p*qKXvh z>#k)dQJx10x7N(ig8}G&T0q_xuYVAxh3g?wPG-FEnN9k`7;&v2@0-6?0x;}}s-Q`> z2le$F!kD{fxb;dm#Fl|fr&=Oy86(?nX1J7h`m7=2g9rr6v19X*y{HXKoSy%EgMia#A$HSZ|B~Hv<1zw2VvD6g_RlYD|^!hoQY1gWmrqSmYX%^o+ zXLv7vfAC&DXL#TI{^0%Y)u0~rrAdxjBsSbM{+_85`G4L~VXq2&DC-6#JJ=u2TMk_ka zI5tEu7{^hh&c_7>YQ5EDDGlK@t}LXn^(g1B_gZ zt0d0gr58pq+Rc_d%6mCXwaA5($Z4SHFIO+LAr@Vmpm+_}(qsx}hU2>4zv5w!W0pRZ zq&VUjgZF z(>OyLyAaHOPc|bZeh4qSwa@sU;RLfwBLay#u)&rdIWq=47O=PrD46V`aF3No?=N(} zel2S~PiNWOhXqLr$R`#eQiTVPgRfV=EI+MwcHP5s1EUW|0>N?u19&@mWPHH?LGLDJ ze1qm?b0>3oyw-AH*OjU6JBtP%P0M*QEMJ`54}|uA8R?95)u`RY z>r8lpYE{6ZmcNA!eA6j1v^%--Ik5rV_aNafI z?XEtPbMw39Ey9tyZdaWfm;^4!!QMwq$Jc;4$XHV}(O6M{CDTmysO5NQ2nPatM8Lv!5 zK^(MO|e%37YbXf@4L zMaNB2ZeP_()h)FVP>dpxj5}KBgv=4z!oU}QPIN01^dNG^1CcR#wYp=uYD6YFzRTbV z$MJOP42eOKv7~Lc`Xp~^ME$B>9t>KzU65qq)KA*C(R{t@mRd9_j1J1@BD-^h7Puca z&LHRnS(BKZ;&|bqV~^J;x?oa7$t*a7k4ykkTrrEZNU(KDSSBS&A#g}oRG4CAAuXkU zVpS$F4xOeH$p;aqJ`2%sYN+iL25n8Ek{O)I z9P&n=uC0O9|JFAluJbLo!n+;xDf>Sk)n2!(b8wyuILtO#io}&Xn-ecRG0zf|`}~NR z2;~{l@wattpox+zA|g%M7;Qg0pZO65lXvg`vO-_~#oC6{Pq)4AA8t`4b8XsxpBeMx z89J(@bDtKi9o>oJB+YVK_fWPXJ|ZdLV#;KP+CW>g&soW}edPSP% z!2d-Bt&|ggs6(1fzAHub5p_656A<)iUT$w!C>mZcEyH#$LK*ZloXsnn8uOPwvutZB zuRLmSc{PeNDt#c|lN6$B*dbD>>SaBx*@!RAUt(i~f{@?@_sv(oSN4o$VM#QFkkz zOFO)P_Y~#^WJX4xCtjE$@#~tnQ#b_2B|H zLdfd?t|TH?TnbF0z(8z*dPju2#NFG?DaSSPE6}!u1NaPN=$s+#*higizu4^{_^cWU z2UJvMvuP!uyx32el)*4MLjy1oD3KLe&#;=8(~m`Eh%{fn_4hVWKMN|6temo=^5cD6yZCjKRSwVMiVL$s69YF?nB{%G`SDOOHE&~(4g5? z2?3RSl8jH!4h&b^2#=X1OsNgk5far{RI;sj0g0Y4ON*H^J&Cy|@9TkL7M*oe{{p(v zZm-d~^_8PWA+L*cDabF+ssjmcu2-z#0@FPf_xEcSR}~X~>`0B_x`%5&lPsBFtcByn zUXeX%8B55_9odtf_m1qLLtYx7hh~Q!B+_dv+w2zEOD@956S|i7xdMCAZo38cM$}0P znhQptEKnF%DWAF)SmRQ_&zF97GfR4MTd%5 zzhXT-S6V-RFKQ^V-Yl%Lk1>Y!gYt}Sq)$Ud&e+T5((vEoEDLLt^&YbstL zw0sh$80YEJS-PWJNbo&bno6wj38EV$*lM}<3_YTx_`Rv6fQ@bhk#zFbKVeuQiqOYG zB%hd?;@QF~X1AAFG@r4#Xnh~QqhS+$ucV8^@Qhb~;^{-Jwk!3EsstiVFI}SN&6~mlGi5=1cJuKjw z@N@%&*)JAN#kwOBw=weA;^UQ2X&H;Qb=-3~HOf|X^P-EKX9 zxhV8Ix17rIIvouxPwz)S0`k1o_batK`rTe|m_-;RmbTHb1!fkAce~)stR8)R7sIehg>ys zVIkT4gZtVyX2mUL=cRd8isUM@zsM`t5FeJY@S3I$Q=z!F4R4v($IffrW;d39*ly>w zzR<-KC8(an&bw=<;|O?vL}z_iShvgT4~x6i?w0k&)_I3~S9wVZB8(aBN0n~nZfqVU z(J&M`y&21#NIIOy^O*Z;_9II2*e=&Bj<)--x<`UVr`bxbqsjX`L=at1$Xn}iGWmt( z$E6sfz7L0u>ivg39@(>$PM1ZV0V98IeLYld zy}=T(nd?Td)^Sb*cy?%OkHRx|3Z(L)#X)r>Z=McT8Q0tIr-8U!%yJO;EEV-VG?miImN{xhBj1tG{RH+_N9>#SBiIV^@YzUJ@A{&|QCgLlT7$ z-O0V}n!~eJ>(V0Y;>wUtYtcTtt98yKlJ*xqqFTpinaH^e8ds<}8Uy0kz zi=E8#GIBbZ2k=DbeATc*^%3_nNXt6C40K@&^z>#bxW`)<7%WnTC4QTOB+L+D8s>h* zJACh!=r;)9k<62z#)H+MJm zQ{^4%WtbfSNg9o#@En7VrXjjzur4!olahwO82yNORTyozxV@*=)ButS4l##YJ-buo zfc}`cV~ipT9$aC)`Q!tlC@SZeQhtWKb+K7lrb_#-X@{e^^vxde{e#bJ@eAENvh*t4 zA~;fk8G()J+xCACI<|8P-`=qYE47@+8+ARkx~*nUnb9YOb2mr|%3waRzTt+A(d9<7 zJSfkawkpz)R8AocHQJB<*Lwe_OKQ~m6=o$}evSVWD4EZj%%UkK3ZElsnImp@TrhK} zCW7ogZTL;soV>p2rnM^&gc-y&c5Pv35FaBfA>8so5OjY`8Ak>3g1>YGVY9Rtn*97X z4@3#a(|IyM-v1+?yBpIWoT#`4LyJS2DP1s1`M5(spn!;#Gugw7W)w)c&44}C59+_K z=##~u=Sg0>%h*VmJ)>o2TW|wowk}7#L3sZ~(Iz1%L9O2Zu zO(rP*ictO~+A#{|{-%ok4Gf9crT`~<+)VvR5v9d^euh{u_C8}{wGNIj@ewIa;wa@I zLZN@KD$OG9EwOe|1cM62SOd9gn*IMQx0vB;PgfIWbDGblRl?fs2ArWP<~^)ULtQs( z*h$yfPgBc7qSicE|?*8yPAKMN2v{{;= zwdKiK$Fr+^si}vEM`f!T)*aJpXBbEGP^o{7Qs*hYsXMC(OH8I+iWvM(`lZ@C}My4 z{VU5x()tpV=6^#~Z=B?l;qV2suD?K4uYqdH6`CnA9u}B1(CEGv&EYU$!-86Tmsyr3 zIhEk?-$_%%CSjD6>QoU)i#3MT&fAW<0iH8ZA$j0~48;hnB|C+q-&W4qzSeAcjWOZK zFIk~i;OFl)h?}gITjgdoqgz0^x{`lB?|;k=4>!v-w#tU4qzqja59s{Aef^@uc!KS2 z@aN^<*E#NlO_y^4}oLGV{jwZ|M91R`7r*wW?l*Zt_w zRG8pheM*0aDZ)P?UV(Iv`UI>h=IKwM?_G{>RWKr4736E>cn+0l`)096H{*Xh1r-4l zK!Ytu|Fb0Jx3+VT7=^eJU*FFqVi)#yckpf-@{ei+8=XU6NJsr-=H1UZKX@Ze+VeLanTB<^WmDEWn@dVPcv)EDH)I#i` z-`Qm7=+|TCFAWTlsimL8mKcAYahEZg_`AAm+PVteKU^VQRAGRcEPgH<-J)^vzESYl zAEb=KcTth=x0s20z1P}zLR=WCE0c1PqL9xgtw1BFHY!tp&gbwP`YE9ti1UQ!NzS(x$t{wbq$o?Wo$eG+sg$J6 zO)jqcRUn+zwo+5!Ox1#gi-w)Mgv(X{tkfRF3m>mSHNbNMDkS1CbyunRX-D6a+wZM; z%2%0S+wc9)6MW?kkH<3N#<)0A z!oGQ3BwBBJ%lpmo#rij%2P6YS*aOqRO2Dbu$y@Reg6HQLin~36=dqgb{3rOzdER~! zdMm6p+@R=daq{j(CYI{=cnH0{TcG?D`MTjy(c>&H;(y7cDke277Eo&n1zUd}g;sTHsy^>uL-wj=wKpAkt4DLUpMI;4$K8FM^7*jp7a4bqIC9a( z3$y4#RXs)q&I#;1X^W2AROzrcshpjeDfFN;9RnvL+@EYHzIS>jQJY*qttmG9cnpl= zMlWsGUrp$fTpff$_v{S4M=j3VOWY#0+!>#un9xDS@*{uVg$!ee|LBS;H%ok^n&))w z>x*-p(jymV`lCOT4qInU%dwf}RKT+qn)EMk?-w`o-)$Du24S^A(GGW-Mh`Sp;GsB| zI+{>v4qeCX9D)6H>w1cjoK(ce<=fOXlBrm|)N%`WZgnv3RGlGt(T>cVhuyL}qH6DL zb(Hs3^_YLkAvq?_Th$joIQ@fem6|Tp*MJ6Yvm4xroS&!~(|l>o7hG_Os-;Ce`LwZ#0a+2glOn?pTVoJ=HRwvdx_~tk4!IvKqc%=tl+6X$;pE3qq9VG_r zaS0OMa*L3#@Mm#n`tk`sM(D}^AbcM=i1a=cV7B% zRQ6-$;h0zZK78q@;~dEe$>zq{GvNA{a}|RQ>|OTXj7Y^Oxl0suJ|lTmVUcT zODQznYmvHXuOJwPjcE3-_Iu9*`r=Z>_d+_#P;id!VD~FZwZ`m`A4C&Pped#$VnQ<# zms-m^l$&$IKiZ@zs%m8#4TYC?e|@+UBTU4Q(`^%si{<4P3}-N(XHv0G696|hMGJf; zg#+87K5oy^Y%oi*GDClh@uyPtva_TyF^Zt%QDl9s2AS<_r5-`jjRX7eq-@XzPZ|&f z@3L|v2`FsU1d;g-Yah=ph>mUoYibjEasUbk3nDikF?kZ*vd%x0eoj4QEY;Xaos#4h zXdXyPy;7N2XSJSx22zC8m1Y=W^kk$+R#)cYSo_i9J``3?^6`I2)D!)4QP?Tn5!G?r z5wR4u6^Wo1YI3jlQ1Q`~jYf(w3LmbfFgRl~)QE8cMVuN&*=<13n9^!>RO_z$U|u#x z7FZS4c+#(LzC_-BN~^VVN~=}l?G8-}xOY;V@-0sKt>!J*G`pw=+!w`Uh{@?}nrZAU z>vW2;XxC0oZXthXA(^0)y|NNDH>tGcbblk@x7B$ueMuU1zGI8`XM-}^(QtX!=*(f7 zjXM*6Y$-(Qy9+U7j-oIn_G--%KKMbq-d&ZUZ`;j=UxoT_5l%X@GqrX1=Bw^f4#ivD zyF_e36t3=|O&yPVWN_Kg57zDHwi z4nLryotJ;wwDr|1Wzc*Zhu9PQ2maa^#T)h#iI`}GilM&UR}r>O(H~Kpy&ati9xD=c z^g6^PM<~PMRUwovWTj)s@{*EUlm^tmvqKXk#OT9@pH!_U5fpDxu#mbyHY?1)jlbD8OI_Xk?b(?S@KdQ0P6K4DiP07*Yi#9Uq{y3;m z)C3;gPUfrWjV-}+LOP27P{E(JZBIG>(H$><5 zt7p)si!{lTs`F$?Fxgq>EIrE!d-cp|0`)!)S+^`f8q5b$CvCuj&mvn40$=kMfY0uV ze!Xff&gN$vz_RzN&{+ueZl@gOB2>7iB07=Lw{acLv){x>=ss?9K*_PU^=Q-ZbX$M> zX?}|aOA2lWY%nz4;?Qe7igk^QjoaJlss$g$B@A_hdXa{*)X;bv*Oe2YEOA6)VjZK@ zW(ks-Gkf|v?CiAc4-Yb5BxOjvw3}E6z1@x6x?VVgntn0I6uZ^0;FqYA11unJ(Fa{5 z;t+$Ssb7@#X$xUp6doL6Q1qplqyc~WgxYEc+zjfrMM+OuT7P>$G=d`gbl_%2q}qf) z(sbNTCt~KellO#Nk&UX5z+ry00b5&g@xb^Z9kg^`W-R66&TR(`c66k+wq*~D| z=nckCAs<8zBGK%mb;Dy5xZdFHPRb-73+-;xgD4GRv74MV$?I~J>M%fagQ_h$TY9uB zd$am=9PDM&x1t~1eXbojHa95el4OIlBf8pZLDpl;=?YgEg;X+R(NfYOB1Nxuxa%inHh?nXF&?eDS$-G-bLj26AMXc`?c7s7s@m;9L1su( z{j^+M9=2h5WsPfxJLX}Hi{$Kq%f$?>2VwDJmZvsQ?iwloa7#56l;Bv4W9COrQ&_XhKJJvhF*6!jD#e#*EQgGhfx7jskF)zctSGvnqj z7N}}fg4mD2sD$tQa1>$!B&yShkZ{Ov3~QV)aPN}G(*}W$p<`)KfXTDXil?+%f3k!w zp?34o<_-c|_p9k~N55sineQOZ%$%d_rYB!K<<{`aMmPAtOY}78;9Us`$SZ}@6!cql zvlJ(nTHIZs3>kln=4!RPWq)uzDwMGjh>8-8*=lit-@sVIv`_Zm1UJ3y;3#HLwmj=Nwdz5{^#p#Lv{_3R>l%qenfva>8#ZI<9te`(7C*F`5QIi zlSL5@%YCVYzDMrPH{bEisxXc&bb5L$%2xgb_0>3GDs zOh<-Tw^PC7`cB@b4Y80MJtSny3eEGx-HJ{pt9FngA&ZAS>_>MQqHZ1Q>KUe<)on6k z=IZ7zvPgf7)IV3S(|)NUSmB32(r}&xD|E50N-~;?Y%x2$*Ki&ij4~~%Y|>YF^}hMq z-Ur_nNwS)R?0S3~ag10e0LQK28`g{Efp{hI#wz>ez_-haLIjm~R0cvyJQ!Q4Of4B) zV(W)0p#2^uR!FM6Jydga*UMYeXKcwbjWhaWSe<_xi>$LL47RZHroG&av&zKh(q1tQ zJQjStdMlwP5^W1To97z%8FBdN7vWOqWVLnzcK>h_>?+wuGXmwQaf3=&SMYw&x+^Td z(y8#QHKFLkZ&T8Xh4Q2ouNfP68_C5m9hXT|UHqO7Jb4AWK+$f+DT2ubVT#}Sss!H{ z75RS%W3GwzWVCIzya51I5j|4aCljT!i6Z+=Zvne_bv2!NX`r#Tj|xW184O;`oBz83 zS(}_XY0}w-Z5ykH8sBRN^lbtYab~MI{3K&x3H`8{etZX2t-n^uF_*y>Za^H7^&Re5(>Sdyaq2d%*wW>((F7fBMsC@kxUJ4?(ayyC!O2 z|Aq?<{94~n?_L}-^yIyNz~PA{guG0NfByo8CW+ExUge zq^e({W z`l$waUZAjqq2b;>(1Uy%o5iR3u3*rx(=OFwJ;Hioe4%|tyj`$Ok@0zR(-J-i$(FXw zotOT#0T+KK-DET<$Z|chq%);I`<5G$uE%cV&nq;eM~>z4(|mQaoL(ZJqxmz?E%RY^ z-9o&Fgvjy^1%wy)r7Y$`Y;d{SOktiw8gdCY{pxOc_d9l?*>1}gh3G?|F55+x$VABA zS?l~70dtX{YXO6Cxi4A)1K8vSBH>yyWM`LpnUHmGXN;i z1sV``$P>F6fEy{tU<9&}u_R!ZBDVn~f4ulBB$&u)Qmtx3+oKtA?Mg_+9MHW^eXFCxK26I}g36lO%0*PWLs4U?`z8n*&rhq5~5>6;alX z^b@|WE!ZPostzp7J#8n_oLy)|*W5olV$INPKqzP-vWUgJ8$_Z@=y3yiLb#(|f50}t z&YJ)p3+3nZpdN&dCvQq^zHxm%-v`=R?C=-v27!)xS{#+L`48Fi0VuaO96m1}ZjcWP zq6zKz5G2}rOJCc)#Na2hf^e48BQd!dMh~!^M$|8K>0z5eoahO>KTv8!y_DqoGHR)G zcy|dIg@ON%mcU`VLLQG&TVl+v zv>XkyJ{tNTUF#~VBp=nO7p!$5)~h@KZ(RiyIiBPale>8m9C+Uih zyxq2*k5#9H(e}(qG-Y>?XJeGhJ;mi|N0yMHVJ%XRJrGt~9qV#_g+BYjmZ)-7@l{#2DAJSq40H($tn-&{v*$CM}ScG?*P%MQboErDY$nhvtQ?9MM`u~`Zh zs(HAZe?Gw>g4{{FU=L0ce+QkSX$&0`mEIcL>%q^(b=-&t-OXS@VLTH& zUYZ8WG6*A`IL-2Qic)3aS33b>Uj|X~YoSh}uMlw1xwP1d)c3+l713E&*oKpj3o%D7 zyERp?F~=pgd5f3bxd9x15QZMPRKxLk9XDfCpFAB52c3eN)*jj6H0V|Zd$P9;sN_d1 z!$oS?{fEsL09z)H{k!P*VQM}rMfu{Uk-dxh9ZXthpLD<$Ui8Y{-? z%pZ{-(%VCML&H%vNJQ+#xyf^$q%*y-x9AXfjHqrAf}8^%=1ALrJxeEvkV4LF_+fPp z&G{EK|0RfVqbwQb+}le}m=GUEUJ`B}O&t0+&=nOXtRF6@n&f_CL&z~A{16DGY1TK> zWK8YEcTqpsfInmtj~{(mUlGkXvbUt@h9vaA<}K~j{^PX76gL3-nXk#6ep3u5-Kw9S zpy8*flCX8G>ECRBVC`MRdk*z0LqWrO8M$;=1Vik-hZxJ&VkD;vc&3PjpnWKSz+*sH4`{VX(OTP&Z@)%o7RGL4l!&rB zoRmWzFn(kuA_7A^I()c1U)KWN!j(}&)8nH7=5+@|-6X|-w{dj~RnpxodZlHgG{0as zj~z~_H_$9KRktkEgHhfthNZ4bITv)phYcDVC<4J_P^KulS+`0~km)d(B%PveoqBYa z8#xJI>ve}onL~i{oWQN`%5=H0dSpD)ZKJBx@^_if@Ch_GopkL5-^1PAv}dGiuOKB# zy7t_?N$Kl`bKFwkKVU z_H{8Kdk9|!2n3r!z2k;U;SgG|7t!zBcqzpo79y2@!sRV7)^T4$QMEDHlm|*5`5NR# z<=&ZnXnS{h>`!a9GC9@sa59q>y>`a^fL-mgg#N?0Ey-m(h`gP1DFSX0qaK@kTOk~0RZuQwU{*!E@%(v=0aZ+7GR4A_(~YmED1IPlP__nt z^-SE6{e-3%g{G;l3Nk?;K2o#Iy>|592+JMDp4N^hOIFTk0KC5IswpsprlAY6ZEj;7taNQ zm-CJF)%swJv%6{!2Sp!7;nAIjrkrGdZZqV4z43u`-%z^=|s^m2B3g_Dx@rZ+UtFEp&2+;i+zlkAglvhuRB&U9jM|MG{<7|WwwFDd!wfu;XKoB+BFdOAsC{R>chg6+* zyOhOg9vz&F1*%U}Bw!g+G3QTzssXZ`@>8^A76hZ8Uq>6J1dN6;A|9}RkXJ{QfVlL_ z`9>sIaY?Ss$z&Ufb#&1au3^M0L?v2CM!A|P3IN-DB}!o-6F9$UeYyhn`g7W=1oA{Wv~-xm}@G zL7whNUk+?w?_A}!3x1x{*@?*lnPcd!K$Ql@9Gsv?W!Np?X)^fDF^g1qc$JJwQxE1m zD^TT}a*)*>F-PetHxAZ9*)sec2$|y{o_wS|B;(&Q2rL=rPxH<7^3uLCo%l5eqK{nb zc%02eT#@FkFVf8CG)i@Uwqb2PjyDWlj>>LTjj6Ke$inAT88;Hi1is%o?|{E^D{xw9 zoAP6>(PiSAWEeGJ72PSwi>GO9oK#hJ0cCfUapi75bvsS_d70DL+#`e4L1Ud^ik1qj z7d}H+If4wt{uE^h{q6DT*EPvBVmj&#?CElK?%bJmO;3&|C`Pk?JGVVPSon+7{olc8 zFfa!in7(1{7JbaZAK;~Z%LUY$()t=_ROCPuA#DcJ&Fl*zHs%?sW$8`NoL%}PfP4If z58;QZan!hRH?K(hqpF<1?mRlLm|&dOwqG~v|C&gWVhp3GNY!1`c@Jdqh+&|JYM`WL z+A^kSiq6EfMT;MQt0|&qt)H>d>hoeP+ZXFUTFw9Vu)yF4Q$w+?GAom`Bb#b?__qO2 zJRacnKi|P0X#ZZv<93=1kU1DwLhmLZt$Pt5sT&bD8{YA97}cfPy9B9z_ZDjKDoq|S z8WV^fv?@lUE`}x@AFbNsq=P&~2}wq)3gaE6CrhGLKLmJx?dLvT7kV6;Uo}y2RJRJC zUvtFU)~dW%72ZJ~xHY!m26Eo+w9yiuq{Wfte80-meq9d3K+f7#zb~qAoN|7jmfM@& zm2o_q5XGw$6oo8_=wAA7HyeKw<>o5A^W;_QJbl$VJ2O%GSljuC?fl^70gesbV?+0+ z+t80Ke`{}l$8O#mcjQLFBtznGikY%UM?pz99y)hA@Hq8Yy6^-aY;;+3KDTxJ1(=c+ixsk<>$LSlO-I9PsTJ)F1qaj2HTT=YvjnH?hsFbRLZth@dov4;1P&6 zOp8p8-wp<&R7Xa8wGek|R@kU(BpQj(Swf3*Y5DACx-x3Z?d=`$g|$W`%gu?~awQnK z#ab5_N+}A^X+L%08@Co&H@hF{`;taU;IKc7#s-&b6wxF4Fkg^W!M%Yl=4g>A?1vkTHY=&Z0GVvn&3_eP57y@OYEP@N%faMHa8mBRUfnH5dFDQeHW;o>C?b}w#3A| z_5G5%<)TZ3^iv7%KD(zV^9;rBwJ?-XMh;ZatX;$`<-k1{C7KYG2Qs_G;rjGU1mlPv z4P-p&wv+7ZlcqbA;GJU4W18eAn#Aj20VhB&!uFlp>Dh*~n`0MAf6~oSrS-(RoYVGuLYvXJY7c0taWQF+Pmp4N zWnLb8bmT{*b)4Fx^H}nR0cb$&D6BHdX!MZQ&e}hN1G6mF1Z?Zygf!IrJS}1v?^`Dz z*=TlwGx0_>R;@OwF-zX)hv(jC2pe{?>;`{28ahemsGn0?6N0oCM_-ePB5wYX4vK0} zj!%$Xkq@ddI&sSrGXKCx)sZr1*>vfDy$xND_H&Q$6g|8}^oJ}vd$oXlq*}m|MRM18 zP~8hrzP^o~7GW`7=7w%DN!nS_CcpTRoe*iKomf+*wS69eJD-4!Mk6lx3#Bjwdm+lx zs*8$U`-k8B9&PQiy~|2BOvLO@q!>D?C)L6+@A4o$#+4bUr?G~ZRbRjf{(uXA7XKXo zAT;4mwy}^W^?>pBzYl^@I>6L@HSo&~M#tNGyE9I*tST@H`|x*pbdcIP76SL#BVBF? zv01m~d~lnmp>!*PkhGlw#-WN$QGWsJJu7{s@OTsbm-;(dl?fU*k6YJ&O*Ds$6b+sr zsEmbAAdLS;n^E8E+y~>%4=1{vpwJ4RO+SR>hapU(#t9Svh99DiS(5;N#bukw2!(e- zb2`Xr7pM#17^)cyZEdD#(?azCLPKK+iI%JS$Bo>z(Ek3k_;oH)WMyT#wiyHXZa$J? z1Xh6};N$a=e+3UnZa{c{Peb3MmwnTl+=~1DhE7v&>X|NA>%yK!-#!V>te;9#b@vL= zd8(;Dyl-BDTUtDs*X#%9^7@6lvGvVrRCQHPX9kL~4#^)j= zT69C%O~j|O$%Cp>yw$h+2&Xh%gMvH$5Rs#&E3$>Rma1mH%0@1f zQH(Yxi%;{LFQ)zKwmb78PdX)ne6{Douwt;xBQIPo!Q;__Ku-qABms3o6TmkJ& zuvyg|K_7L1Mh9GflqmZ)phHBCGW-&A&vLVGg7px`3AJVqvO`4pA%rQnLIJ1o2Gf5w}&wwWDJ=w9s`4Pa~_$|LY;*FOAU zIL*9*UHkEW!R5`%01Dy8Q|`nE4pS#~^WhX-XYN^-cB#Dh^Dlc!5S!L)i$eN78_Q+V(AG*Eq@N=@-nt(z!c{>C4b+ z5&P7f^k`1j5NJ{)QPYRei;Qj8d!+Efj^;2CJEYs2-hF9NUwPFO_7wmzyLq^zV8#7v zff70Bd%Stk#p2AGe2mt@_;(>v|J&Tu&@?u#r*o~kokc2=F2=*a;cGg$$BC>R#P zaP2BR;gSY{2?v2=n01bw``|8sJQ-I*v|ym?-&6H_oX*3gvKnS+QmjSu z)Tse1RSlz?sWigx(XVKJwYXEjCoT<6vnIRQVSofk@<5JLq*;=6((EZYP9vWpa6Fsi zC`=+z-RWj!DSJBgevHA~cBjMyF@IKcb|(3wAu3OUVPT@%E4lHFTO)E~?%NIbc1ET2 zY6Y3<(TaSyO-C-%YKWw1!PuZa8TtZBxG(4TfEX|h>eh5)uf&hJx2EYGXRUJ*+buCS z0>tJo+R$%fP_&bQngTEOF~6H3EypyS+$<%j%0ai&i5Vp$-=kiwu@v(g;eP`vvr$J( zId>Y8G?e-mn0Oyo)B9`T%Yj2nc!Cx;pKkCLw1olW>+jxPs?Q2;nu+tsC+K8yYD@so zhN^5|kUErLV;V#y8?&7Nm*{&&VnW_K8m8UZO9r;GRmm5a3L;!aF;tWk!>ZdJQCpUy zQqd_#{2X*yTMfd7?lW9iy?+@gx2ebId}YigLuJaOG5G z730k@dEgH2_!94RYoF}UB~DI+`rYyTq{Zfe`%uN&PVG_J9Z%Azx?)3geSOykfwx*g zp<*0=W?F>4+?wCaiOP6CQJix)>{Qt}Msxn^DQxp_kIpeK;ieRY*?%_{<(Vjw1Z;5} z)6l@wKXmFczj@i337Q|R{LM|DS~HPCO%r;cx5Xw(p0&H#BrVIRk&a%*=(svbnxt8+ zyb6HFNAd4)laX?c=C*7A!tp^aMzY4KpVAG+La1&~Hh*JHu15rA2ln>fMe6}QpOjy- zApo~8vbV7BX=}X{$A6_GV$R9kTDS^lH_P<{+;8%Nqu=y+O?dCkujV%#`&nNv?oIBl zT|8N3m}fL7C&DW8m{;$XxL6+Tq4|5!)NC_fO>dy38GYcj&q=!zQxzX(8}g!)`%*pD zx?HkvL9_bUa?_}V8g>ac`z_SKOZIr;Ch&_TfR8EXqPZEl#(!pu)$9TBE|?Sb0(5J) z@C%Vc-*-g>fzc@I7P4=y8v>i_)$-xvb#N6Oj*RGRmBhZcw{Apc)Ro(p)Qe;NWq&d$ z%NRSS=%kqUu3XRW1(!r@G-;EpZ@3W5pSxWMy$?&Y!;`%aVA-MQfbPB#CyBDJv#K*3 zXIV^0-t?mDQh&_+hIcJLB97s-ulH#jEGau8&y4`#!wLapzz=P-&-5(JDk(MYxQ_QhY|LWllZeZpBH^tdVfudLAK38YHY}NJHzF2g$U?$ zvr8k3xal{o|A?l=`1{Ddhs=>Hz2;E~lHRpMN$0 z5s$(9LIv1OTtDuY*v8s&#BW$7LH z(ZCbm9f+Np@OH-vvviVAx><}{C+%iAH%4e!VCFZrEfY#?d3y(&{c1W>*-jiL_3>}Q zN-gDM)4N41#{Mz;Tinb6#pAaN>dn5{)!zW4b0|w)`fir{yn}9#f9y*88D+TAA&li4 zc{+g;APt=Z-EOxBb$gF~Eeh#p4ZAP!YAx}Pjz~5%QoS&E7M_pU^nQA=fFor;xL(gu z<&Vcd&hN-^(@f9_Z3jsoct0{fc*ckXI_2q~wI*=wNK;=p1GhPg4W{R&ifYjAAde#^ zf^OozZsD8XFjdHpf9PCKX5okG8*0G#&?cJW{IbMa{vNcAby&iEe(hsm$ixmbENrY6 zFZK4-;r(*Fv5DPB`f?J@=?RV$RlJvA67K+`+Tf$xmC0a|hE6n+HA-%2ixOwEn`UF` z+4AAW*43Pkq6kOiqJ(4=Wt&l=-v+S;*AQ&Ky3%^QoodIGmjF zqbFr18}=j{ht^C-l5N)2HmJl$@q&T8`Nl#Z8+;bsu2nbjw^XWAQPkh-gX|ECMGoGDGdivGe&j5d)2NK>=${ zGi#wx?jan1Gc1T#Jm*QzUbPMuly0IR#ptyqL!!{@fA5fOZ7=4vWX!OxTNoyJk_{5n z1npK5z8cKy^=%|0Gd31%Zt}-Wt((n)l74RItB*ieEe#$KZZh@0jtei+Zq=DoF+JT5dZ;Pv!jbG=->`L2I=2_UxqIRER- z8V%(?(s%GaLq4a_sDIZ^ewQWZN%=a>U$@);TgnDrbt@S>vYtJ!Qr4d@XGko_JE(Rm zge_ofiN|F=a!Vwnne}2tj+g#+d-Hk#T0o`0eGhNfn}6@%zTnc%?@U}mYEPXm!c)B| z&5m{o_lqoaKyAx<`VkHo%0SsHmp4#49H>U@N4}S3C2wSWS z*L1H*$5d~c|8|dU38xHg9bSE;+C0F!gLCnj@5p_+ykkUHPtm%~{b>~`!TqtKWi2HR z&j-I}1AmFd4bkRXLbXBJDT=sUHZ$!+m^1!dl+hsVPwLbaW>n)eD+^Ji<|M1VI%kka zN@=Ntxw4-{N4H{o=VYC}*Yd4wMMaSXbQ3HmiBDp`^E=ru!}*;m+;G4d%?wajG>FR3 zJs8ds^fl3Wj3@#Q6&{Dx^C3#P%I|2c4TJN;Y=5=54{Ac)QM*7&5I^D(>FnHIT#B5_ zSFQEK1-T=e@nG@V^#c;h8vaVl+ScESm?I~pt!eB5XHruVB&dyDvkgbN&I(50fS8{a z+Pt2>2ZkUsE`=U#+A6Z{E-EXmN~^(mP*A$SE?H&~-7ZQTBv`o)u`wmekLZ*kN|cRS zqsGVz`mL9BW@Dr2byVFmKX(|B^JS%?QRmX%@n1>9tEXmMK|qo zrx-NLK;-*&y86|6i0o$dkS5rq5$kz~I~8csQ1TR}YsHs^u-**|ukWIN59UkR{gzs+ z_N22S0F1k|taKF3J4I3mX%&4lM7=-FX=NNu3neO*fir(@MrS;fMFm|f3j+|C*s zhD(8^Kx;aiLGOd)dWN!Qc7>IB`c!4j`B~Dov5w$)ggy#QVQbRca99@Lu^Kv?eU2yv zcY+F660f=pAWm~P|LoeeM-Rc+YXm(>6@H#OMIlbvPRb{|(?crN17!50pwBwzpBn8w ze-B98X@LZV&J%+4;C3T+rN6CS3h@(wzE?a*3o{u7)yj~7;T4LiD_7V{>Nk=q6q(ba zQmAS~9wn#TTD>K^V&SpRY1}W~iZd72IedMJC)g_=0gAm#a*o|nw+?&t<6H=dQxQ0c zD&|PjaoV0l)oG{wvOQ*pkfxzoW{Kvse{^VQr*v9os`sWlK5{rh5Utv(8YxxwHR?zr zLBGY8s?Ohgv`1f6eR2 zl+hw<`(RGbha?mY%UbGC}&PBH5glv)Toa0(C zVmjW^T^s-x|8NjU%h3WUp zRp`D=`h0%^jE8E6>Uy}_FSo9`D1Gy!IKQu%(u?7kNe5`!X~!gqenZn>Zp{;*rGNCw zQniC*NiI_)f_C;srFrXnQQPyq5X}@*`F_*7UR)xq*t&>#rAZn`6;NN4yLwj{$YhdN znP_lvxLBm79PG_sQ;2xjlD}Y2YZ+byV^GD zLD}9%D1hj1gp@k?ee7ox_Cx|Ej(LO8QWYzyoo-h97-r|WtH*IL29;ZRehdfF?oaaM zM_+#w>nN)v?PN(ziCuvJWJ(F74K87Rb5y$wsDZS0D8n_tXm*~z->9pHGL!EZvL+IFD{9-Q<*u}2g zgnz~}i=-TlV@Z38uz-y#8-IRE2%O>qT34&(?NeZ3lz_}eWjl*&um6qo2~DKhvgz$l z`YMQT4{4;RAv8{EBFflU2do-DL_|wu_Trls^ws5xY5~P$$A+*nkr@3T^6pS1-}byY z#scB1Zju!;G1)D`h;Vjs5^WWauGavexn*qu4?Aa;%AkW)ZWD2U34f}7trmbqfdebb z5~hMfaD0NKHnWi09b^1PvXpJmcgyFkx4bL{kd8Z}_KM9 z+6Fx;gIDKgsB!k#4j|c89;WqU=)v?KfRP%g)rW zE>_bGT)FfUgc1EjYyqhN2!+pH1Yhv%<#`x`+YBOot>zY<{eL1)_$3+qN!lGwCPh@1 zsTnsDwqal7$}66yWm1{nu)LQa5wfdX&)8})TYUH6x|4-fC>5vijM{9*>BaIBN?b7$ z4d2o11z5?lX&;xv-YvJ+B+Id4(k0TtWLS0vF$rc?g0_H_^`QoS|8RGM zLPqwggvA@GK;syUY7D*KM6hO7L1+gYqY_94MyIl#zNp)WlcP>W zqQKJj2Y-lbkzx|sR~Rmes=x6Uqlb=G14Ny%mwjCM)z^{2W}g9*!S3GXtAjhTx_6eg zeL^A{fdBXd`o)TWqSum;vBrkc7H!b|{`ak)fAy_PigMmblg_qvNn_jY85fP8xpxHP zW@7K?7)W>Zx}_9h8es7qyNpPX{_9*a#s(O?WwR88!3TC{ zcYhP|G3od;H#}agtU@31@Q@aAZ}c*17sIqOKr6eW%UP+5OWw==DNQ|>a`qgGGi6L8 zgRX9HwrH4cihmOa>So2T(+LJ>s4SU|kG8-w>bcA6xopp=y5Mqhn3uZZeFFBDdJ6A+ z*ZTOS-5di&RA{Y987-uy9-QW{_0QwM|lYHMzo7lYfxyXp2vAb1`P=Vkryd`gdRWCe3DbJ~)kvtn)-1 z?WFB-cEHJv^fmB8SgA83PE%m_pV{dq2G-?pG)nV|xcn}hoaA|TL>`1jNsJ_s7lnQy z;6Y*zJ7JP0enW0k1}pns>t+-&V6FPYVU=`ZI?(S)>gFvxJE`wL;cb>Z`hQMR(QM6f z>-=Wo>YK&pff}`PI!-vim`t)PO$0mcMcEKgVus@iw)-I{?$CvvhjXAzWO)Vi3B*Rw zdh^{!^hjZKhjgx5nIR@(k%03_Xb1Xp?(5{n7}7%FD+(&ny1?vtE?q{ntR2#!IFW|r zZjvQQI*}J0U5$8 zp6$t49EUt9hO>GL1wi&2Ayq(Y0OrxKYuR}JaB+joB(1PEgiGBb8<(7^1oPB09GTUSzE5R#(y@8)Q}c1U`zd>`GRPPneYv$=BKz9LKV$NZvMjwv0EiT8-~-^m(I5a{US$q0%7h^F%NQ% zkkM)%MSrBbb5mQn8C*w0bNAt-gf$j%V|6(g^t)+PbC^9DjU+~$n?5I_*%~WbW^C2y z#Atlwq?4pob^_`1HGja%QNsY1Y6j%oc$RmD{ZZOKfl>To;O11kopKSrlf;38j>$H;`-CZIS^*vb*wD%FlLFp`Kl2!e7pV>4ka2|z& zbT{S(2Frvf()qWxmS-8Gw}`!z5Ea{wBdl&~&aN$AYAA_&Z-0d3*%uN?nt2Ni4C5*| znFJQaw(DXTU%JDj3j4(@-JkGaySVJNLJc~@@7WDp2-&dBxO=P9D>R6vv>G-=H&lVb z+aCwq=0Ye z?n*eru*G;u*_9o%B;z7yt^Un=$q$JO*djBxSwm(c9CMWKPqenUT3}o#a_``OuUF&h zF}WPQa7&a?*f?zWI~^Y4w96m5rwkfZMR!bU&elhtCher()nrib7yF`hw$aBJ)1hc# z=MghUxqodUXTJ&N+fYv$V4(wK?Xq7fB0Q@Ri{hwtxqN1UX9LT)oBJVXqWYhZ28dtyAL)=%%#+anN%Fd76Y` z=@=T)dLY{(rRj13QHo|}lHhN7oEemw4J5wqwtwNofGy}`CM&z$^)rbpl8X@!2mvn1 zGxUO%Fka6|9&W;+-7O*d&QuH4#eYNK*8?-b$`GPdfr5|oJ1&@G9vp;XKPgAu$D=pe z@r?#@%1Q67$o`%GHl=aS24LJaS2948m+^=uw;h?u$z$nEPCMxnW`pt#7@*M5xRIUa zyMJ`w0_>k2mm_YHC0y3AYYzYI|Fie)J#OXLonJ-pAG6(n4#_K$m*nNuqss2~0LhG15+CQy^IY%0d-sPA`|pAz z+(n#6>pvH}`aisj)>ep5a+F4d4;ZzTeSgqIX5+i>e5(*hkGypJo%h3Ejs4y1fd(jD z_#`foQDe{yTcpp!9#uVy0ghu>Z-ROLJwzgjAuOWF{Au~|EX-G1(}$x zEu(UpW;yw}&urGq=Z0?9Yni~?fH#VsM!@xIafK4>plAvgq4E~PV0nJT0&b6))5E6w zIU-gb2In9|EZ{pDp1N>i9o(zJe}5)R2SVy&j#n_kY60BvyLB&9Y|SUFy>Mt1`@3x+ zH#uaZDJZhqp$(MVR%8vG%r-xVj(R+8hE~-f>_!kf ze(WU}C`juQDHx_NLwlW&x!Sw~g=h}G8O@s{LKb@Y4RL`2x_zd2de*?qaPW4ZPF?(^0)JVR$tQt z2J&p4f3soGUOx^fo(qHyZ;%%GLaVst^2T&Jy6uFdH=8A6l(L-NPMD6<(cElg1b6p% zCeopt=4GpjAr9tg6+`HGlz$CMWUmK$9;JL9t@tNFnQ)Hbs=*&|vViuZZdxXTK5_{3 zB-^)-S3(sKxxIbFaCQEtg*#_)PhswE6zRxrOs?PIGR9T)-ytg+e{-WeMF~rpWYhDb z93wR*g;{zcKO$MaRkA?5gpw>D_e4&weB#+9Id3iCg=|Y|@3rujff?6(j@gYE9?zQHJDeAD*-w0>~ySK4OKYGup_n@rzo3PIXq~`wlPo zOh?mjRU0G~1k8QaxPMB_Q0E9f0&CmH8b9i{>n4byNd_CnG(o{M?S4AOPtLCQ!a~rg z_x=U((LW>s;fO;`mtgl%KJd}HjJ0*Ok45i%uyFL>_FvT|h9yMNkZq7~R7Pswd#F??he zD>CL{ei&DGL@GH3<;(&J=7PNi?Zuu2mqasvwojv)1EngGwbIwG~I=at5S}=3X&KFU!$%KA#@ZRa|QzJ}tA1`+sE|a*H*`$FniGJXQeIt+Z7$ zZkso3g3UidNT#KD#`PYV%Ba&o-Ie+mw@%n1p%xjb zNJBmKRBqTrHKD@9P;}fW$q(2hy37U^Z!{`4|MJ2R3Rnm0dz(#i=;eu&HnO3P8;H{#Y`+H@Anbo%niZ$ETH z(_^DTn$(EwRCKnda_Md-LPl4<^^$rl(gcr7P`VpDQDQA0^=4yozc-7umc(X$on@W; zh~&((Y3xy67O5ypIG34r-_bh9Ao6Z$R4Nnaw|}0nlV5hmn+@pUoH$iP#MAN+h#bgVSxw3vr3Mhy5G<1j(Q` z$1tYQG7&#lD@vdo*7We(j}dEzj)W4}tr;zICjyi`w5AhP(M^WBWhsf9SRZQU(*@Zf zJtYR#2>Mp+5WxVA8`f|gLaf!Q0kxiH6o21?=5f(S8zM@5`K_Wk05ozP^SeC|b3d9f z1N(}E6wS63#jXCpzc_@ZH9XS6O`=vlhno_zaxk5ilMB>(<|vVyau4UKy@LFRKy;D` z+m7J_7zqqyiX{Ly>_e|B)nB7hn|_-!_7F9Zq4W#s%x;=wg=l5tGY{$2hsFv}<$sRD zL8ckn$4y9OH_u12{t=E!amlZm!=I9RG#La)zvHNqkBi~EX`5R)8+2kNkm+PN6#W^k zuRFItWCHkT+LCkDwwlcGQNMMJt+7#-6$1(&>t)=U4Hzqt)dI|rV$C3O0*17r79I>W216g2Ifq*Z=KeU=or*2aB z%WF;CD#*s7rlv>K0@|7(0EH}1Z3(q%?6FSOEF@)^V!+&c?%Ejvd-ISdQb#jBqev!< z^kyjoH&*E8rnU4&phsKv7&)W;+$Z{=_$$N&U++Xh&NFJ@^_($CLUCsl#eX>nW5JcQ z=y3B6w6uY=!ACqWdw&}Ou69NbAmCc2zF4$A&+iQ4N-k$oskVm)4ySTB1^SjaCR($- zGH&ZO$ns*=8_lN|NOK${XufUc^vjP(K%HdSpW@ll&Jc@%kU-@~$o=O2pLP$+>lHdb zQ)3_Q^$1oLq18w9FRJ>71%KH`@N@GCTZKvtBCyOJ%_+Sfp5PJ-UD&sO>}6|$A%qU! zW+a$2du%_fySgmUOs8p*6d@1ZOVKhew543clmXhxu@tBlplfJ9_lT(=jcH4$RRt!r zbv?(bVL~mStrQWO)4@gHI<@*|>vlQhr~z9lhWr)uuXFKf6KiQ>6YooK6ClcZ5F%+X`LO#2t; z8=lQGG!Zdih{p7&6@OsK_=GStkuHx#c=QOX8fS&LUQ9})=CxX@&<0yvQ_~*qB-A4M zCfg#Dk)Y;79Cl%2G9*~!HsCggYK+%f!bK91?1^O zlE<@fU;sbV-MT_|=V7x$>N2|d6ZK&1Db)T0c#CE;;pN2d{K_6iE@T9516y-$+hK3k z-+@#D4Y>;6LRV{2%_C9Hz*1WN8#M}-HKCNiM6%*~vjvzQHptCH>+mPJ)3Hoo8Os{* zJhG5%QUlR$Hh)U;aysc=BG6>YQD!5J$)8S~>HKKp6f%|+i^4t672#WmFZy%R!4^BQr zRBB<7^!t4brh|QU<_LW`&tR7ucAxx+PInT!oZ`Jnihp8+7XY0hmN=VHy5DlKI4Tf- z)*Lk?l&SQ_rcP6BG#}_M_5z^;h5YkEPc?5?^A4FO)_p$i$c6XHq&)SXpW-qS-A!Q- z)SxbtJK1)ydCrEVd9`NPxRDXXYrScAHt&zW@|xnj{jjD8LZr>8#Or{2n>)~c8D>)i zLZqvaM}NRd2~xjYLai!TQez2^Q1Y^*%~2kPY;eu0<3wIkvL3W=03FA0p|-y|QmoLb zF{WBTTa&3PidXZr9Q0=03q&;>MUaz0uPEeWTpaPQJ~2g?DbN^vphl9?%#rKO9c+D4 zLDKmX`n9&1kA@FXhtNX#BuA(&(en`&%Prxwy8>*PRP2m0uIvqR9H zkbh#_88#a6!~6Bkt~(6Z##d#<&CS~T5Ea^pk{g)XVAsYv`D+MYu0|4z3RV8U*#<>xD->7 zjq7=?^=*e(!d_cH%OL5F=W=A%&>CH2|9>u|g=8Z0YEUsYBN>*ClV<71%}Wg4XY9&Cg01x5>W%cRdGLWgiuijk41?jgK8 zpUiFgR*EVit#2i!FlAYZDZxfFM|LGaa;$E?e}SR(lxh1~Ye6adR$AR5tsmvqk7VCU z8T1k?HyrIq0kFE8kOi|}U9D*FwSOgzoDC@DO3uG!=6&GdI@~6gvigA`%1#d=!XI$g zvOnsfc08)e($tzws2y2W@Ly}XfUp$K{jRPo-$xx=hs4fNcW4i0@MQ9nj!E65Tvc378N+FpQ;gOluQ|M z`_M@ve%^FUyFFph$)Y3G3g~JQPy#mg$KZCoP2FA%DP=Bc()*c<_JIAl0);EGjAai=l}2owNw=PuOvFmKGDdKSSaG;)}d# z#}K40c=Vml(Q#E@&!faGi7Q|9vEr>)7DbWsQ1&y6H%G@+t$*3*vxztD3{LUZl9&U^ zSZLnn{c4)Gfld)oGCI7v2*7={b`(UOWAFn!p+dErEvQ;FbnFts zeMuDJv=Dc0{Do~j`Oy=LE_F6R#m$XN+oH49YV-5y=gKa1>Bntgwr04TKu}$Tf9BoM z5dZZDlz*$Z!) zsLlMkc)yAjo>itDk>N<^4S2e!s_g3jB5Q~><~cgL`U{B!(3|hjnq%xcz~G=tC>GCO zTc|#m@%iqkH|_N=5ZaJ+{Zb1v&uFFoCt0&6l`4GEEmWl-3UP5mQgZ00aB6eyTZ74< zq0#d+{D09_QlVYzJs;dznN+dU?OmcG{eq<0t|HwuS)1Y9D$~FD$)SY=6^n-lr6+^ZVDn1XB3g-*o$N`C`b8 zcTenZT1-Y`G&7;W-)HvOneD{RYUTW%Rfi*iqkl2t&Qf(K`V~H2tykBU5#n3`d8{&E z9}vn-Z#75M1Z_4Sq~?`X zPeIQ5I`|rWzB_vLTl#LRFQFwrd6u}ZH<8j8X!blT9+0C?WtOq$K+9?2ZwURM+b^r(7Ff7|7W*+Wrs(3 zI_7z;>EqM!yr;;8JesP)iV9OP7pEwbUTLLg3an@?ht8zA7Rb7K=I*mP-IxIk8SiLj z=^%aUKc|)>HZKH>zRtq_vg5G)`yo`Xlq>d6LhIN1HEJDX>~+-Ev82$-j9}+xLw`$J zv9Z=x^c*zU?Copbu+>fJ5ph%-Srl*C`56b(E70Hdw*j^`Jy~-I*c_VtixTGT+!%uC zSh0LmTvPbo{(u94aD8&?xiiUdUV1Akg~ld8D0NhJS=|6#Z=@ zIhbv6QtJcN+R%jvzWL?T41pMToC#I^HSB?u4+^%6?`isX8hq$Gn$SAU@Ny$4%0pF- zl2O{lVEV88_h(t-)}H?Y9V36c3>XpuRu){%nh*T;s6L#Z3pXJ_4w0CYTKt?@o5=>5 zQtGib%Zlz`Du(d&Un$}2`+<^yH_6K zJ7{5bx7;tc=V~jNC8KeFc8O+uvJIh*8?7^82sb}gefYk%l{|l2$)V^VNd?%{jx%vRV_PT zXXC*<8_eYN>LDCNzI$>Al^Qwv>=2R(W3(16#RP=?@RtXI+x8LO9n{sme~)Tj?goia zJ-sQ6b=)uAE_z~(W`me&5vvSIKE=&;by{tbytU4aMVU?e7i#L06%^CLC1C`R1wq#p zmV`tR`MS_`L^#=P=YNC&DI{*_=qr*E?L%L%t{lGXTs`i&m%swe-L7PksyRx`{(ZNc zmbv)7TQy*Exp4mP%!S-2LwO=Xpi^pu(^9!<*pX!PSz*UnfzFAKx?LeL5X6`U@gby+ zfhq=eRbelRV2#DxP)EnSS(?pbn&!dwAcQL#YGM@g>ugdy4}YUX`Gi9KVHWoWAWw1@ zX$4rFPpkdy25h$=b7#N0e#8XXL*j|e%Mhb_`4;6ZiGjH6W>MJ|L|4kliBT}Ua$M$v z(FGhN)`VH>m2l^17fC{8d>Q9LzU6~)i=t=ic6riYSg^lhW z(eQlyV*J{?mV5Ybms(|wG$HM-K{ zYGGqHT0lDRt~YC3_|t0;48gjK4i$0*`Gx&ZHA^+1q3P?|(jK}&DdpyypI>+W(OKQR zuF=F94l06(rylb=eii=DOPtUxk%ZUaJ1;~CFM})}9a$d>xug2v)6kATx zY&1FAdVhU3iuI5cQPmkps!znJsABFkWlSsD(7<3?N) zJJs0IMdu`lYi5XhzxRvv&Tr4xcJoLnDT^;dFSG4-vlVcmAw!?G8(8Dy1MzM5R8pCo z-(Lmar`LuF{A6<5P0!~Md#**V*+Dov-#<6 zvHgjYf*?EP%oc7JB!Bd7bB%tCcxCqnY^-^IM78Ux41s`D&h@0oNVs*n5~6T z?grE~+mWP+1_6%*?7USuvz;F>unVDv6@QP5vQ}01GiJER=^xI&^~oMRT+#R)kF0Ui zM=}^^$R#7Qw57XN5VqxZ*Iw0=Nijo@e5uz&X3eCV^u{mvQB42O1ET38kMv{jbv0jP zb&vSL5_3yLrJs5#i@|@-FhniSN{j_a`cE}PEq|4yuTqOjm^M8#+Lmo*sI4$xo_{C3 zI48w)?w6Psvs-KtpV;UH1YRM^*6<*mpsgGudRQwa3E;o;VR_G^PPsyaf^v)fBPti5 z)8Ra=C_FOJi`X_qJoe86-wmMCUPWCr4)|mH=Yc~Y;0k{oUY4JBF>cT_$@iqA@Fs?WJvm<-f4HeU4LD{1Ov&s ze(w>)Cr;}u%M4D*ZttlSP4+73zA9VXuZ5y{3D8M3PDJmYB_iaBq)5WeF;Y%?lNhzb z|KYlk#{fagakCdOl#USBqDJ7T0*2w@y)}giQ+ik)~OZA$vg(O?}dk{?%-n_a`D@WRKJfE+fS|?YM!=hge?~K0MQ; zWF!c6F+}D9Pr$6~O|1E{tn?`~_fqvK2CKo8>!@kFm|^YIZP7=N9H-7Me|bOD-X z>0%0?AQLrT3$~m~=jpH+k72pVG$Qvc9`9+4BcCe-4*fJkSnRa%Zn-B~)?`1KzN`TD zxAtO!^Q`nR>zS=@;y!KjL8k+Z0t?P%sRH@0I{&=+wEVb)a}f>S+JJI+fSP?z9s12@ z>D+7({O2S^xC?gg@qZFy=}$AiG1-&hOP`o@BStVY-0MWm55C=gxd62rYnf4ex8ES` zchh-RT%aOgfWZwTvrmouh$!P^zf#uKygk%(LfKcQ|HSkwWqh8xUnw|1IOAjk?MKqD zBt2OCcHa-*k)`p2vWhGsad~=h0k5YA=k))L3zXg1O!91&j(>YcB<%?^!0!ceU~`h@ zgPG8<0tRjl{sA*%)!16`u17YUCPGN6E;=7pAD8z^z?j4ze!%8~WQ1me0Xa-IpM{UD z&a|_lEJw4@3M}P9OHBL4oTs}Pu^;gvoy=qPHVqMNzFWPyM*t8kR6^H?*e~Me3bvA@ z4*2mvAz1%4%YX98Ac$TfCYgE{I-HK>q0>B7=O%-;d0R_D<5{_3vA(&!e%zV~w!nV~ zE51_;_({?VP*KbA!O%U`_e2!yk27r0jy<` z#cZ}pgU=GguR8BwU{tc3(iz#KvR#7acaY%gUuySL^kZ|?aJyXNEVWKX`u8L5Y=cw( zxx|P1NKmkbq|3-7uCKVju});HAY#U|yql@o5qKm%ELcXsqj|SLF++uMYPQh91AVu` z-0~PNXMcu35tC42J|0 ztp3eC$5P1Xw-}WfS)`-uxPu{dwIu%%88mfCYo0fsBj-_gMLg%NDei{zE^cnNG%_>)@|lv^pNKI(t#&|PW6yGV zA;QWzFxXt{-@IWf5+}obyR7`oig1vGQ-#`yRE*bz!@On7vn5_ z9oj|&JYsWo9%&slimsYND70O^r@;5^cGkxp!ubZ9j}QsYE%UJgcKeDhqkAxnG9+H?WXa1D(}r_ z`FIp#Q(8fzCSH#<|R)8K^u-KvV4ly6T$WzW@Ym;yLrPJEd-c~GiZ9Y@GMr%#4^ydBCFn@@8P<4~hD4*rjj_2IT^p|sGp6`_f%graB1al{O zcYu7M0L8aMHtC3}V@5OmH*a6FK|=IT+2%;SFb;9*{eQF<2pxbLk8tWn)VPyNpdg@F zEAKKwLiVMUhKW5=E2v0!A3x*Hu(z8cquy-2X@67}d5m4zQWwrf>0rh=DSuQmdRATd zgyKMp9(fd?8~AQxRk+Hmk`W)}k!>?ciV+fKn8Su7J*Z8JmQ8E_HpGgN+X{kjzIQ8v zx6i4#%f6!CW@>FkKN6s4K7t#3QCcWZipeBTE>Pk5RSUh|JuI%5-@o8O zgTo|b;fmZoUW=BZqI%KC*0z{FSrs9LXCJxuMMO&MMZfAJnc%k#D1Tc~maFQ-zv`o} z`e;A=vh`6in@)QD?w92ue8N`|6?=})>?D!x@>lma%byQZ7DIx1gv`Eau!^=ZUr{ch zo+ConXzP03e6_cMT7VR#_H&O1mUORl%h>k|iCH&<8ax-xsA|KiXK|*S_ed(~F3y?K zy!Q!aYMG0$DhDTp|toD&R>hcD*$L~hS>gLvEpI}I^NCl z8Uq=)#~!-$-z>MUI)Om7wt?F7sem2|V4rZTQ(<|#__&ngdni*G2G5lox23ADnGir3 z6`hE-1IwSe$bZj%g(TukhrPN*W%<^nhV9Go>^bdxI{D^LRdW!^V6{9!AlwCCCgmcxDz-p0@TR)QB z4tVg9bad{AZ&bx+=N)BX+Xn!I0!1rc2Q$X#9o9|!rW(g)o zO)ij&6NbLjCKDuE?jYZZsnMQexqXj7f$02Kl_pW{#@%kY{wVYS{+KSf43&6Q>8y+!a+nfPM$9Thq3-<>l?C@7UUlYFm@8&%2&N>1 z+<>~9c7Mx3zn@N$3mDB|=s9WkGQ&11tQg?Xl(~@mT7!O{wj5y|#65b$zV3{^iy91p z<|*^RG%KH6GHf@S_h=~$?j}0;{>2AOs$n)3Z9^pODx=u~3^J|izXm(%zjeoSzy+XT zL7Pa{C+b8bV~38$+|V@;q9r8}EgSne@jWq&ge6XV{I0!5oJGD;4E1ql`SKC0T$ zU}<-|dcaO^AC}iViEzFCMUEWe5k6I8+R*y>x#xmtMXZ~{KJtqNPtETg0#67ZMDOLK zTl9m?ttdZ_&G=K#-3qPWh$eZw@!fKPx0aHn_aaD?S{cGx zl(cHFH)`qkpOz2;p?k#$yMX7{u=txOEMom(t)ZooQKyOIt0kJ{#(xyJ z_D0>=bQU!gv1J10Z_tVvS60j<(u(QzC)s#JcK`FgZ$5V$aZ*8d8VB8cFzru@Id!Z1 z3SAo97gC4Q3cBMs=q8hNR!)lxL=zh%gUg1tE%4TLdha%sLAfOR5~|1FS~*ho4lku$ z@E|@_@m)x-uzyEc1TQR~@)yiZQNo6q3E8&15gmN%wj z56(0f!^S;&-(kjiXN~r%cq(q>24r-8rKt0mf#0N_{qIkWz`Pm$;V8TLMfRIhQd#)gOn=UaaDt%}>ywOP}OV7_se(aLbw1nFU-XMG*%fc&wX8wIO>Pj`M7i z7X5tus-_IF938okhPQ`IjGzOzrr2@p<6^&#U% zxi)ASfQWZsZzleQ7A(?{Lw}7v4}aI(I1FWuCJMJm-R%+s;BHxV(|j7!2&d(neo}V( z1$PIpiYlcsPfrgC;2*TE)T{0F;~k~uBeL_d^TD7FEsj72x3-YSO(jQO5!~y(U4HwZ z`*64`e)A?i&t`>vLYx+oT7WKOi`LHj1$@(Rp3?9tQf$OP%Bc@u{(qK+)59NngGlMh z21VfQc8{pmVICBDz+VML=crqZ2WqOA5#EwyM-Vjj_b@7E3Cwg9ALz1U)ch92;fZlw<7{1pXbw~Bzd|D!e=Q{E5R|DK`{!Wp4 zk#!LoI6Hq!&$q-UXOn4?SL%t{xG9Bx!ikg+LaGy3jr&*(g-*z$L{?%9D<-smA=V1+ zsxRb0`YqKqcRY<-BDOFt#^iIEb5h*R&EWgx_!~@r3ekWP;g(b4+A+{$G$T z_OQlVPC6>-&3~sispWSw9tp@)d;hpz;{pD#zxB81sA;>})4)e7!+VjfOV5nz(CS&L z-)eRLakCcD{QLJIKpM2dd2-0u!END3q}!^wzWf3UtrLL|j8hJ+kf)g9DqGzS?-u0k z&_*m%>I=QE>7Bk>QzpSCv{=M(LO(aoB9f9YUL*Jm@qfNy?sV&h;N^`69NkksF~j_# zAJelb96!4adb~euXdYVCw}mr(9ysrZ8y=&HtQyHINL{3ce_DZ>uWuJf_hsmB9``^% zl+Op9kEcbqxIn6DH_PYTpZk#LD?cLWJD-yOjHfxsxf=E*=P++JKiw_1KUq1uJkLN* zD0_ohXn$Ffl^BR7tB1hGg^ z9Y)XpO=WVi^KWu#*Wa?h?~s-0AEDOs=No6`tUF3`YRYxyczpqm8PGe%Nd(F-Wr1sJ z$W=i`0gkOFBMIfZqlCD{`n1JS7_fg7*^NQTkbg~z6yO&-6Aiq@yyb`5<0x>A;PM*h z?1#{o%dLGad1w3McA#V(g>K;6%^laGBQq5aW=u-@xDr`zB=hcPYMQIexS#v= zTz{tHY1u6<&@|`>k#?Efo{x(f{uMy$E*g)@A<^0SK1g+@x8O}}X_=jiSz1v0pI#$_ z`1=?AF8xQ!8u^9&@P&al%}a2?ns4`DaNoLQygkS9_e1l2>n72pOv~vkzd#_Mfkd~C zG6%X zz0i&$)od0cKxnTPq9lM*Q4@g{Vhce=6=9^u)e5B$|BYDS{#A#AlB{s6XQle>0)M~U zu0&3@thAs=A}n;og(%u2Be1MZ5qN@f#3wuaMWp!KM>Zw6rtzf|y<*$Wp2+h_*q!!b zf%}v0zGKG)F2CD6ZV~Y3JE=G;*N6BKM6@zSdM8Znz%Bx2uoPOHOhJ~gvPVMu5(s#Q z|1IxW9ehz+RKbqUHXrAsL=N_AL4SXtyTE{SrWANsz&nfuP2zu3PITo}EUkVF9F(Ut4WrJuAJ+8j2&YAPDQ z<83ktHf`E2AJ!;D)Y_UdLhJx-K$5>}>4%exs*i+dNypi!Zw&d{zTN+_2AK&9hD?99 z`F8PvDxPdR29qH}`{}@lYH(Rj($T!&cF1Rbc}?fZxHKcV+Ud58{2?*ddrU&zd?GKB zEVk_IZa1F<#S00>B+ER=o;4;3s4&Pp8f`=FyCqr=-&EpIP)$riMBYn#qkKd)yJx<> zysN}K2fDQDJG~E|uc^KW*y)0%wMu_amr+h8`Fw5@^F0Jhh?=M4?o=BaS=-5z4e}iY zx{d$%HmR-XK07@r?6d#zk3?=A1k)Q>@=P&(_sLvP{kZU5my}acl%p{vZixEMNC>$0 z@xB0AKhsDv_FHioX>A)1>N;1Tv_~cV4Mh4bRa@E(sQ?bIE`&pZgHr(<#Vmh;CwI(7 zK7e0G!_~LK_oyHF`L)*+iNcTj(cV4vY%e>%oOrPIf~$64AKZR5AL=2W#C}1xH=gpW zHVyaW_((>Be2j)}G)K8DKZr`-Rxy+tz59>^ay&i9ulrh1xai)(G!>Bf(fIelq_#l( zLCxGAjiLz7$0;KIWtrq-?rVSI7Uu2)x^zZ^5X&1j^0Cqlw8nn~iL7bm_$xFSEk`os z%Y)kM{3jHjk2=oFG17|hKJAXDMYkyMOXK6|%%$1e@TVK~u2uizKMkz7U8_Yo%O<1z z0-e~*lx%)d^ztklOvyGyM3dhz52}UFc$y7L^ipen*(AMWFrh&^!X$sx227iO(Rbtx zMR-)g?{@X!c8&i-^jJJ&;icFwO|yB2&Jce#)R(!#Tl}2}L4L|_MDlsa6*o6Ge_njx zHF4b!Z~q&A`1JjYBu#UEXx`#~qkw>Ib^5};LLZ=8%jN-}=i)2Kv%kd_>YrDe{eE+I z`1gAGUi<4U!okZe+97|Xy!`vk1~LBXpC2Cg{7<^dl?Ny_r$5VMva5km;iiCetBqpmv0!*~E;BJpR35bzZR zKjCFDB$s6w%tt-+s}jysq}1FabJ_knv!Z*`gGbW-5wKV_5xR7I8ex763kw_*-lC6i zRRbC%Q9?)6!Qp?tGJBl3{SwttHZF))cf;YXZR92!=%THZ|quRBTiWd|PT5EczB>dk*#io4|P64A9M+RT0B&aa(d;<`kX z&@{HizC8oX;k`qcMtJYOBiKXSLkWg}GEUQ8!nwMd$4eJgR+g1zP&d+^4^p8sH46vR z=CRH+>n0c=9kP%))qx(QR7gx#J=en9&k0geJ0za71%WT2zF@Ihn_IhIvFV^UoAfSH z-amiq&7lP(t+2T@5+4y&Z3E))hkLRuk#U1`8HAKsjXSJ+WuJ$OH6jh>z;S|NAuGyp zZzfH$#Utkj>^g@>fR^9`PXy*$+td`=nBItoNPJ}z?V?%*&d2jIPcC3bODyV$J=c^F z>7RjE_<_7LoI9Fw{yL}^pORbS;NB24H2i-P*FwOQA~)L|^`YhGi9WCt&*#lvCTxQ} zs${H##kq@N7EE2~qAnuFe`opy-w1=y`cQM~eQq$7N7F#c32~zRHy(ET!(Uh`9ShNP zJn0ql`2~s$J~xPtw%g68qbV;Ljr(ZtaES)nbus;{-2C>7fo@U9UxIk`|12|*!2$=|XMM&NM z(zE(S#%B#LyXjt57&bDw`{Xf%zCp{YD2KT&=Gr~7o8=ava6KO*pj0wGb= zf+G5)R}0buqf}8M6?`xQAzTor2SQ}@#Hzrvew30OEO&ahxz1(uM20z}A@gsPb1tMF zY8TPGi~2BGXjg~Qs|HnY&G|R0^wIcT1tkV2J6x+!Wr8ffg1i2lS&Giew3vUG?}C~e z*8LQl9b!ma`i(J2$ee$_0#PG7-2zngNEN1++?6gWW209b3bZrlg_&co72sA%?zg|L zShL;MRnICL=ON+ws&gO}1_}uq%n{fv_ms`A3o;gOV4@U%;uf{0^YM^kmQ3h?REaX?fm_gk5~PcUrNDkJjdKENeF)&(gc`ibcjt0 zwyI(W8kzvG&w+apD(5|QZ0Emdsa;Ko(5AxAcahK zcy3|K?-4x=?Q5_sTlqDm=i?I(O?=2Vg!o9Z#

kc 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
e#{g~@;V3Et@oxX@7shfDXSA6bH=M#$ky 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 KeafLaR9Xs1nJ^-~T%+%gBUIR}GVE2?u&L4w^2 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 ZXQd@4B%-DzEIPR`5yS#|7YjnE{4are*mVE^ delta 360776 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 z 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

qW6SOHq-MQ{Vh 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

x6yc~JPg;)65l31-GQmuV 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ü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%0D#65{1CG@h1TC>tSj)@CT^e% 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

=b~R%`@~800u15! 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⋙?xLi4nbL?149yUr$Y!Vj*@xcXglE11)E*F9? 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 yg?FG`s5)BIL{=M}~_h4=_LrOQ5O|)tk47sSm$u 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 BUhx0` delta 623983 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

Ag95{E&&s#Lli3TX(pOzBYZfUOd|Le{ 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 z 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%0DKVa;xWCTD7;vh9igj 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 AYybcN delta 728834 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